【发布时间】:2021-02-16 01:34:23
【问题描述】:
我想创建一个带有标签和值的图例。 数据集包含此列
ID LETTER
2 C
26 C
40 C
63 D
83 E
139 C
141 E
145 C
148 E
156 E
我正在使用饼图:
from itertools import chain
from collections import Counter
import matplotlib.pyplot as plt
plt.figure(figsize=(16,8))
cts = Counter(chain.from_iterable(df.LETTER.str.split('|').values))
_ = plt.pie(cts.values(), labels=cts.keys(), autopct='%1.1f%%')
patches = cts.values()
labels = cts.keys()
sort_legend = True
if sort_legend:
patches,labels, dummy = zip(*sorted(zip(patches, labels, df.LETTER),
key=lambda x: x[2],
reverse=True))
plt.legend(cts.values(), labels=cts.keys(), loc='center left', bbox_to_anchor=(-0.1, 1.),
fontsize=8)
运行上面的代码,我得到一个图例表,它不包含任何值,但只有标签。我希望饼图中没有任何标签或值,而仅在图例中。 你能告诉我如何修复代码吗?
谢谢
【问题讨论】:
-
为什么我们不停止显示标签和值的百分比?
_ = plt.pie(cts.values()) -
@r.beginniers,我已经尝试过了,但问题是在图例中我看不到值。即使我标注也没关系
-
可以分享当前的输出图吗?还有,这是做什么的?
df.LETTER.str.split('|').values -
您只能使用 df.Letter.values。我把清理过的文本。那行代码需要将一个字符串分成两部分。
-
我试图按照以下步骤操作:stackoverflow.com/questions/23577505/…,但我更喜欢标注而不是图例(如果可能且容易的话)
标签: python pandas matplotlib pie-chart