我有一系列X轴轴标签,我用:
放在图上plt.figure(1)
ax = plt.subplot(111)
ax.bar(Xs, Ys, color="grey",width=1)
ax.set_xticks([i+.5 for i in range(0,count)])
ax.set_xticklabels(Xlabs, rotation=270)
现在我想根据标签的颜色为每个标签着色。例如: 我想应用规则"将标签的颜色设为红色(如果为1)或蓝色(如果为0"),如下所示:
colors = ['blue','red']
ax.set_xticklabels(Xlabs, rotation=270, color = [colors[i] for i in Xlabs])
但这无效。有什么方法可以实现这个目标吗?
答案 0 :(得分:15)
您可以通过迭代x刻度标签并将其颜色设置为所需颜色来实现此目的。
以下是使用您的代码段执行此操作的示例。
import numpy as np
import matplotlib.pyplot as plt
count = 3
Xs = np.arange(3)
Ys = np.random.random(3)
Xlabs = ('Blue', 'Red', 'Green')
plt.figure(1)
ax = plt.subplot(111)
ax.bar(Xs, Ys, color="grey", width=1)
ax.set_xticks([i + .5 for i in range(0, count)])
ax.set_xticklabels(Xlabs, rotation=270)
colors = ['b', 'r', 'g']
for xtick, color in zip(ax.get_xticklabels(), colors):
xtick.set_color(color)
plt.show()