matplotlib>;2.0.1
由于GitHub上有很多关于填充的discussion,现在引入了一些更改,使填充更加直观。
如果使用的是facecolor参数而不是color参数,则问题中的示例现在可以再次按预期工作。import matplotlib.pyplot as plt
plt.plot([0,1],[0,1],ls="--",c="b")
plt.fill_between([0,1],[0,1], facecolor="none", hatch="X", edgecolor="b", linewidth=0.0)
plt.show()
matplotlib 2.0.0
保留导致此问题的原始帖子:
在matplotlib 2.0.0中,可以通过使用plt.style.use('classic')恢复旧样式。##Classic!
import matplotlib.pyplot as plt
plt.style.use('classic')
plt.rcParams['hatch.color'] = 'b'
plt.plot([0,1],[0,1],ls="--",c="b")
plt.fill_between([0,1],[0,1], color="none", hatch="X", edgecolor="b", linewidth=0.0)
plt.show()
在不设置旧样式的情况下,以下操作不会将颜色设置为“无”,而是使其透明。## New
import matplotlib.pyplot as plt
plt.rcParams['hatch.color'] = 'b'
plt.plot([0,1],[0,1],ls="--",c="b")
plt.fill_between([0,1],[0,1], hatch="X", linewidth=0.0, alpha=0.0)
plt.show()
两种方法都依赖于通过plt.rcParams['hatch.color'] = 'b'设置图案填充颜色。
不幸的是,目前在matplotlib 2.0.0中没有其他设置图案填充颜色的方法。
matplotlib page that explains the changes状态There is no API level control of the hatch color or linewidth.
github上有一个打开的issue on this topic,API控件可能会(重新)添加到即将发布的版本(实际上是用2.0.1版完成的)。