这一块主要用于记录自己利用这段空闲时间,进一步提高自己matplotlib画图能力,对一些模糊问题进行重新学习及强化。
绘制折线图过程中的细节问题
共有两种方法:
在代码前面添加
font = {'family': 'MicroSoft YaHei',
'weight': 'bold',
}
matplotlib.rc('font',**font)
from matplotlib import pyplot as plt
# 先使用fc-list :lang=zh 命令在终端查看,中文字体在电脑中的位置。
my_font=font_manager.FontProperties(fname='C:/Windows/fonts/HGZY_CNKI.TTF')
plt.xticks(fontproperties=my_font)
(1)在一种图中显示多条曲线
from matplotlib import pyplot as plt
x=[1,2,3,4,5]
y1=[1,1,1,2,3]
y2=[2,2,5,6,8]
plt.plot(x,y1,label='第一代')
plt.plot(x,y2,label='第二代')
(2)设置曲线图例:运行上面的代码会发现,曲线的含义即图例,并没有显示出来,还需要做如下处理:
plt.plot(x,y1,label='第一代')
plt.plot(x,y2,label='第二代')
plt.legend()
(3)曲线图例中文显示:运行上述代码会发现,图例可以显示,但是中文含义却不能正常显示,于是需要对图例的字体进行处理:
# my_font上面的代码定义过
plt.legend(prop=my_font)
(4)曲线图例位置设置:loc是对图例的位置进行设置,有多个位置可以选择。
‘best’:0---- “upper right”:1----“upper left”:2------“lower left”:3---------“lower right”:4
“right”:5----“center left”:6-----“center right”:7----“lower center”:8----“upper center”:9
“center”:10
# my_font上面的代码定义过
plt.legend(prop=my_font,loc='upper right')
# plt.legend(prop=my_font,loc=1)
(5)曲线颜色更改:red、white、green、blue等
线条格式更改:“—.”、“–”等
线条粗细更改:如linewidth=5
透明度更改:alpha=0…2
plt.plot(x,y1,label='第一代',color='red',linestyle='--',linewidth=5,alpha=0.2)
补充:
(1)在图中设置网格,可以使用:plt.grid()
(2)对图中网格的清晰度进行设置,可以使用alpha,alpha最大值为1,最小值为0,值越大越清晰,如:plt.grid(alpha=0.1)
(3)设置图片大小和分辨率:plt.figure(figsize=(20,8),dpi=80)
(4)保存图片:plt.savefig('./result.png')
.将文件保存到当前文件夹中。
(5)设置x轴、y轴、title的总的含义:plt.xlabel('时间')
、plt.ylabel('个数')
、plt.title('对应时间的个数')
(6)设置x轴、y轴的刻度:plt.xticks(x,x_lable,rotation=45,fontproperties=my_font)
除了折线图之外,matplotlib还可以绘制散点图、柱状图、直方图、饼图、箱线图等
使用scatter函数
plt.scatter(x,y,label='第一代')
其余地方与plt.plot()一样。
# 竖着的条形图
plt.bar(x,y,width=0.5,color='orange')
# 横着的条形图
plt.barh(x,y,height=0.2,color='orange')
组数:将数据分组,分组的个数。
组距:每个小组的两个端点的距离。
组数 = 极差 / 组距 =(最大值 - 最小值)/ 组距
x=[1,5,2,6,4,9,45,64,2] # 原始数据
# 计算组数
d=5 # 组距
num_bins=(max(x)-min(x))//d # 组数
plt.hist(x,num_bins)
频率直方图
plt.hist(a,num_bins,density=True)
plotly:https://plotly.com/python/
matplotlib其他示例:https://matplotlib.org/stable/gallery/index.html
seaborn:http://seaborn.pydata.org/
1、学习视频