matplotlib 可以将数据进行可视化,更直观呈现,可以使数据更加客观,更具说服力,是最流行的python底层绘图库,可以做数据可视化图表。
from matplotlib import pyplot as plt
x = range(2,26,2)
y=[15,13,14,5,17,20,25,26,24,22,18,15]
plt.plot(x,y)
plt.show()
from matplotlib import pyplot as plt
flg = plt.figure(figsize=(20,8),dpi=80)#figure值图形图标,这里指的是绘制的图,
# 通过实例化一个figure并且传递参数,可以在后台自动使用该figure实例
#传入dpi参数可以让图片更加清晰
x = range(2,26,2)
y = [15,13,14,5,17,20,25,26,26,24,22,18,15]
plt.plot(x,y)
plt.savefig("./sig_size.png")#保存图片
plt.show()
设置x,y轴刻度
from matplotlib import pyplot as plt
import numpy as np
#设置图片大小
flg = plt.figure(figsize=(20,8),dpi=80)#figure值图形图标,这里指的是绘制的图,
x = range(2,26,2)
y = [15,13,14,5,17,20,25,26,26,24,22,20]
#绘图
plt.plot(x,y)
#设置x轴刻度
_xtick_labels = [i/2 for i in range(2,49)]
plt.xticks(_xtick_labels)
plt.yticks(range(min(y),max(y)+1))
#保存图片
plt.savefig("./pic_size .png")
plt.show()
设置x轴中文字体配置
from matplotlib import pyplot as plt
import random
import matplotlib
from matplotlib import font_manager
#windows和linux设置中文字体的方式
font = {'family': 'MicroSoft YaHei',
'weight': 'bold'
}
#mac设置中文字体
# my_font=font_manager.FontProperties(fname="字体存储路劲")
# plt.xticks(_x[::3],_xtick_label[::3],rotation=45,fontproperties=my_font)
matplotlib.rc("font",**font)
x=range(0,120)
y=[random.randint(20,30) for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
print(y)
plt.plot(x,y)
#设置x轴刻度
_x = list(x) #取步长
_xtick_label = ["10点{}分".format(i) for i in range(60)]#设置字符串
_xtick_label += ["11点{}分".format(i-60) for i in range(60,120)]#设置字符
plt.xticks(_x[::3],_xtick_label[::3],rotation=45)#x刻度旋转度数
plt.show()
设置图形信息
#添加描述信息
plt.xlabel("时间")
plt.ylabel("温度,单位(C)")
plt.title("10点到12点每分钟气温变化情况")
plt.show()
设置图例
from matplotlib import pyplot as plt
import matplotlib
from matplotlib import font_manager
#windows和linux设置中文字体的方式
font = {'family': 'MicroSoft YaHei',
'weight': 'bold'
}
matplotlib.rc("font",**font)
y_1 = [1,0,1,1,2,4,3,2,2,4,4,5,6,5,4,3,3,1,1,1]
y_2 = [1,3,1,3,2,4,3,1,1,2,3,2,6,5,2,0,1,1,1,1]
x = range(11,31)
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y_1,label="自己")
plt.plot(x,y_2,label="别人")
#设置x轴刻度
_xtick_label = ["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_label)
plt.yticks(range(0,9))
#绘制网格
plt.grid(alpha=0.4)#设置网格透明度
#添加图例
plt.legend()
plt.show()
方法总结:
- 绘制折线图(plt.plot)
- 设置图像大小和分辨率(plt.figure)
- 实现图片保存(plt.savefig)
- 设置xy轴上的刻度和字符串(xticks)
- 解决刻度稀疏和密集(xticks,yticks)
- 设置标题,xy轴label(title,xlabel,ylabel)
- 设置字体(font_manager,fontProperties,matplotlib.rc)
- 一个图绘制多个图形(plt多次plot)
- 为不同的图像添加图例,plt.legend(),label