我尝试在不同的子图中着色。
我的代码:
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')时,它就可以了。 建议?
答案 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)
如果您正在寻找为背景着色的方法,则应使用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)