subplot中的axvspan无法正常工作

时间:2016-11-30 20:00:46

标签: python python-2.7 matplotlib

我尝试在不同的子图中着色。

我的代码:

f, (ax) = plt.subplots(1, 7 , sharey=True, figsize=(14,2))
color=['g','c','m','y','g','c','m']
for k in range(7):
    ax[k].axvspan(0,100,facecolor=color[k], alpha = 0.3)
    ax[k].plot(data[k]['x'], data[k]['y'], color=color[k])
    ax[k].set_xscale('log')

虽然没有出现错误,但它会绘制情节,但不会显示颜色。当我没有set_xscale(' log')时,它就可以了。 建议?

1 个答案:

答案 0 :(得分:2)

删除第一行的逗号,然后修复你的身份。

然后确保在制作axvspan之前设置日志比例。

f, (ax) = plt.subplots(1, 7 , sharey=True, figsize=(14,2))
color=['g','c','m','y','g','c','m']
for k in range(7):
    ax[k].set_xscale('log')
    ax[k].axvspan(0,100,facecolor=color[k], alpha = 0.3)

enter image description here

如果您正在寻找为背景着色的方法,则应使用ax[k].set_axis_bgcolor(color[k])代替。

此外,您可能最好使用axhspan,因为它将使用x的轴(相对)单位。

ax[k].set_ylim(0,1)
ax[k].set_xscale('log')
ax[k].axhspan(0,1,facecolor=color[k], alpha = 0.3)