首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何压制在饼图上绘制的一些自动to值

如何压制在饼图上绘制的一些自动to值
EN

Stack Overflow用户
提问于 2021-11-08 11:45:32
回答 2查看 422关注 0票数 1

我可以创建一个小块,每个楔形都印着这样的尺寸:

代码语言:javascript
复制
df = pd.DataFrame({'mass': [0.330, 4.87 , 5.97],
                   'radius': [2439.7, 6051.8, 6378.1]},
                  index=['Mercury', 'Venus', 'Earth'])
plot = df.plot.pie(y='mass', figsize=(5, 5), autopct= '%.2f')

如何使它只打印一个子集的值(例如,不要打印水星)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-08 12:10:25

F 213

代码语言:javascript
复制
df = pd.DataFrame({'mass': [0.330, 4.87 , 5.97],
                   'radius': [2439.7, 6051.8, 6378.1]},
                  index=['Mercury', 'Venus', 'Earth'])

autopct = lambda v: f'{v:.2f}%' if v > 10 else None

plot = df.plot.pie(y='mass', figsize=(5, 5), autopct=autopct)

票数 2
EN

Stack Overflow用户

发布于 2021-11-08 12:02:10

一种选择是在创建绘图之后删除文本(或将其设置为不可见)。现在的主要问题是找出要修改的正确文本。例如:

代码语言:javascript
复制
import pandas as pd

df = pd.DataFrame({'mass': [0.330, 4.87 , 5.97],
                   'radius': [2439.7, 6051.8, 6378.1]},
                  index=['Mercury', 'Venus', 'Earth'])
plot = df.plot.pie(y='mass', figsize=(5, 5), autopct= '%.2f')

print(plot.texts)

会屈服

代码语言:javascript
复制
[Text(1.09526552098778, 0.10194821496900702, 'Mercury'),
 Text(0.5974175569024254, 0.05560811725582201, '2.95'),
 Text(0.01701519685165565, 1.0998683935253797, 'Venus'),
 Text(0.009281016464539445, 0.5999282146502071, '43.60'),
 Text(-0.11887821664562105, -1.0935574834489301, 'Earth'),
 Text(-0.0648426636248842, -0.5964859000630527, '53.45')]

因此,您可以看到,这是我们希望关闭的第二个Text项。一个简单的方法是:

代码语言:javascript
复制
plot.texts[1].set_visible(False)

或者另一种

代码语言:javascript
复制
plot.texts[1].remove()

显然,概括这一点的问题是知道提前删除哪些文本。正如您在上面看到的,将文本添加到轴上的顺序是索引名称(行星名称),然后是该行星的自动in标签,然后对下一个行星重复。因此,如果你知道你想删除i行星的自动标记,你可以使用类似于plot.texts[2 * i + 1].remove()的东西。

对给定的行星标签执行此操作的助手函数如下所示:

代码语言:javascript
复制
def remove_text(label):
    ind = df.index.get_loc(label) * 2 + 1
    plot.texts[ind].remove()

remove_text('Mercury')

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69882957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档