matplotlib基本画图示例

在这里我介绍一下plot方法的函数的使用。
Series.plot方法的函数:

参数 说明
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:\Python27\Algorithm\Chapter1\Data\Datasets\Titanic\\train.csv")
data_train.columns
import matplotlib
import matplotlib.pyplot as plt
myfont =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 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,通过这个简单的示例,以后画图之类的都可以搞定了。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值