Figure:matplotlib 的 figure 就是一个 单独的 figure 小窗口, 小窗口里面还可以有更多的小图片
x=np.arange(-3,3,0.1) y1=np.sin(x) y2=np.cos(x) plt.figure()#创建第一个图形 plt.plot(x,y1) plt.figure(num=100,figsize=(8,5))#创建第二个图形,num=100窗口名称就是Figure=100 plt.plot(x,y2) plt.show()
颜色、标记和线型
1.允许输入多个x,y
x=np.arange(-3,3,0.1) y1=np.sin(x) y2=np.cos(x) plt.plot(x,y1,x,y2) plt.show()
2.如果只接收到一个值就默认为y值 ,而x默认为从0 到 n ,使用默认的线条样式和颜色
plt.plot([1,4,9,16]) plt.show()
3.颜色、标记和线形
linewidt:线的宽度
linestyle:线的形状 dashed表示虚线也可以用‘--‘代表 ‘-‘代表实线
marker:坐标的形状
c:线的颜色
alpha:线的透明度
label:设置线条标签
&内容&:能正确显示内容的格式
x=[1,2,3,4] y=[1,4,9,16] plt.plot(x,y,linewidth=2,linestyle=‘dashaed‘,marker=‘o‘,c=‘r‘,alpha=0.5,label=‘y=$x^2$‘) plt.show()
简写:‘ro---‘表示 r:红色 o:坐标点为o --:虚线
x=[1,2,3,4] y=[1,4,9,16] plt.plot(x,y,‘ro--‘) plt.show()
刻度、标题、标签和图例
title:设置标题
xlabel:设置x轴名称
ylabel:设置y轴名称,fontsize=20设置字体大小
xlim:设置x轴范围
ylim:设置y轴范围(tricks的设置使xlim、ylim失效)
xticks:设置x轴刻度,后面可以加具体名称
ticks:设置y轴刻度,后面可以加具体名称
gca:获取坐标轴信息
ax.spines[‘top‘].set_color(‘none‘):设置上面坐标线的颜色,注意spines后面是[]
legened:生成图例 loc=‘upper right‘可以设置位置
x1=[1,2,3] y1=[5,6,7] x2=[1,2,3] y2=[10,14,12] plt.plot(x1,y1,‘ro--‘,label=‘First Line‘) plt.plot(x2,y2,‘b-‘,label=‘Second Line‘) plt.title(‘进出口数据‘) plt.xlabel(‘月份‘,fontsize=20)
plt.ylabel(‘年份‘)
plt.xlim(1,3)
plt.ylim(0,15)
plt.xticks([1,2,3,4,5,6],[str(i)+‘月‘ for i in range(1,7)])
plt.yticks(np.arange(1,15,3),[‘2011年‘,‘2012年‘,‘2013年‘,‘2014年‘,‘2015年‘])
ax=plt.gca()
ax.spines[‘right‘].set_color(‘none‘)
ax.spines[‘top‘].set_color(‘none‘)
plt.legend(loc=‘lower right‘)
plt.show()
subplot:子图,figure对象下创建一个或多个subplot对象(即axes)用于绘制图像
221:表示将figure划分成4个后面的1表示第一个
212:表示将figure划分成3个后面的2表示第二个
plt.subplot(221) plt.plot(x1,y1,‘ro--‘) plt.subplot(212) plt.plot(x2,y2,‘b-‘) plt.show()
面向对象形式
np.random.randn:标准正太分布
cumsum:进行数组累加操作
fig=plt.figure()#获取figure对象
ax1=fig.add_subplot(221)#在figure上创建对象
ax2=fig.add_subplot(222)
ax3=fig.add_subplot(212)
plt.plot(np.random.randn(50).cumsum(),‘g-‘)
plt.plot(np.random.randn(50).cumsum(),‘r--‘)
plt.plot(np.random.randn(50).cumsum(),‘y-‘)
plt.savefig(‘5.png‘)
plt.show()
nrows:行数
ncols:列数
sharex:共享x轴范围
sharey:共享y轴范围
fig.suptitle(‘test‘,fontsize=20):设置标题
fig,axes=plt.subplots(nrows=4,ncols=1,sharex=True,sharey=True)
fig.suptitle(‘test‘,fontsize=20) axes[0].plot(range(10),‘r‘) axes[1].plot(range(10),‘g‘) axes[2].plot(range(10),‘b‘) axes[3].plot(range(10),‘y‘) plt.show()
循环画图
hist中color要全写不能用c代替
fig.subplots_adjust(wspace=0,hspace=0)调整子图距离
savefig:第一个参数输入保存图片的名字,第二个关于分辨率
fig,axes=plt.subplots(2,2) for i in range(2): for j in range(2): axes[i,j].hist(np.random.randn(100),10,color=‘g‘,alpha=0.5) fig.subplots_adjust(wspace=0,hspace=0) plt.savefig(‘5.png‘,dpi=50) plt.show()
adding:
1.解决中文显示问题 mpl.rcParams[‘font.sans-serif‘] = [‘SimHei‘]
mpl.rcParams[‘axes.unicode_minus‘] = False
需要import matplotlib as mpl
2.设置在jupyter中matplotlib的显示情况 1.%matplotlib tk 在GUI中显示
2.%matplotlib inline 在行内显示