I am trying over-plot some empirical data with error bars on top of my modelled data. The error bars seem to be rendering first and are consequently getting over written (see below)
I have tried using zorder but I still get the same result. The code I am using is
for i in range(1,len(pf)):
pf[i,:] = av_pf_scale * pf[i,:]
pylab.semilogy(pf[0,0:180],pf[i,0:180],color='0.75')
pylab.semilogy(av_pf[0:180],color='r')
pylab.semilogy(av_mie[0:180],color='g', linestyle='-')
pylab.draw()
f = pylab.errorbar(ang,data[j],
yerr = delta_data[j],
fmt = 'o',
markersize = 3,
color = 'b',
zorder = 300,
antialiased = True)
I would appreciate if anyone can tell me how to make the errorbars render on top.
Matplotlib line plots and bar charts can include error bars. Error bars are useful to problem solvers because error bars show the confidence or precision in a set of measurements or calculated values.
By using the plt. errorbar() method we plot the error bars and pass the argument xerr to plot error on the x values in the scatter plot. In the above example, we import matplotlib. pyplot library and define the data point on the x-axis and y-axis.
Asymmetric error bars can be computed from raw data simply by selecting different computations for the upper and lower error bars. However, if you have your error bar data in multiple columns, you will need to select the “Asymmetric Error Bar Columns” option.
This looks like it is a bug in matplotlib
where the zorder
argument of the errorbar
is not correctly passed to the vertical lines part of error bars.
replicates your problem :
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.gca()
[ax.plot(rand(50),color='0.75') for j in range(122)];
ax.errorbar(range(50),rand(50),yerr=.3*rand(50))
plt.draw()
Hacky work around:
fig = plt.figure()
ax = plt.gca()
[ax.plot(rand(50),color='0.75',zorder=-32) for j in range(122)];
ax.errorbar(range(50),rand(50),yerr=.3*rand(50))
plt.draw()
report as an issue to matploblib https://github.com/matplotlib/matplotlib/issues/1622 (now patched and closed)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With