Matplotlib偏移量errorbar bug解决方法?

时间:2014-11-04 23:19:51

标签: python matplotlib

这里记录了错误:

Matplotlib errorbar not centered on marker

在这里: https://github.com/matplotlib/matplotlib/issues/3400

基本上,标记一直以1像素为单位。如果你仔细观察第二个图,你甚至可以在Matplotlib自己的教程页面上看到这个:http://matplotlib.org/1.2.1/examples/pylab_examples/errorbar_demo.html

这是非常令人沮丧的,因为我无法从matplotlib生成出版品质的图,我很惊讶这还没有修复。

无论如何,我有太多的时间和代码投入matplotlib来切换到不同的包。所以我的问题是你将如何制定解决方法?我想一种解决方案是将标记从错误栏左侧/右侧绘制1个像素。我不知道该怎么做。我想出了如何获得我的绘图点的显示坐标,但是如何制作保留1像素偏移的交互式绘图?我可以使用1像素偏移绘制它们,但是你无法缩放或操作绘图。

1 个答案:

答案 0 :(得分:2)

似乎Matplotlib团队使用.svg或.pdf修复了issue when calling savefig(),但对于.png,我发现你可以通过使用奇数作为错误行的厚度来解决这个问题。如果我们使用

,请使用Matplotlib tutorial上的第一个示例
plt.errorbar(x, y, yerr=0.4, marker='X', markersize=15)

然后条形图像这样偏移:

enter image description here

但是,如果我们使用3

的线宽
plt.errorbar(x, y, yerr=0.4, marker='X', markersize=15, elinewidth=3)

然后条形图像这样居中:

enter image description here

这不是一个完美的解决方案,但是如果你不介意稍微粗一点的话,那就可以了。