快速绘制漂亮折线图

计算机顶会的图片都非常非常的好看,如果画出非常好看的图片呢?本文提供简单的方式来快速绘制图片。

折线图

强烈推荐你使用我提供的云环境【Aistudio】,能避免环境配置的问题

最终效果如下所示:

使用的数据集是一个Excel文件
具体内容如下图所示:
快速绘制漂亮折线图_第1张图片

代码实现

  1. 首先我们进行导入需要的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_excel("数据.xlsx")
  1. 设置我们绘图的风格
# 全部的线段风格
styles = ['c:s','y:8','r:^','r:v','g:D','m:X','b:p',':>'] # 其他可用风格 ':<',':H','k:o','k:*','k:*','k:*'
# 获取全部的图例
columns = [i[:-2] for i in data.columns]
n,m = data.shape
  1. 正式进行绘图
plt.figure(figsize=(10,7))
# 设置字体
plt.rcParams["font.family"] = "Times New Roman"
plt.rcParams.update({'font.size': 22})
plt.rc('legend', fontsize=15)

# 正式的进行画图
for i in range(0,m,2):
    i_data = data.iloc[:,i:i+2]
    x,y = i_data.values[:,0], i_data.values[:,1]
    plt.plot(x,y, styles[i // 2], markersize=8,label=columns[i])

# 设置图片的x,y轴的限制,和对应的标签
plt.xlim([0,300])
plt.ylim([60,78])
plt.xlabel("GFLOPs/Video")
plt.ylabel("mAP(%)")

# 设置图片的方格线和图例
plt.grid()
plt.legend(loc='lower right',framealpha=0.7)
plt.tight_layout()
# plt.show()

# 如果想保存图片,请把plt.show注释掉,然后把下面这行代码打开注释
plt.savefig("img.png",dpi=800)

Q & A

  1. Linux添加Time New Roman字体
    运行如下代码后,重启一下jupyter即可
# 查找字体的实际地址和缓存地址
import matplotlib
address = "/".join(matplotlib.matplotlib_fname().split('/')[:-1]) + "/fonts/ttf/"
cache = matplotlib.get_cachedir()
print("字体的实际地址是:", address)
print("字体的缓存地址是:", cache)

# 给整个系统添加Times New roman字体
import os
os.system(f"cp times.ttf {address}")
os.system(f"mv {cache} {cache}_backup")

print("Times New Roman字体已经添加成功")

如果想要这个示例数据,可以关注【自由小兵儿】回复【数据集101】我会给你示例数据的!
如果我后续还画了什么好图,继续会放在这里!

每个不曾起舞的日子,都是对生命的辜负!与君共勉

你可能感兴趣的:(视频理解-动作识别,python,matplotlib,pandas,jupter,数据可视化)