打印errorbar打印时,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()
调用pyplot.errorbar()
时显式设置linestyle='None'
的唯一解决方案是什么?
这是
matplotlib
旧版本中的一个“bug”(在1.4系列中一直是fixed)。问题是在Axes.errorbar
中,'-'
是fmt
的默认值,然后传递给用于绘制标记和行的plot
调用。因为格式字符串在中传递到plot
,所以从不查看rcparams
中的默认值。您也可以传入
fmt = ''
这将使
rcParam['lines.linestlye']
值得到尊重。我已经提交了一个PR来实现这一点。另一个解决方法是用两个步骤制作错误栏:
这是一个恼人的设计决策,但更改它将是一个主要的api中断。请在github上就此打开一个问题。
错误栏doc。
另一方面,调用签名上次更改似乎是在2007年,这是为了使errorbars不默认为蓝色。
相关问题 更多 >
编程相关推荐