matplotlib基本画图示例
在这里我介绍一下plot方法的函数的使用。
Series.plot方法的函数:
在这里强调一下 kind参数——"line", "bar", "barh", "kde":
直方图:是一种可以对值频率离散化显示的柱状图。通过调用Series.hist()方法即可创建。
密度图:与直方图相关的一种类型图,是通过计算“可能会产生观测数据的连续概率分布的估计”而产生的,通过给plot传入参数kind = "kde" 即可。
散布图:是观测两个一维数据序列之间关系的有效手段,使用pd.scatter_matrix()即可建立。
部分代码:


bingo,通过这个简单的示例,以后画图之类的都可以搞定了。
参数 | 说明 |
---|---|
label | 用于图例的标签 |
ax | 要在其上进行绘制的matplotlib subplot对象。如果没有设置,则使用当前matplotlib subplot |
style | 将要传给matplotlib的风格字符串(for example: ‘ko–’) |
alpha | 图表的填充不透明(0-1) |
kind | 可以是’line’, ‘bar’, ‘barh’, ‘kde’ |
logy | 在Y轴上使用对数标尺 |
use_index | 将对象的索引用作刻度标签 |
rot | 旋转刻度标签(0-360) |
xticks | 用作X轴刻度的值 |
yticks | 用作Y轴刻度的值 |
xlim | X轴的界限 |
ylim | Y轴的界限 |
grid | 显示轴网格线 |
在这里强调一下 kind参数——"line", "bar", "barh", "kde":
直方图:是一种可以对值频率离散化显示的柱状图。通过调用Series.hist()方法即可创建。
密度图:与直方图相关的一种类型图,是通过计算“可能会产生观测数据的连续概率分布的估计”而产生的,通过给plot传入参数kind = "kde" 即可。
散布图:是观测两个一维数据序列之间关系的有效手段,使用pd.scatter_matrix()即可建立。
部分代码:
#encoding:utf-8 import pandas as pd #数据分析 import numpy as np #科学计算 from pandas import Series,DataFrame data_train = pd.read_csv("E:Python27AlgorithmChapter1DataDatasetsTitanic\train.csv") data_train.columns import matplotlib import matplotlib.pyplot as plt myfont =matplotlib.font_manager.FontProperties(fname=r"c:windowsfontssimsun.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 lable plt.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,通过这个简单的示例,以后画图之类的都可以搞定了。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。