How do you make an errorbar plot in matplotlib using linestyle=None in rcParams?

前端 未结 1 815
旧时难觅i
旧时难觅i 2020-12-29 05:03

When plotting errorbar plots, matplotlib is not following the rcParams of no linestyle. Instead, it\'s plotting all of the points connected with a line. Here\'s a minimum

相关标签:
1条回答
  • 2020-12-29 05:34

    This is a "bug" in older versions of matplotlib (and has been fixed for the 1.4 series). The issue is that in Axes.errorbar there is a default value of '-' for fmt, which is then passed to the call to plot which is used to draw the markers and line. Because a format string is passed into plot in never looks at the default value in rcparams.

    You can also pass in fmt = ''

    eb = plt.errorbar(x, y, yerr=.1, fmt='', color='b')
    

    which will cause the rcParam['lines.linestlye'] value to be respected. I have submitted a PRto implement this.

    Another work around for this is to make the errorbar in two steps:

    l0, = plt.plot(x,y, marker='o', color='b')
    eb = plt.errorbar(x, y, yerr=.1, fmt=None, color='b')
    

    This is an annoying design decision, but changing it would be a major api break. Please open an issue on github about this.

    errorbar doc.

    As a side note, it looks like the call signature was last changed in 2007, and that was to make errorbars not default to blue.

    0 讨论(0)
提交回复
热议问题