drs*_*drs 17 python matplotlib
在绘制误差条图时,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()
Run Code Online (Sandbox Code Playgroud)

是否是linestyle='None'在调用时明确设置的唯一解决方案pyplot.errorbar()?
tac*_*ell 30
这是旧版本中的"错误" matplotlib(并已针对1.4系列进行了修复).问题在于,Axes.errorbar默认值为'-'for fmt,然后传递给plot用于绘制标记和线的调用.因为传入格式字符串plot永远不会查看默认值rcparams.
你也可以传入 fmt = ''
eb = plt.errorbar(x, y, yerr=.1, fmt='', color='b')
Run Code Online (Sandbox Code Playgroud)
这将导致rcParam['lines.linestlye']价值得到尊重.我已提交PR以实现此目的.
另一个解决方法是分两步制作错误栏:
l0, = plt.plot(x,y, marker='o', color='b')
eb = plt.errorbar(x, y, yerr=.1, fmt=None, color='b')
Run Code Online (Sandbox Code Playgroud)
这是一个令人讨厌的设计决定,但改变它将是一个主要的api休息.请在github上打开一个关于此的问题.
错误栏文档.
作为旁注,看起来呼叫签名在2007年最后一次更改,那就是使错误栏不是默认为蓝色.