【问题标题】:Python Pandas.plot.pie is not showing legend properlyPython Pandas.plot.pie 没有正确显示图例
【发布时间】:2023-02-21 11:42:53
【问题描述】:

我有这段代码来绘制饼图。将值(在本例中为半径)显示为饼图的一部分的最佳方式是什么。

我知道如何显示图例。我想显示数值和图例。

'''

// This code is pandas.plot.pie documentation
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),
                      ylabel='', 
                      autopct='%.f%%')

'''

【问题讨论】:

    标签: python pandas plot


    【解决方案1】:

    要将半径值显示为饼图的一部分,您可以将“textprops”参数添加到“plot.pie”函数以自定义饼图的文本属性。

    下面是一个示例,说明如何修改代码以将半径值作为文本标签包含在饼图中:

    import matplotlib.pyplot as plt
    
    df = pd.DataFrame({'mass': [0.330, 4.87 , 5.97],
                   'radius': [2439.7, 6051.8, 6378.1]},
                   index=['Mercury', 'Venus', 'Earth'])
    
    fig, ax = plt.subplots(figsize=(5, 5))
    
    plot = df.plot.pie(y='mass', ax=ax, autopct='%.f%%',
                   textprops={'color':"w", 'weight':'bold', 'fontsize':12})
    
    for i, v in enumerate(df['radius']):
    ax.text(0, 0, str(v), ha='center', va='center', fontsize=14, color='black')
    
    plt.legend(title='Planet')
    plt.show()
    

    在此示例中,我们首先使用“matplotlib.pyplot”模块中的“subplots”函数创建一个图形和一个轴对象。然后我们使用“ax”参数将轴对象传递给“plot.pie”函数。

    “textprops”参数用于设置饼图中文本标签的颜色、字体粗细和字体大小。

    然后,我们遍历 DataFrame 中的“radius”值,并使用“ax.text”函数将每个值作为文本标签添加到饼图的中心。

    最后,我们使用“matplotlib.pyplot”模块中的“legend”函数向饼图添加图例。

    希望这可以帮助, 干杯

    【讨论】:

      猜你喜欢
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 2023-01-18
      • 2018-09-17
      • 1970-01-01
      • 2017-02-25
      相关资源
      最近更新 更多