作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用此示例 http://matplotlib.org/examples/pie_and_polar_charts/pie_demo_features.html 我怎样才能向这个饼图添加图例?我的问题是我一大片88.4%,第二大片10.6%,其他片0.7和0.3%。饼图周围的标签不会出现(最大切片除外),较小切片的百分比值也不会出现。所以我想我可以添加一个显示名称和值的图例。但我还不知道如何...
# -*- coding: UTF-8 -*-
import matplotlib.pyplot as plt
# The slices will be ordered and plotted counter-clockwise.
labels = 'Rayos X', 'RMN en solución', 'Microscopía electrónica', 'Otros'
sizes = [88.4, 10.6, 0.7, 0.3]
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
explode = (0.1, 0, 0, 0)
plt.pie(sizes, explode=explode, labels=labels, colors=colors, shadow=True, startangle=90)
plt.legend(title="técnica")
# Set aspect ratio to be equal so that pie is drawn as a circle.
plt.axis('equal')
plt.show()
最佳答案
我检查了你的代码,plt.legend()
创造传奇,如您所愿;也许设置 loc="lower left"
,因此它不会与相关的饼图重叠。
对我来说,除了非标准字符之外,字符串都可以正确显示 - 这可能会导致它们根本不显示给您的问题。只有最大的切片和“Otros”不包含特殊字符。也许还可以尝试调整人物的大小,因为它们可能会被推出 Canvas 。请引用how to write accents with matplotlib然后使用正确的字符串重试。
未显示百分比,因为您没有将其设置为显示。请引用您发布的示例,因为您省略了 autopct='%1.1f%%'
这将绘制百分比。在这种特殊情况下,我宁愿不绘制百分比,因为它们会像边框上的标签一样重叠,因为有些切片太小。也许将这些信息添加到图例中。
将它们放在一起(除了特殊字符 - 我在激活 TeX 时遇到了一些问题),尝试以下代码:
# -*- coding: UTF-8 -*-
import matplotlib.pyplot as plt
# The slices will be ordered and plotted counter-clockwise.
labels = [r'Rayos X (88.4 %)', r'RMN en solucion (10.6 %)',
r'Microscopia electronica (0.7 %)', r'Otros (0.3 %)']
sizes = [88.4, 10.6, 0.7, 0.3]
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
patches, texts = plt.pie(sizes, colors=colors, startangle=90)
plt.legend(patches, labels, loc="best")
# Set aspect ratio to be equal so that pie is drawn as a circle.
plt.axis('equal')
plt.tight_layout()
plt.show()
关于matplotlib - 如何向 matplotlib 饼图添加图例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19852215/
我是一名优秀的程序员,十分优秀!