查看原文
其他

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

2017-08-01 王大伟 Python爱好者社区

作者:王大伟

Python爱好者社区唯一小编

博客:https://ask.hellobi.com/blog/wangdawei


点击上图即可限时半价购买课程

前言

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

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

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

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

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

有以下两个原因:

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

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


环境

IDE : jupyter notebook

Anaconda 3.X


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

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


基于matplotlibimport 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默认画图


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


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(),意思是返回累积值,在时间序列分析中,经常观察累积值曲线观察走势


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


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个时间序列值

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



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列数据最后绘图没有用上



pandas基础绘图plot到此结束

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


参考文献

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

微课福利:Hellobi live |8月22日,利用 Python 建构金融数据分析平台

查看下图说明免费参加或者点击文末阅读原文参加

关注公众号,“Python爱好者社区”,回复“爬虫”即可获取崔老师爬虫免费学习视频。


Python爱好者社区


为大家提供与Python相关的最新技术和资讯。

长按指纹 > 识别图中二维码 > 添加关注

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存