matplotlib python绘图总结

  • matplotlib 简要的介绍
  • 直方图
  • 线形图
  • 散点图
  • 饼图


先上官网
https://matplotlib.org/gallery/index.html

matplotlib 简要的介绍

matplotlib是第一个Python可视化程序库。
基本框架:脚本层,艺术家层,后端层。
直方图、线图、散点图、饼图(标题,图例,刻度)
major tick 主刻度; minor tick 辅刻度;
legend 图例; title 标题; spines 边框; grid 网格线;

python matplotlib imshow 绘制矩形边框 matplotlib边框粗细_饼图

一、设置图像风格

plt.style.use('classic') #设置图像的风格为经典风格,也是默认的风格

使用此命令后,同一个python进程中的其它图像的绘制也都会使用这种风格。
(可以用plt.style.available命令查看所有可用的风格。例如有’bmh’、‘dark_background’、'seaborn-dark‘等风格。)

二、创建图像&做坐标轴

fig=plt.figure() #创建图像
ax=plt.axes()  #创建坐标轴对象

或者使用 fig,ax=plt.subplots() #同时创建出图像和坐标轴的实例

三、设置坐标轴的上下限

ax.set_xlim(min,max) #设置x轴上下限
ax.set_ylim(min,max) #设置y轴上下限

四、设置图像的标题

plt.title(“title_name”) 或 ax.set_title("title_name")
#设置图像的标题为双引号中的字符串

五、设置坐标轴标签

ax.set_xlabel("label_name") #设置x轴上标签
ax.set_ylabel("label_name") #设置y轴上标签

六、设置图例

plt.legend(["y=100x+10","y=2^x"],loc='upper left')
#在左上角显示图例
ax.legend([line1,line2,line3],["label1","label2","label3"],loc='lower right')
#给三条线分别设置图例,位置在右下角

七、添加文字

ax.text(x,y,s) #在(x,y)坐标处添加文字串s

八、添加注释(注释可以在文字下方添加箭头的样式)

ax.annotate("annotation",xy=(1,2),xycoords='axes fraction',xytext=(2,3),textcoords='axes fraction',arrowprops=dict(arrowstyle="->"))
#(x,y)坐标处为箭头的位置,xycoords为箭头的坐标体系,xytext为注释文字起始的坐标,textcoords为注释文字的坐标体系,arrowstyle为 箭头样式

九、隐藏边框

ax.spines["top"].set_visible(False) #隐藏上边框
#同理,隐藏下边框、左边框和右边框的参数分别为"bottom"、"left"、"right"。

十、隐藏坐标轴(刻度&刻度值)

ax.set_xticks([ ]) #隐藏x轴刻度和刻度值
ax.xaxis.set_major_formatter( plt.NullFormatter() ) #只需隐藏刻度值,同时保留刻度

十一、设置坐标轴刻度和刻度标签

ax.set_xticks([1,2,3]) #设置x轴刻度为1,2,3
ax.set_yticks([1,2,3]) #设置y轴刻度为1,2,3
ax.set_xticklabels(["one","two","three"]) #设置x轴刻度标签为 one,two,three
ax.set_yticklabels(["one","two","three"]) #设置y轴刻度标签为 one,two,three

十二、创建多个图像
大图套小图:

ax1=fig.add_axes([left, bottom, width, height])
# [left, bottom, width, height]用来设置新坐标轴的位置和大小。

规则网格图

fig,ax=plt.subplots(num_of_rows,num_of_columns,sharex=True,sharey=True)
#创建出几行几列的网格图,可以用ax[0].plot(),ax[1].plot()等相继在各网格 上画图。

十三、设置对正文的支持

matplotlib.rcParams['font.sans-serif'] = ['SimHei']#细黑体的中文字符

如果是mac的话,没有simhei字体可以采用’Arial Unicode MS’字体

matplotlib.rcParams['font.sans-serif'] = ['Arial Unicode MS']#细黑体的中文字符

十四、保存图像

fig.savefig('file_name.png') #将图像保存到当前文件夹的file_name.png文件之中。

注意此命令必须放在plt.show()之前,否则保存的将会是空白图像
可以通过fig.canvas.get_supported_filetypes()查看系统支持的文件格式,常用的包括pdf、png、svg等文件格式。

十五、显示图像

plt.show()

在一个python进程中只能使用一次plt.show(),因此通常 把此命令放在程序的最后,等所有参数全部设置完毕后再显示图像。

直方图

pyplot.bar(x, height, width=0.8, bottom=None, *, align='center')

x表示在横轴上的数据,
height是直方图的高度,这两个是必须需要的参数,
一般情况下这两个参数都是一个列表或者序列的形式。

width是指的直方图的宽度,默认情况下是0.8,即最大宽度的80%。

bottom参数指的是直方图的底部在y坐标上的起点值,默认情况下是0。

*表示其它参数,例如颜色、边缘颜色、线宽、刻度标签等。

align参数是表示直方图与数据的对齐关系,默认为居中对齐方式。可以使用’edge’参数表示从x数据的位置左对齐。

线形图

pyplot.plot(x, y, marker='o', color=blue, linestyle='-', linewidth=2.5, markersize=10)

x,y为数据点所在的坐标位置,不可缺少。

marker是数据点的样式,

color是线条的颜色,

linestyle是线条的形式,

linewidth是线宽,

markersize是数据点的大小。

散点图

plt.scatter(x, y, s= 20, c= None, marker= 'o', alpha= None, linewidths= None, edgecolors= None)

x,y为散点的坐标位置,不可缺少;

s:指定散点图点的大小,默认为20。通过传入新的变量,可以实现气泡图的绘制;

c:指定散点图点的颜色 默认为蓝色;

marker:指定散点图点的形状,默认为圆形;

alpha:设置散点的透明度;

linewidths:设置散点边界线的宽度;

edgecolors:设置散点边界线的颜色

饼图

patches,texts,autotexts= plt.pie(size, explode=explode_list, labels=label_list, labeldistance=1.1, autopct="%1.1f%%", shadow=False, startangle=90, pctdistance=0.6)

size:饼图中各部分的数值

explode 设置各部分突出 显示的比例

label 设置各部分的标签

labeldistance 设置标签文本距圆心位置 1.1表示1.1倍半径

autopct:设置饼图里面的文本格式

shadow:设置是否有阴影

startangle 起始角度,默认从 开始逆时针转

pctdistance :设置圆内文本距圆心距离

返回值
patches 返回一个列表,其中的元素为饼图的各个扇区

texts 返回一个包含标签实例的列表,标签是指在饼图外部的文本

autotexts 返回一个包含数据标签实例的列表,数据标签是指在饼图内部的文本可以对返回值进行进一步的设置,实现更多的显示效果。