gpt4 book ai didi

python - 如何使用 rcParams 中的 linestyle=None 在 matplotlib 中制作误差线图?

转载 作者:太空狗 更新时间:2023-10-29 16:53:07 26 4
gpt4 key购买 nike

绘制误差线图时,matplotlib 没有遵循无线型的 rcParams。相反,它绘制了所有与一条线相连的点。这是一个最小的工作示例:

import matplotlib.pyplot as plt

lines = {'linestyle': 'None'}
plt.rc('lines', **lines)

plt.errorbar((0, 1), (1, 0), yerr=(0.1, 0.1), marker='o')

plt.savefig('test.pdf')
plt.delaxes()

enter image description here

调用pyplot.errorbar()时显式设置linestyle='None'是唯一的解决方案吗?

最佳答案

这是旧版本 matplotlib 中的一个“错误”(并且对于 1.4 系列已经是 fixed)。问题是,在 Axes.errorbar 中,fmt 有一个默认值 '-',然后传递给对 plot 用于绘制标记和线条。因为格式字符串被传递到 plot 中,所以永远不会查看 rcparams 中的默认值。

也可以传入fmt = ''

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

这将导致 rcParam['lines.lineSTLye'] 值受到尊重。我已经提交了 PR实现这个。

另一种解决方法是分两步制作错误栏:

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

这是一个恼人的设计决定,但改变它会是一个主要的 api 中断。请在 github 上打开一个关于此的问题。

错误栏 doc .

作为旁注,看起来调用签名最后一次更改是在 2007 年,那是为了让错误栏不默认为蓝色。

关于python - 如何使用 rcParams 中的 linestyle=None 在 matplotlib 中制作误差线图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18498742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com