专栏名称: Python爱好者社区
人生苦短,我用Python。分享Python相关的技术文章、工具资源、精选课程、视频教程、热点资讯、学习资料等。每天自动更新和推送。
目录
相关文章推荐
Python开发者  ·  matplotlib + ... ·  4 天前  
Python开发者  ·  突发!OpenAI 紧急上书,呼吁禁用 ... ·  3 天前  
Python开发者  ·  董事长刺死CTO(2):董事长早就写好复仇名 ... ·  4 天前  
Python爱好者社区  ·  75k,直接封神! ·  昨天  
Python中文社区  ·  金钱永不眠:量化交易中的马丁格尔策略 ·  3 天前  
51好读  ›  专栏  ›  Python爱好者社区

pandas可视化(2)【官方文档解读】-- 条形图、直方图

Python爱好者社区  · 公众号  · Python  · 2017-08-03 00:12

正文

作者:王大伟

Python爱好者社区唯一小编

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


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

前言

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

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

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


环境

IDE : jupyter notebook

Anaconda 3.X


条形图

对于标记的非时间序列数据,你可能希望生成条形图:

import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
matplotlib.style.use('ggplot')#使用ggplot样式
%matplotlib inline

ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD'))
df = df.cumsum()

注:如前一章,先导入必要的模块和绘图的数据准备

plt.figure();
df.iloc[5].plot(kind='bar')
plt.axhline(0, color='k')

注:df.iloc[5]意思是取出df第6行(索引为5),然后绘制条形图

plt.axhline(0, color='k')指的是在y=0的位置画一条黑色的线


注:因为是随机产生的值绘图,你的图一般和我不一样,一样就厉害了!

这种为图所存在的内存地址位置


df2 = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
df2.plot.bar()

注:如果看了前一章,以上代码很好理解,这里同一幅图绘制多个条形图比较


df2.plot.bar(stacked=True)

注:将a、b、c、d数据叠加起来绘制条形图



df2.plot.barh(stacked=True)

注:绘制水平叠加条形图


直方图
df4 = pd.DataFrame({'a': np.random.randn(1000) + 1, 'b': np.random.randn(1000),
                   'c': np.random.randn(1000) - 1}, columns=['a', 'b', 'c'])
df4.head()


注:以标准正态分布为基础产生一个df4


plt.figure()
df4.plot.hist(alpha=0.5






请到「今天看啥」查看全文