如何在条形图中为 xlabels 分配代码

How to assign a code to xlabels in bar plot

我正在研究全球恐怖主义数据库,并试图绘制各种目标类型的恐怖分子的条形图。 我想为每个 xlabel 分配一个代码,并在图表上打印一个图例,显示与目标类型对应的代码

到目前为止我还没有找到解决这个问题的方法。 Link 到考虑中的数据集。

df['targtype1_txt'].value_counts().plot(kind = 'bar')
plt.title("Favoirite Target types of Terrorist")
plt.xlabel("Target Type")
plt.ylabel("Value_Counts")

Link 到上面代码的输出。 我想将 xlabel 的值映射到一些数字代码并将其作为列表放在图的一侧

你可以这样做:

c = df.targtype1_txt.astype('category')
d = dict(enumerate(c.cat.categories))
df['targtype1_txt_code'] = c.cat.codes
df['targtype1_txt_code'].value_counts().plot(kind = 'bar')
plt.title("Favorite Target types of Terrorist")
plt.xlabel("Target Type")
plt.xticks(rotation=0)
plt.ylabel("Value_Counts")
s ='\n'.join(['%s: %s' % (key, value) for (key, value) in d.items()])
plt.text(2.6, 1, s, fontsize=14)

使用每个值的代码创建一个新列并绘制该列。然后使用已用于对值进行编码的字典在侧面添加一个文本框。

输出(有几个值):