首页 > 解决方案 > value_counts() 输出的饼图,将文本映射到带有字典的数值标签

问题描述

我有一个看起来像这样的 df.value_counts() 输出

> dat = pd.Series(data = np.array([48,37,19]), index=np.array([1.0,2.0,3.0]), name='department')

1.0    48
2.0    37
3.0    19
Name: department, dtype: int32

如果我执行 a plt.pie(dat),则没有标签,使用 plt.pie(dat, labels=dat.index),我的标签是 1.0、2.0 和 3.0。

我也有一本字典:

dct= {1:'HR', 2:'RnD', 3:'Manufacturing', 4:'Fun Department'}

如何继续从 dct 而不是 dat 索引获取标签?正在做

plt.pie(dat, labels=dct.values())

返回错误ValueError: 'label' must be of length 'x'

我怎样才能实现它,实际上只为前三个值(1.0、2.0 和 3.0)设置了字符串标签?

标签: pythonmatplotlibplot

解决方案


您可以替换索引和绘图:

dat.index = dat.index.map(dct)

dat.plot.pie()

输出:

在此处输入图像描述


推荐阅读