我在 Python 中使用 matplotlib 绘制一 strip 有错误条的线,如下所示:
plt.errorbar(xvalues, up_densities, yerr=ctl_sds, fmt='-^', lw=1.2, markersize=markersize,
markeredgecolor=up_color, color=up_color, label="My label", clip_on=False)
plt.xticks(xvalues)
我使用“xticks”在 x 轴上设置刻度。然而,xvalues 中最后一个点(即 xvalues[-1])的误差线被剪裁在右边——意味着只出现一半的误差线。即使使用 clip_on=False 选项也是如此。我该如何解决这个问题,以便错误栏显示完整,即使它们的右侧在技术上位于 xvalues[-1] 之外?
谢谢。
最佳答案
在matplotlib中,大部分的细节控制都需要通过Artists来完成。我认为这应该做你想做的:
import matplotlib.pyplot as plt
from random import uniform as r
x = range(10)
e = plt.errorbar(x, [r(2,10) for i in x], [r(.1,1) for i in x], capsize=8, color='r')
for b in e[1]:
b.set_clip_on(False)
plt.show()
您遇到的问题是 clip_on
关键字被用来控制标记而不是错误栏。为了控制错误栏,plt.errorbar
返回一个元组,其中第二项是错误栏列表。所以我在这里浏览列表并关闭每个错误栏的裁剪。
关于python - 使用 Python 在 matplotlib 中不剪裁错误栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2842123/