所以我创建了一个包含大量条目的条形图。在y轴上,它只显示x轴上标记/条目的值。总而言之,我得到了很多不同高度的酒吧 - 应该是这样。
现在,一些x轴标签/条目比其他标签/条目更重要。所以我创建了一个包含所有重要标签/条目的列表。我的想法是,我想改变列表中包含的那些标签/条目的颜色或字体粗细(使它们变粗)。但我真的不知道该怎么做。
我现在使用的情节代码只是:
plt.bar(indexes, values, width, color="#3F5D7D", edgecolor="#111111", align='center')
plt.xticks(indexes, labels, fontsize=10, rotation='vertical')
plt.xlim([-0.5,indexes.size-0.5])
plt.subplots_adjust(left=0.05, bottom=0.20, right=0.95, top=0.95, wspace=0.2, hspace=0.2)
plt.show()
其中indexes
是每个标签/条目的索引,values
当然是这些的值,而plt.xticks
我只是更改了indexes
labels
。
然后我有一个标签列表,我们称之为main_labels = ['important_label1', 'important_label2', 'important_label3'...]
,依此类推。是的,现在我希望如此,当标签是这个main_labels
列表的一部分时,它将变为粗体或其他颜色。
答案 0 :(得分:2)
您可以遍历main_labels
,找出labels
列表中标签的位置,并更改相应的标签。
import matplotlib.pyplot as plt
indexes = [1,2,3,5,6]
values = [8,6,4,5,3]
width = 0.8
labels = ["cow","ox","pig","dear","bird"]
main_labels = ["ox", "pig", "bird"]
plt.bar(indexes, values, width, color="#3F5D7D", edgecolor="#111111", align='center')
plt.xticks(indexes, labels, fontsize=10, rotation='vertical')
plt.xlim([0.5,max(indexes)+0.5])
plt.subplots_adjust(left=0.05, bottom=0.20, right=0.95, top=0.95, wspace=0.2, hspace=0.2)
ticklabels = [t for t in plt.gca().get_xticklabels()]
for l in main_labels:
i = labels.index(l)
ticklabels[i].set_color("red")
ticklabels[i].set_fontweight("bold")
plt.show()