根据 xlabel 为 matplotlib 中的特定条形着色

Color specific bars in matplot lib according to x label

我正在使用 matplotlib 绘制条形图,如下所示:

from matplotlib import pyplot as plt

x = ('sample1', 'sample2', 'sample3')
y = (-1, 0, 1)
plt.bar(x,y)

现在我想循环遍历图形定义,为 x 中的每个项目生成一个新图形,并对相应的 x 条进行不同的着色以在每个图形中强调它。这将生成一个图形,其中 'sample1' 的条形为红色(所有其他条形为黑色),另一个图形为 'sample2' 为红色(所有其他条形为黑色),等等。

color 可以设置为 plt.bar() 的参数,但它似乎需要一个列表。我不确定如何以允许颜色列表随着图形定义的每个循环而变化的方式利用此参数。

您可以创建一个数组,所有颜色都相同。然后,对于每次迭代,将该数组复制到一个临时数组,并将该临时数组中的相应条目更改为强调颜色。像这样:

colors = ['k','k','k']
for i in range(3):
    tempcolors = list(colors)
    tempcolors[i] = 'r'
    plt.figure()
    plt.bar(x,y,color=tempcolors)