首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python之绘图和可视化

1.matplotlib API入门

import matplotlib.pyplot as plt

%figure和subplot

fig=plt.figure()

ax1=fig.add_subplot(2,2,1)

ax2=fig.add_subplot(2,2,2)

ax3=fig.add_subplot(2,2,3)

fig.show()#这步很重要,因为斑点鱼用的是ipython,只有show了才会显示图表

plt.plot([1.5,3.5,-2,1.6])

plt.show()

from numpy.random import randn

plt.plot(randn(50).cumsum(),'k--')#k--表示黑色虚线图

ax1.hist(randn(100),bins=20,color='k',alpha=0.3)

ax2.scatter(np.arange(30),np.arange(30)+3*randn(30))

ax3.plot([1.5,3.5,-2,1.6])

fig.show()

fig,axes=plt.subplots(2,3)

axes

fig.show()

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

fig,axes=plt.subplots(2,2,sharex=True,sharey=True)

for i in range(2):

for j in range(2):

axes[i,j].hist(randn(500),bins=50,color='k',alpha=0.5)

plt.subplots_adjust(wspace=0,hspace=0)

plt.show()

%颜色、标记、线型

ax.plot(x,y,'g--')

ax.plot(x,y,linestyle='--',color='g')

plt.plot(randn(30).cumsum(),'ko--')

plt.show()

%刻度、标签、图例

fig=plt.figure();ax=fig.add_subplot(1,1,1)

ax.plot(randn(1000).cumsum())

fig.show()

#修改X轴刻度

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

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

#设置标题

ax.set_title('my plot')

ax.set_xlabel('stages')

fig.show()

#添加图例

ax.plot(randn(1000).cumsum(),'k--',label='two')

ax.plot(randn(1000).cumsum(),'k.',label='three')

ax.legend(loc='best')

fig.show()

%注释以及在subplot上绘图:text,arrow,annotate

ax.text(x,y,'hello world!',family='monospace',fontsize=10)#报错了

#在图表中添加一个图形,需要创建一个块对象shp然后通过ax.add_patch(shp)将其添加到subplot中

fig=plt.figure()

ax=fig.add_subplot(1,1,1)

rect=plt.Rectangle((0.2,0.75),0.4,0.15,color='k',alpha=0.3)

circ=plt.Circle((0.7,0.2),0.15,color='b',alpha=0.3)

pgon=plt.Polygon([[0.15,0.15],[0.35,0.4],[0.2,0.6]],color='g',alpha=0.5)

ax.add_patch(rect)

ax.add_patch(circ)

ax.add_patch(pgon)

fig.show()

%将图表保存到文件

plt.savefig('figpath.svg')

#得到一张带有最小白边且分辨率为400dpi的png图片

plt.savefig('figpath.png',dpi=400,bbox_inches='tight')#dpi为控制‘每英寸点数’分辨率,bbox_inches可以减除当前图表周围的空白部分

from io import StringIO

buffer=StringIO()

plt.savefig(buffer)#报错了unicode argument expected,got'str'

plot_data=buffer.getvalue()

%matplotlib配置

#将全局的图像默认大小设置为10*10

plt.rc('figure',figsize=(10,10))

2.pandas中的绘图函数

%线形图

s1=s.plot()

plt.show()

df.plot()

plt.show()

%柱形图

fig,axes=plt.subplots(2,1)

data.plot(kind='bar',ax=axes[0],color='k',alpha=0.7)

data.plot(kind='barh',ax=axes[1],color='g',alpha=0.7)#水平柱形图

plt.show()

columns=pd.Index(['A','B','C','D'],names='genus'))

df

df.plot(kind='bar')

plt.show()

df.plot(kind='barh',stacked=True,alpha=0.5)#stacked=true表示堆叠图

plt.show()

%直方图和密度图

values=pd.Series(np.concatenate([comp1,comp2]))

values.hist(bins=100,alpha=0.3,color='r',normed=True)

values.plot(kind='kde',style='k--')

plt.show()

%散布图

plt.scatter(df['A'],df['D'])

plt.title('my plot')

pd.scatter_matrix(df,diagonal='kde',color='k',alpha=0.3)

plt.show()

3.绘制地图:图形化显示海地地震危机数据

http://community.ushahidi.com/research/datasets/#已经找不到该网页,所以放弃

一起学习的小伙伴如果有什么想法或者意见,欢迎沟通~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180223G06X3W00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券