-3

每个人,

我想创建一个条形图但背景填充。

例如:对于 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()
4

1 回答 1

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')

在此处输入图像描述

于 2013-09-13T04:05:02.057 回答