Matplotlib偏移误差棒错误的解决方法?

4

这个问题的记录在这里:

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个回答

3

看起来Matplotlib团队已经修复了使用.svg或.pdf调用savefig()时出现的问题, 但对于.png,我发现您可以通过使用奇数错误线厚度来规避此问题。 如果我们使用Matplotlib教程上的第一个示例,

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

这不是一个完美的解决方案,但如果您不介意有稍微粗一些的线条,它可以完成任务。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接