matplotlib画图教程系列之-堆积柱状图

matplotlib堆积柱状图画法介绍

堆积柱状图可以理解是两个柱状图显示在一个图形中,关键属性就在与bottom这个属性。

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('planets.csv')
print(df.head(10))
df.fillna(value={'mass':df.mass.mean()},inplace=True)
temp = pd.pivot_table(data=df,index='method',columns='number',values='mass',aggfunc=np.sum)
print(temp)
temp.fillna(0,inplace=True)
print(temp.columns.values)#获取dataframe 的x方向的属性值
print(temp.loc['Radial Velocity',:])
plt.rcParams['font.sans-serif']=['SimHei']#这两句作用为防止中文乱码
plt.rcParams['axes.unicode_minus']=False
plt.bar(x = temp.columns.values,height=temp.loc['Radial Velocity',:],color='steelblue',label='Astrometry',\
        tick_label=['数量1','数量2','数量3','数量4','数量5','数量6','数量7'],)
plt.bar(x=temp.columns.values,height=temp.loc['Transit',:],color='red',label='Transit',\
        tick_label=['数量1','数量2','数量3','数量4','数量5','数量6','数量7'],bottom=temp.loc['Radial Velocity',:])
plt.legend(loc='best')
plt.show()

直接看结果图:

在这里插入图片描述

关于柱状图如何画,我在这里就不赘述了,想了解的同学可以去看我之前写的对于画柱状图的介绍 matplotlib画图教程系列之-条形图

这里只说一下bottom这个属性,这个属性的意思是以什么数值为起点进行向上画图。

咱们看 第二个bar方法 ,bottom=temp.loc[‘Radial Velocity’,:]
这个bottom的值正是第一个bar方法中的,height=temp.loc[‘Radial Velocity’,:],的值。当然,这两个bar方法要保证使用同一个x坐标轴,也就是x属性的值要相同。

发布了67 篇原创文章 · 获赞 54 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/lzx159951/article/details/104391873