matplotlib图例中误差带的线加阴影区域

时间:2016-11-22 08:23:44

标签: matplotlib legend uncertainty

我想有一个类似的传奇 graph with uncertainty band

但是用虚线和黄色区域合并如下:

enter image description here

1 个答案:

答案 0 :(得分:2)

要做你想做的事,你需要调用legend在一个项目中组合你想要的两行/补丁。

要了解如何在实践中这样做,这是一个简单的工作示例:

# Import libraries
import numpy as np
import matplotlib.pyplot as plt

# Create some fake data
xvalue = np.linspace(1,100,100)
pop_mean = xvalue
walker_pos = pop_mean + 10*np.random.randn(100)

# Do the plot
fig, ax = plt.subplots()

# Save the output of 'plot', as we need it later
lwalker, = ax.plot(xvalue, walker_pos, 'b-')

# Save output of 'fill_between' (note there's no comma here)
lsigma = ax.fill_between(xvalue, pop_mean+10, pop_mean-10, color='yellow', alpha=0.5)

# Save the output of 'plot', as we need it later
lmean, = ax.plot(xvalue, pop_mean, 'k--')

# Create the legend, combining the yellow rectangle for the 
# uncertainty and the 'mean line'  as a single item
ax.legend([lwalker, (lsigma, lmean)], ["Walker position", "Mean + 1sigma range"], loc=2)

fig.savefig("legend_example.png")
plt.show()

此代码生成此图:legend_example.png

您可以查看Legend guide以了解正在进行的操作,并使图例完全符合您的要求。