matplotlib基本画图示例

来源:互联网 发布:医学三维重建软件 编辑:程序博客网 时间:2024/06/07 03:54
在这里我介绍一下plot方法的函数的使用。
Series.plot方法的函数:

参数说明label用于图例的标签ax要在其上进行绘制的matplotlib subplot对象。如果没有设置,则使用当前matplotlib subplotstyle将要传给matplotlib的风格字符串(for example: ‘ko–’)alpha图表的填充不透明(0-1)kind可以是’line’, ‘bar’, ‘barh’, ‘kde’logy在Y轴上使用对数标尺use_index将对象的索引用作刻度标签rot旋转刻度标签(0-360)xticks用作X轴刻度的值yticks用作Y轴刻度的值xlimX轴的界限ylimY轴的界限grid显示轴网格线

在这里强调一下 kind参数——'line', 'bar', 'barh', 'kde':

直方图:是一种可以对值频率离散化显示的柱状图。通过调用Series.hist()方法即可创建。

密度图:与直方图相关的一种类型图,是通过计算“可能会产生观测数据的连续概率分布的估计”而产生的,通过给plot传入参数kind = 'kde' 即可。

散布图:是观测两个一维数据序列之间关系的有效手段,使用pd.scatter_matrix()即可建立。

部分代码:
#encoding:utf-8import pandas as pd  #数据分析import numpy as np   #科学计算from pandas import Series,DataFramedata_train = pd.read_csv("E:\Python27\Algorithm\Chapter1\Data\Datasets\Titanic\\train.csv")data_train.columnsimport matplotlibimport matplotlib.pyplot as pltmyfont =matplotlib.font_manager.FontProperties(fname=r"c:\windows\fonts\simsun.ttc",size=14)# 直接设置为中文时fig=plt.figure()fig.set(alpha=0.2)  #设置图表颜色alpha参数plt.subplot2grid((2,3),(0,0))   #在一张大图里分列几个小图data_train.Survived.value_counts().plot(kind="bar")  #画条形图plt.title(u"获救情况(1位获救)",fontproperties = myfont)plt.ylabel(u"人数",fontproperties = myfont)plt.subplot2grid((2,3),(0,1))   #在一张大图里分列几个小图data_train.Pclass.value_counts().plot(kind="bar")  #画条形图plt.ylabel(u"人数",fontproperties = myfont)plt.title(u"乘客等级分布",fontproperties = myfont)plt.subplot2grid((2,3),(0,2))plt.scatter(data_train.Survived,data_train.Age)plt.ylabel(u"年龄")plt.grid(b=True,which='major',axis='y')  #显示网格线plt.title(u"按年龄看获救情况(1位获救)",fontproperties = myfont)plt.subplot2grid((2,3),(1,0),colspan=2)data_train.Age[data_train.Pclass==1].plot(kind="kde")data_train.Age[data_train.Pclass==2].plot(kind="kde")data_train.Age[data_train.Pclass==3].plot(kind="kde")plt.xlabel(u"年龄",fontproperties = myfont)# plots an axis lableplt.ylabel(u"密度",fontproperties = myfont) plt.title(u"各等级的乘客年龄分布",fontproperties = myfont)plt.legend((u'头等舱', u'2等舱',u'3等舱'),loc='best',prop=myfont)plt.subplot2grid((2,3),(1,2))data_train.Embarked.value_counts().plot(kind='bar')plt.title(u"各登船口岸上船人数",fontproperties = myfont)plt.ylabel(u"人数",fontproperties = myfont)plt.show()
显示图片效果如下

fig=plt.figure()fig.set(alpha=0.2)Survived_0=data_train.Pclass[data_train.Survived==0].value_counts()Survived_1=data_train.Pclass[data_train.Survived==1].value_counts()df=pd.DataFrame({u'获救':Survived_1, u'未获救':Survived_0})df.plot(kind='bar', stacked=True)plt.title(u"各乘客等级的获救情况",fontproperties = myfont)plt.xlabel(u"乘客等级",fontproperties = myfont) plt.ylabel(u"人数",fontproperties = myfont) plt.show()


#然后我们再来看看各种舱级别情况下各性别的获救情况fig=plt.figure()fig.set(alpha=0.65) # 设置图像透明度,无所谓plt.title(u"根据舱等级和性别的获救情况",fontproperties = myfont)ax1=fig.add_subplot(141)data_train.Survived[data_train.Sex == 'female'][data_train.Pclass != 3].value_counts().plot(kind='bar', label="female highclass", color='#FA2479')ax1.set_xticklabels([u"获救", u"未获救"], rotation=0,fontproperties = myfont)ax1.legend([u"女性/高级舱"], loc='best',prop= myfont)ax2=fig.add_subplot(142, sharey=ax1)data_train.Survived[data_train.Sex == 'female'][data_train.Pclass == 3].value_counts().plot(kind='bar', label='female, low class', color='pink')ax2.set_xticklabels([u"未获救", u"获救"], rotation=0,fontproperties = myfont)plt.legend([u"女性/低级舱"], loc='best',prop= myfont)ax3=fig.add_subplot(143, sharey=ax1)data_train.Survived[data_train.Sex == 'male'][data_train.Pclass != 3].value_counts().plot(kind='bar', label='male, high class',color='lightblue')ax3.set_xticklabels([u"未获救", u"获救"], rotation=0,fontproperties = myfont)plt.legend([u"男性/高级舱"], loc='best',prop= myfont)ax4=fig.add_subplot(144, sharey=ax1)data_train.Survived[data_train.Sex == 'male'][data_train.Pclass == 3].value_counts().plot(kind='bar', label='male low class', color='steelblue')ax4.set_xticklabels([u"未获救", u"获救"], rotation=0,fontproperties = myfont)plt.legend([u"男性/低级舱"], loc='best',prop= myfont)plt.show()


bingo,通过这个简单的示例,以后画图之类的都可以搞定了。

0 0
原创粉丝点击