python - 使用 Python 在 matplotlib 中不剪裁错误栏

标签 python matplotlib scipy plot

我在 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()

enter image description here

您遇到的问题是 clip_on 关键字被用来控制标记而不是错误栏。为了控制错误栏,plt.errorbar 返回一个元组,其中第二项是错误栏列表。所以我在这里浏览列表并关闭每个错误栏的裁剪。

关于python - 使用 Python 在 matplotlib 中不剪裁错误栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2842123/

相关文章:

python - 函数和 if - else 在 python 中。多个条件。代码学院

python - 如何将以下三角函数转换为python函数进行边界曲率计算?

python - 如何将过滤器应用于局部最大值(图)

python - 如何通过在pyglet窗口中用鼠标拖动将.png从x,y拖动到x1,y1

python - 如何从 Django ORM 开始轻松切换到 SQLAlchemy?

python - Matplotlib 返回空图

python - Matplotlib 三角形 (plot_trisurf) 颜色和网格

python - 仅在正 X 轴上绘制水平线

python - 获得滚动百分位数排名的快速方法

python - 稀疏矩阵上的行外积