How To Force Errorbars To Render Last With Matplotlib
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 belo
Solution 1:
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 inrange(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)
Solution 2:
This is a known bug in matplotlib
. Link to github issue
Hacky solution: Add the argument zorder=3
when you call plt.errorbar
, like plt.errorbar(..., zorder=3)
Post a Comment for "How To Force Errorbars To Render Last With Matplotlib"