莫烦教程matplotlib基础

1、figure

plt.figure(num=3,figsize=(8,5)) #num为figure的值
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=10.0,linestyle='--')

plt.xlim((-1,2))#x轴的范围
plt.ylim((-2,3))#y轴的范围
plt.xlabel('xlabel')#x轴的标签
plt.ylabel('ylabel')#y轴的标签

new_ticks=np.linspace(-1,2,5)
plt.xticks(new_ticks)#修改x轴的坐标值
plt.yticks([-2,-1.8,-1,1.22,3],
            [r'$really\ bad$',r'$bad\ \alpha$',r'$normal$',r'$good$',r'$very\ good$'])

ax=plt.gca()#gca=get current axis
ax.spines['right'].set_color('none')#把右边和上边的边框去掉
ax.spines['top'].set_color('none')

ax.xaxis.set_ticks_position('bottom')#下边作为x轴的位置 左边作为y轴的位置
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data',-1))#把x轴固定在y轴的-1处  ‘data’表示按数值确定 ‘axes’表示按照百分比确定
ax.spines['left'].set_position(('data',0))

2、legend图例

l1,=plt.plot(x,y2,label='up')
l2,=plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--',label='down')

plt.legend()#默认输出图例
plt.legend(handles=[l1,l2],labels=['aaa','bbb'],loc='upper right')
#显示图例 handles和labels完成对每条线的重命名

3、Annotation注解

#第一个参数是要打印的内容,第二个是开始打印的位置
#第三个参数表示位置是以data为基准#xytext表示标签的位置是以offset points为基准横坐标+30纵坐标-30为起始位置开始的
#arrowprops是指向方式 
plt.annotate(r'$2x+1=%s$'% y0,xy=(x0,y0),xycoords='data',xytext=(+30,-30),
          textcoords='offset points',fontsize=16,arrowprops=dict(arrowstyle='->',
          connectionstyle='arc3,rad=.2'))

plt.text(-3.7,3,r'this is a and b',
         fontdict={'size':16,'color':'r'})

4、tick能见度

for label in ax.get_xticklabels()+ax.get_yticklabels():
    label.set_fontsize(10)
    label.set_bbox(dict(facecolor='white',edgecolor='None',alpha=0.7))

5、scatter散点图

n=1024
X=np.random.normal(0,1,n)#生成n个均值为0,标准差为1的正态分布随机数
Y=np.random.normal(0,1,n)
T=np.arctan2(Y,X)#for color

plt.scatter(X,Y,c=T,s=50,alpha=0.5)#alpha透明度 s表示size
plt.xticks(())
plt.yticks(())

plt.show()

6、bar柱状图

plt.bar(X,Y1,facecolor='#9999ff',edgecolor='white')
plt.bar(X,-Y2,facecolor='#ff9999',edgecolor='white')

for x,y in zip(X,Y1):
    plt.text(x+0.04,y+0.05,'%.2f'% y,ha='center',va='bottom')#ha水平对齐 va竖直对齐方式
for x,y in zip(X,Y2):
    plt.text(x+0.04,-y-0.05,'%.2f'% y,ha='center',va='top')


7、contours等高线图

X,Y=np.meshgrid(x,y)

plt.contourf(X,Y,f(X,Y),10,alpha=0.75,cmap=plt.cm.hot) #10表示分成的份数
C=plt.contour(X,Y,f(X,Y),10,colors='black',linewidth=0.5)  #画等高线
plt.clabel(C,inline='True',fontsize=10) #等高线上标数字

 

你可能感兴趣的:(python)