Legend for a pie chart(饼图的图例)
本文介绍了饼图的图例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想创建一个带有标签和值的图例。 数据集包含此列
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)
运行上面的代码,我得到一个图例表,它不包含任何值,只包含标签。我不希望在饼图中有任何标签或值,但只能在图例中。 您能告诉我如何修复代码吗?
谢谢
推荐答案
这是您预期的输出吗?我习惯了使用 pandas ,所以我正在使用数据帧。我已经指定了在引用的代码中获取的路径和标签。
import pandas as pd
import numpy as np
import io
data = '''
ID LETTER
2 C
26 C
40 C
63 O
83 N
139 C
141 O
145 C
148 N
156 N
'''
df = pd.read_csv(io.StringIO(data), delim_whitespace=True)
from itertools import chain
from collections import Counter
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(4,3),dpi=144)
ax = fig.add_subplot(111)
cts = df.LETTER.value_counts().to_frame()
percent = 100.*cts.LETTER / cts.LETTER.sum()
ax.pie(cts.LETTER)
patches = cts.index
labels = ['{0} - {1:1.2f} %'.format(i,j) for i,j in zip(cts.index, percent)]
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(patches, labels=labels, loc='center left', bbox_to_anchor=(-0.1, 1.), fontsize=8)
plt.show()
这篇关于饼图的图例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:饼图的图例


猜你喜欢
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
- 我如何透明地重定向一个Python导入? 2022-01-01
- 我如何卸载 PyTorch? 2022-01-01
- YouTube API v3 返回截断的观看记录 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
- 如何使用PYSPARK从Spark获得批次行 2022-01-01
- 使用 Cython 将 Python 链接到共享库 2022-01-01
- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
- 计算测试数量的Python单元测试 2022-01-01
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01