pandas可视化(1)【官方文档解读】--基础绘图

浏览: 5766

前言

前段时间想学习python的可视化,自己也做过各种探索

从seaborn(色彩很好看,但是个人感觉调色太专业,底子没打好学起来很累)

到matplotlib(python基础绘图模块,但是写起来特别麻烦,学的不深入图不好看)

再到pyplot(交互式很强,学起来难度太大)

最后由秦路老师推荐,学了pandas的可视化

有以下两个原因:

(1)pandas我之前学过,也写过官方文档翻译连载,比较熟悉

(2)pandas可视化的图风格很好看,很商务风

环境

IDE : jupyter notebook

Anaconda 3.X


如绘图过程中,中文字体和负号显示有问题,可以参照如下链接修改配置参数设置正常显示:

https://www.joinquant.com/post/441


基于matplotlib

import matplotlib.pyplot as plt

注:导入matplotlib.pyplot


import matplotlib
matplotlib.style.use('ggplot')
%matplotlib inline

注:使用ggplot样式,并且将图画在jupyter notebook中


import pandas as pd
import numpy as np
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts.plot()

注:使用pandas创建一个Series(序列),序列值是随机生成的1000个标准正态分布值,索引是从2000-1-1开始的1000个时间序列值

然后使用plot默认画图

Clipboard Image.png

可以看出,这个图非常不规则,因为相邻的两个值也是随机大小


import pandas as pd
import numpy as np
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
ts.plot()

注:这里加上了ts = ts.cumsum(),意思是返回累积值,在时间序列分析中,经常观察累积值曲线观察走势

Clipboard Image.png

是不是这个累积值看起来规则多了呢


df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD'))
df = df.cumsum()
plt.figure()
df.plot()

注:这里使用pandas创建了一个DataFrame(数据框,有点像excel表格那种),为什么不用刚才的Series呢?

划重点啦!因为这里DataFrame中创建了4组数据

这4组数据都是随机生成的1000个标准正态分布值

索引是从2000-1-1开始的1000个时间序列值

并且也是求他们各自的累积值并且画图

Clipboard Image.png


df3 = pd.DataFrame(np.random.randn(1000, 2), columns=['B', 'C']).cumsum()
df3['A'] = pd.Series(list(range(len(df))))
df3.plot(x='A', y='B')

注:使用DataFrame创建了2组数据,也是1000个标准正态分布,分别命名为B、C(就行excel中列名)

并且求累积值

再在原来的df(DataFrame的简称)(这里名字是df3)上加上一列名为A

A的值是0-999(使用df3的长度为1000,然后range被套列表生成一列数,作为x轴),y轴是B列数据(累积值),c列数据最后绘图没有用上

Clipboard Image.png


pandas基础绘图plot到此结束

文中所写如有谬误请指出,感谢!

参考文献

http://pandas.pydata.org/pandas-docs/stable/visualization.html#

推荐 3
本文由 ID王大伟 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册