用Pandas作图

玛丽莲梦兔
849次浏览
2020年08月03日 21:41
最佳经验
本文由作者推荐

菏泽市人事信息网-心得体会



用Pandas作图
分类: python2014-07-11 12:20 32人阅读 评论(0) 收藏 举报
目录(?)[+]
来自:http:t hon20140223Plotting_with_Pandas#wat_e_12612920-6fe 4-464e-a2b0-3b1f13c1a4f6_zss_
关于Pandas的基本使用介绍,请查看另一篇博文:Python中的结构化数据分析利器- Pandas简介
推荐使用ipython的pylab模式,如果要在ipython notebook中嵌入图片,则还需要指定pylab=inline。
ipython --pylab ##ipython

pylab
模式

ipython notebook --pylab=inline ##notebook

inline
模式

import pandas as pd
基本画图命令
Pandas通过整合matplotlib的相关功能实现了基于DataFrame的一些 作图功能。下面的数据是每年美国男女出生数据:
url = 'http:rsedasi
'
present = _table(url, sep=' ')

(63, 3)
s
Index([u'year', u'boys', u'girls'], dtype='object')
可以看到这个数据集共 有63条记录,共有三个字段:Year,boys,girls。为了简化计算将year作为索引。
present_year = _index('year')
plot是画图的最主要方法,Series和DataFrame都有plot方法。
可以这样看一下男生出生比例的趋势图:
present_year['boys'].plot()
(loc='best')
< at 0x10b9c7610>

这是Series上的plot方法,通过 DataFrame的plot方法,你可以将男生和女生出生数量的趋势图画在一起。


present_()


present_(color='g')
present_(color='b')
(loc='best')
< at 0x10999e510>

可以看到DataFrame提供plot方法与在多个Ser ies调用多次plot方法的效果是一致。
present_year[:10].plot(kind='bar')



plot默认生成是曲线图,你可以通过kind参数生成其他的图形,可选的值为:line, bar, barh, kde, density, scatter。
present_year[:10].plot(kind='bar')


present_year[:10].plot(kind='barh')



如果你需要累积的柱状图,则只需要指定stacked=True。
present_year[:10].plot(kind='bar', stacked=True)


制作相对的累积柱状图,需要一点小技巧。
首先需要计算每一行的汇总值,可以在DataF rame上直接调用sum方法,参数为1,表示计算行的汇总。默认为0,表示计算列的汇总。
present_(1)[:5]
year
1940 2360399
1941 2513427
1942 2808996
1943 2936860
1944 2794800


dtype: int64
有了每一行的汇总值之后,再用每个元素除以对应行的汇总值就可以得出需要的数据。这里 可以使用DataFrame的div函数,同样要指
定axis的值为0。
present _(present_(1),axis=0)[:10].plot(kind='b
arh', stacked=True)


散点图和相关
plot也可以画出散点图。使用kind='scatter', x和y指定x轴和y轴使用的字段。
present_(x='boys', y='girls', kind='scatter')


再来载入一下鸢尾花数据。


url_2 = 'https:atapandasmasterpandastes
'
iris = _csv(url_2)
(5)
SepalLength SepalWidth PetalLength PetalWidth Name
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
4 5.0 3.6 1.4 0.2 Iris- setosa
5 rows × 5 columns
()
SepalLength SepalWidth PetalLength PetalWidth
SepalLength 1.000000 -0.109369 0.871754 0.817954
SepalWidth -0.109369 1.000000 -0.420516 -0.356544
PetalLength 0.871754 -0.420516 1.000000 0.962757
PetalWidth 0.817954 -0.356544 0.962757 1.000000
4 rows × 4 columns
from ng import scatter_matrix
scatter_matrix(iris, alpha=0.2, figsize=(6, 6), diagonal='kde')
array([[,
,
,
],
[,
,
,
],
[,
,
,
],
[,
,


,
]], d
type=object)

箱图
DataFrame提供了boxplot方法可以用来画箱图。
t()
{'boxes': [<2D at 0x1141439d0>,
<2D at 0x11416c1d0>,
<2D at 0x1141559d0>,
<2D at 0x11414b210>],
'caps': [<2D at 0x11416af90>,
<2D at 0x1141434d0>,
<2D at 0x114172790>,
<2D at 0x114172c90>,
<2D at 0x114153f90>,
<2D at 0x1141554d0>,
<2D at 0x11414f7d0>,


<2D at 0x11414fcd0>],
'fliers': [<2D at 0x114145410>,
<2D at 0x114145b50>,
<2D at 0x11416cbd0>,
<2D at 0x1141530d0>,
<2D at 0x114151410>,
<2D at 0x114151b90>,
<2D at 0x11414bc10>,
<2D at 0x1141743d0>],
'medians': [<2D at 0x114143ed0>,
<2D at 0x11416c6d0>,
<2D at 0x114155ed0>,
<2D at 0x11414b710>],
'whiskers': [<2D at 0x11416a7d0>,
<2D at 0x11416aa10>,
<2D at 0x114172050>,
<2D at 0x114172290>,
<2D at 0x114153590>,
<2D at 0x114153a90>,
<2D at 0x11414f090>,
<2D at 0x11414f2d0>]}

通过by参数可以计算不同分组情况下,各个字段的箱图。
t(by='Name', figsize=(8, 8))
array([[,


],
[,
]], d
type=object)

直方图和概率密度分布
[:,:-1].hist()
(kind='kde')




多变量的可视化
Radviz
from ng import radviz
radviz(iris, 'Name')



Andrews Curves
from ng import andrews_curves
andrews_curves(iris, 'Name')


Parallel Coordinates
from ng import parallel_coordinates
parallel_coordinates(iris, 'Name')



你也可以查看本文的ipython notebook版本:http:tcloga9171281

色戒评价-山东省经济管理干部学院


王国维简介-司法考试成绩查询时间


心无旁骛是什么意思-咸宁市中考分数查询


赞助合同-山东大学本科招生网


第一时间英文-奥运五福娃


台湾酒-竞选文艺委员演讲稿


广州航海高等专科学院-教育实习个人总结


山东省分数线-网站建设合同