Matplotlib: Stacked Bar Graphs

阅读: 评论:0

Matplotlib: Stacked Bar Graphs

Matplotlib: Stacked Bar Graphs

我在用matplotlib's stacked bar graph example 做bar统计图的时候,发现画出的图不能够准确匹配该项的值,几番查找原因,最终在Stack Overflow上找到了答案。以下给出一个 Stacked Bar Graphs demo。

 

import numpy as np

import matplotlib.pyplot as plt

N = 3

#('PledMis', 'PledFel', 'FoundFel')

Incarceration = np.array([115.3, 1.99,23.7] )

Probation = np.array([52.0, 45.9, 45.0])

Work = np.array([0, 0.3, 2.4])

Program= np.array([0, 0, 12])

 

ind = np.arange(N)    # the x locations for the groups

width = 0.5           # the width of the bars: can also be len(x) sequence

p1 = plt.bar(ind, Incarceration, width, color='r')

p2 = plt.bar(ind, Probation, width, color='y',bottom=Incarceration)

p3 = plt.bar(ind, Work, width, color='b',bottom= Probation+Incarceration)

p4 = plt.bar(ind, Program, width, color='g',bottom=Work+Probation+Incarceration)

plt.ylabel('Months')

plt.title('Time')

 

plt.legend ((p1[0], p2[0], p3[0], p4[0]), ('Incarceration', 'Probation','Work','Program' ))

 

plt.show()

 

图示结果:


 

如果我们做多个bar并且想要将之堆积起来,更有效的办法是用一个循环并且定义一个bottom自变量,代码如下:

colors = ('r', 'y', 'b', 'g')

data = (Incarceration, Probation, Work, Program)

bottom = np.zeros(N)

for elem, color in zip(data, colors):

    plt.bar(ind, elem, width, bottom=bottom, color=color)

    bottom += elem

 


本文发布于:2024-01-29 00:38:36,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170645992011460.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:Stacked   Matplotlib   Graphs   Bar
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23