如何在熊猫的count_value图的图例中添加自定义字符串?

时间:2018-08-30 05:19:25

标签: python pandas matplotlib

我有一个数据框列,我在其中应用了value_counts来查找每个实体的出现次数。

我正在尝试将其绘制为条形图。 它在x轴上绘制每个实体,在y轴上绘制它们的计数。如何添加图例,以便将x轴上的每个实体都映射到字符串。

value_counts的结果如下:

df.Column.value_counts()

10.0      1094
2154.0     697
23.0       202

我需要一个图例,它将用字符串替换我的实体。

  • 10-Alpha
  • 2154-Beta
  • 23-伽玛

实体的数量可能会有所不同。我有每个实体的字符串列表。所以我想用列表中的字符串替换我的实体。我只想在图例上替换它。

图形应在x轴上具有实体,图例应具有列表中的等效字符串。

2 个答案:

答案 0 :(得分:1)

不太容易,因为默认情况下没有图例:

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt

s = df.Column.value_counts()
#sample data
#s = pd.Series([1094,697,202], index=[10.0,2154.0,23.0])

s.plot.bar()
a = mpatches.Patch(color='blue', label='Alpha')
b = mpatches.Patch(color='orange', label='Beta')
c = mpatches.Patch(color='green', label='Gamma')

plt.legend(handles=[a,b,c], loc='best')

plt.show()

如果wnt也更改了axis x的值,请添加rename

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt

s = df.Column.value_counts()
d = {10:'Alpha', 2154: 'Beta', 23: 'Gamma'}
#sample data 
#s = pd.Series([1094,697,202], index=[10.0,2154.0,23.0])

s.rename(d).plot.bar()

a = mpatches.Patch(color='blue', label='Alpha')
b = mpatches.Patch(color='orange', label='Beta')
c = mpatches.Patch(color='green', label='Gamma')

plt.legend(handles=[a,b,c], loc='best')

plt.show()

答案 1 :(得分:0)

equiv = {10:"Alpha", 2154:"Beta", 23:"Gamma"}
df = df.map(equiv)

或者可能必须使用.withColumn和类似How to add map column in spark based on other column?

的东西