matplotlib 图例中错误带的线加阴影区域
Line plus shaded region for error band in matplotlib's legend
我想要一个类似的图例
但是虚线和黄色区域合并成这样:
要执行您想要的操作,您需要调用 legend
将您想要的两个 lines/patches 组合在一个项目中。
要了解如何在实践中做到这一点,这里有一个简单的工作示例:
# 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 guide 以了解正在发生的事情,并根据您的需要调整图例。
我想要一个类似的图例
但是虚线和黄色区域合并成这样:
要执行您想要的操作,您需要调用 legend
将您想要的两个 lines/patches 组合在一个项目中。
要了解如何在实践中做到这一点,这里有一个简单的工作示例:
# 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 guide 以了解正在发生的事情,并根据您的需要调整图例。