简体   繁体   中英

matplotlib bar plot errbar

in the official example,we can use bar function like this:

#!/usr/bin/env python
# a stacked bar plot with errorbars
import numpy as np
import matplotlib.pyplot as plt


N = 5
menMeans   = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
menStd     = (2, 3, 4, 1, 2)
womenStd   = (3, 5, 2, 3, 3)
ind = np.arange(N)    # the x locations for the groups
width = 0.35       # the width of the bars: can also be len(x) sequence

p1 = plt.bar(ind, menMeans,   width, color='r', yerr=womenStd,align='center')
p2 = plt.bar(ind, womenMeans, width, color='y',bottom=menMeans, yerr=menStd,align='center')

plt.ylabel('Scores')
plt.title('Scores by group and gender')
plt.xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5') )
plt.yticks(np.arange(0,81,10))
plt.legend( (p1[0], p2[0]), ('Men', 'Women') )

plt.show()

What I don't understand is that, why the womenStd is used as the menMeans's yerr, and the menStd is used as womenMeans's yerr.

Could you please explain that for me? Thanks very much.

It could very plausibly be a typo. It doesn't appear to be important to the example at all, which exists to illustrate matplotlib functionality.

That must be a typo in the documentation as can be demonstrated by changing the number of items in each group. For instance, remove the last item from each of the women variables and create a new ind2 = np.arange(N-1) and rerun the code. You will get a stack trace, which indicates to me that your intuition was correct and that you should use the similarly named variables. Clearly the given example is just for illustration anyways, but should probably be changed to be more clear.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM