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/#已经找不到该网页,所以放弃
一起学习的小伙伴如果有什么想法或者意见,欢迎沟通~
领取专属 10元无门槛券
私享最新 技术干货