matplotlib总结

1.图形样式

(1)数据展示(图表类型:线形图、柱状图、盒形图、散布图、等值线图等)

    fig=plt.figure()#创建新的figure

    plt.gcf()#得到当前的引用

    ax1=fig.add_subplot(2,2,1)#创建一个或多个subplot

    plt.plot([1.5,3.5,2,5])#在最后一个用过的subplot上进行绘制

    ax1.hist(randn(100),bins=20,color='k',alpha=0.3)#在ax1上绘制直方图

    plt.subplots()#结合figure和subplot

    subplot_adjust(left=None,right=None,bottom=None,top=None,wspace=None,hspace=None)#调整subplot周围的间距

    plt.plot(x,c,color='blue',linewidth=2.0,linestyle='-',marker='o',drawstyle='steps-post')#设置曲线的粗细,颜色,标记和插值方式

(2)图例

    ax.plot(randn(1000).cumsum(),'k',label='one')#手动传入label

    ax.legend(loc='best')#自动选择最不碍事的地方

(3)标题

    ax.set_title('My first matplotlib plot')

(4)刻度标签

    xlim,xticks,xticklabels

    set_,get_

    1)设置坐标轴范围

        plt.xlim(X.min()*1.1,X.max()*1.1)

    2)设置坐标轴刻度位置

        ticks=ax.set_xticks([0,250,500,750,1000])

    3)设置坐标轴刻度标签

        labels=ax.set_xticklabels(['one','two','three','four','five'],rotation=30,fontsize='small')

        plt.xticks((-np.pi,-np.pi/2,np.pi/2,np.pi),(r'$-\pi$',r'$-\pi/2$',r'$\pi/2$',r'\pi$'))  #前面是确定坐标,后面是在坐标上显示的标签 #结合上面两个

    4)设置坐标轴名称

        ax.set_xlabel('Stages')

    5)隐藏坐标轴和移动坐标轴

        ax=plt.gca()#gca means get current axis得到当前坐标轴

        ax.spines['right'].set_color('none')#通过none隐藏

        ax.xaxis.set_ticks_position('bottom') #把刻度显示在当前轴上

        ax.spines['bottom'].set_position(('data',0))#移动坐标轴   0代表x轴在y方向上的0处,‘data’目前还不清楚什么意思?

(5)放置注解

    text,arrow,annotate

    plt.plot([t,t],[0,np.cos(t)],color='blue',linewidth=1.5,linestyle='--')#从(t,0)到(t,cos(t))

    plt.scatter([t,],[np.cos(t),],50,color='blue')#画个点

    plt.annotate(r'$cos(\frac{2\pi}{3})=-\frac{1}{2}$',

    xy=(t,np.cos(t)),xycoords='data',

   xytext=(-90,-50),textcoords='offset points',fontsize=16,

   arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))#\转意符,frac上下结构和{}配合使用,xy坐标,xytext,偏移点

2.图形对象

   plt.figure创建图像,设置大小,不调用这个函数也行,系统有一个默认大小  

   参数  num:图像标识符,figsize图像大小(单位英寸),dpi(每英寸多小点)

   plt.subplot创建子图

   plt.axes创建坐标轴     坐标轴可以在图形上任意摆放,不需要按照网格。

   plt.gca  获取当前坐标轴

    复杂子图布局,用gridspec,G=gridspec.GridSpec(3,3)  plt.subplot(G[0,:1])

   坐标轴创建  plt.axes([.1,.1,.8,.8])

3.画图操作

   plt.scatter(X,Y,s=75,c=T,alpha=.5)#s size点的大小,c color 点的颜色, alpha 透明度

   plt.fill_between(X,-1,Y-1,(Y-1)>-1,color='blue',alpha=.25)# X范围 -1到Y-1之间 且(Y-1)>1成立,涂成blue

   plt.bar(X,Y1,facecolor='#9999ff',edgecolor='white') #柱状图 

   np.meshgrid(x,y)  计算出x,y的交点

   plt.contourf(X,Y,f(X,Y),8,alpha=.75,cmap=plt.cm.hot) #8指分成8类  cmap表示颜色映射风格

   C=plt.contour(X,Y,f(X,Y),8,colors='black',linewidth=.5)#画等高线

   plt.clabel(C,inline=1,fontsize=10)#表示等高线数值,inline代表把线打断,写在线里面

   plt.imshow(f(X,Y),cmap='hot',origin='low')#把f(X,Y)矩阵的数值转化为图片

   plt.pie(Z,explode=Z*0.05,colors=['%f'%(i/float(n)) for i in range(n)])#explode 每块扇形向外移多少

   用plt.bar把圆形,先把polar=True

   plt.subplot(1,2,2,polar=True)

   plt.bar(theta,radii,width=width,bottom=0.0)#theta代表起始位置,radii代表半径,width代表宽度(这里指弧度)

4.pandas中的绘图函数

(1)线形图

   s=Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10)

   s.plot()#用索引绘制x轴

   df=DataFrame(np.random.randn(10,4).cumsum(0),columns=['A','B','C','D'],index=np.arange(0,100,10))

   df.plot()#以各列绘制一条线,自动创建图例

(2)柱状图

   data=Series(np.random.rand(16),index=list('abcdefghijklmnop'))

   data.plot(kind='bar',ax=axes[0])#垂直柱状图

   data.plot(kind='barh',ax=axes[1])#水平柱状图

 

   df.plot(kind='bar')#每一行作为一组

   df.plot(kind='barh',stacked=True)#堆积柱状图

(3)直方图和密度图

   values.hist(bins=100,normed=True)#直方图

   values.plot(kind='kde')#密度图

(4)散布图

   plt.scatter(trans_data['m1'],trans_data['unemp'])

   plt.scatter_matrix(trans_data,diagonal='kde')#散布图矩阵,对角线放置密度图(也可为直方图)

 

其他:关闭用close()

绘制地图用basemap工具集,下载地址 http://matplotlib.github.com/basemap

 

参考文献:《scikit-learn 机器学习》

《Python for Data Analysis》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值