大家,
我想创建一个条形图但背景填充。
例如: 对于y轴为0到1,背景必须为黑色 对于y轴中的> 1到<2,背景必须是红色。
换句话说,我想在yy轴上创建带有背景不同颜色类别的条形图
(对不起,我的回复点不允许我上传图片) Ty
可能会关闭,但我认为有人会觉得这很有用:水平彩色区域
import matplotlib.pylab as plt
plt.axhspan(0, 1, facecolor='0.5', alpha=0.5,color ='b',linewidth = True,label ="Category 1")
plt.axhspan(0, -0.8, facecolor='0.5', alpha=0.5,color ='yellow',linewidth = True,label ="Category 2")
plt.axhspan(-0.8, -1.3, facecolor='0.5', alpha=0.5,color ='orange',linewidth = True,label ="Category 3")
plt.axhspan(-1.3, -1.6, facecolor='0.5', alpha=0.5,color = 'orangered',linewidth = True,label ="Category 4")
plt.axhspan(-1.6, -2, facecolor='0.5', alpha=0.5,color ='red',linewidth = True,label ="Category 5")
plt.axhspan(-2, -3, facecolor='0.5', alpha=0.5,color ='maroon',linewidth = True,label ="Category 6")
plt.xlabel("Categories")
plt.ylabel("Units")
plt.legend(loc='upper center', bbox_to_anchor=(0.5, -0.05),
fancybox=False, shadow=False, ncol=8)
plt.show()
答案 0 :(得分:2)
喜欢这个吗?
fig, ax = plt.subplots(1, 1)
ax.bar([0, 1, 2], [1, 2, 3], color='b', align='center')
ax.axvspan(0, 1, color='k', alpha=.75, zorder=-1)
ax.axvspan(1, 2, color='r', alpha=.75, zorder=-1)
ax.set_ylim([0, 5])
ax.set_xlabel('fake x')
ax.set_ylabel('fake y')