Matplotlib基本框架
Matplotlib是一个python的可视化程序库,可生成直方图,条形图,散点图,折线图等。
import matplotlib
import matplotlib.pyplot as plt #pyplot是最重要的子包
设置绘图风格
plt.style.use(‘classic’) # 设置图像的风格为经典风格
plt.style.available查看所有可用风格,例如有‘bmh’、‘dark_background’
创建图像和坐标
fig=plt.figure()#创建图像
ax=plt.axes()#创建坐标轴对象
fig,ax=plt.subplots()#同时创建出图像和坐标
设置坐标轴的上下限
ax.set_xlim(min,max)
ax.set_ylim(min,max)
设置图像标题
plt.title(“title_name”)
ax.set_title(“title_name”)
设置坐标轴标签
ax.set_xlabel(“label_name”)
ax.set_ylabel(“label_name”)
设置图例
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),xycord=‘axes fraction’,xytext=(2,3),textcoord=‘axesfraction’,arrowprops=dict(arrowstyle="->"))
#(x,y)为箭头的位置,xycoords为箭头的坐标体系,textcoords为注释文字的坐标位置,xytext为注释文字的起始坐标
隐藏边框
ax.spines[“top”].set_visible(False) #隐藏上边框
#同理,隐藏下边框,左和右边框“bottom”,“left”,“日冠花t”
隐藏坐标轴
ax.set_xticks([])#隐藏x刻度和刻度值
ax.xaxis.set_major_formatter(plt.NullFormatter())#只需隐藏刻度值,同时保留刻度
设置坐标轴刻度和刻度标签
ax.set_xticks([1,2,3])
ax.set_xticklabels([“one”,“two”,“three”])
创建多个图像
ax1=fig.add_axes([left,bottom,width,height])
支持中文
matplotlib.rcParams[‘font.sans-serif’]=[‘SimHei’]#细黑体
保存图像
fig.savefig(‘file_name.png’)
#必须放在plt.show()之前
直方图
pyplot.bar(x,height,width=0.8,bottom=None,*,align=‘center’)
简单的直方图代码
import numpy as np
import matplotlib.pyplot as plt
plt.style.use("dark_background")
fig,ax=plt.subplots()
ax.set_title("square numbers")
x=np.array([1,2,3,4,5,6,7,8,9,10])
y=x*x*x
plt.bar(x,y)
plt.bar(x,y,color='r')
for a,b in zip(x,y):# 在直方图上显示数字,plt.text在对应位置添文字说明来生成相应的数字标签
# 而for循环也保证了每一个柱子都有标签
# 其中,a, b+0.2表示在每一柱子对应x值、y值上方0.2处标注文字说明,'%.0f' % b,代表标注的文字,即每个柱子对应的y值
# ha='center', va= 'bottom'代表horizontalalignment(水平对齐)、verticalalignment(垂直对齐)的方式,fontsize则是文字大小
plt.text(a,b+0.2,'%d'%b,ha='center',va='bottom',fontsize=20)
plt.show()