鱼C论坛

 找回密码
 立即注册
查看: 896|回复: 8

[已解决]Series.plot.pie()参数求助

[复制链接]
发表于 2023-6-8 12:20:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
In [22]:types = []
​​​​for tp in movies_df_new['genres']:
​​​​sp = tp.split('|')
​​​​for x in sp:
​​​​types.append(x)
​​​​types_df = pd.DataFrame({'genres':types})
​​​​In [23]: types_df_counts = types_df['genres'].value_counts()
​​​​In [24]: types_df_counts
​​​​Out[24]:  Drama          1876
​​​​Comedy         1455
​​​​Thriller       1105
​​​​Action          951
​​​​Romance         851
​​​​Adventure       773
​​​​Crime           704
​​​​Fantasy         504
​​​​Sci-Fi          492
​​​​Family          440
​​​​Horror          386
​​​​Mystery         378
​​​​Biography       238
​​​​Animation       196
​​​​War             150
​​​​Music           149
​​​​Sport           147
​​​​History         147
​​​​Musical          96
​​​​Western          57
​​​​Documentary      45
​​​​Film-Noir         1
​​​​Name: genres, dtype: int64​​
In [26]:b1 = types_df_counts/types_df_counts.sum()
​​​​explode = (b1>=0.06)/20+0.02
​​​​types_df_counts.plot.pie(autopct='%1.1f%%',figsize=(8,8),\
​​​​label='',explode=explode)
​​​​plt.title('Movie Type Proportional Distribution Map')
2
​​​​types_df_counts.plot.pie(autopct='%1.1f%%',figsize=(8,8),\
​​​​label='',explode=explode)
​​​​中label=‘‘指的是ylabel=‘count’,而不是labels外标签,为什么?查看series.plot.pie的帮助文档以及plt.pie的帮助文档都找不到label这个参数。
最佳答案
2023-6-8 12:23:26
看起来在你的代码中,你可能混淆了 label 和 labels 这两个参数。在  series.plot.pie()  和  plt.pie()  中,这两个参数有不同的含义。

首先,让我们谈谈  plt.pie() 。这是Matplotlib库中的一个函数,用于创建饼状图。它有一个参数 labels ,这个参数表示的是饼图每一块的标签。如果你查看  plt.pie()  的帮助文档,你会发现有一个  labels  参数,这是一个可选的参数,用来指定每个饼块的标签。

然后,我们来看  Series.plot.pie() 。这是pandas库中的一个方法,用于在Series数据类型上创建饼状图。在你的例子中,你的  label  参数被设定为  '' 。在这种情况下, label  参数实际上被用作Y轴的标签。你可以通过设置  label  参数来改变Y轴的标签。

如果你希望改变饼图每一块的标签,你可以在调用  plot.pie()  方法时传入  labels  参数。例如,如果你希望每一块的标签是电影的类型,你可以这样做:
types_df_counts.plot.pie(labels=types_df_counts.index, ...)

在这个例子中, types_df_counts.index  是一个包含所有电影类型的列表,它将被用作饼图每一块的标签。

最后,需要注意的是,在pandas的  plot.pie()  方法中,没有  label  参数。所以,你在你的代码中看到的  label  参数可能是来自于Matplotlib的  pyplot  方法的。在你的例子中,你调用了  plt.title()  来设置图的标题,这是一个  pyplot  方法。在  pyplot  中,许多函数都可以接受  label  参数,例如  plt.plot() 、 plt.scatter()  等等。这些函数中的  label  参数用于设置图例的标签。但是在饼图中,通常我们不需要图例,所以  label  参数通常不会被使用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-6-8 12:22:01 | 显示全部楼层
代码显示不出来,发在评论区了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-8 12:22:59 | 显示全部楼层
In [22]:types = []
​​​​for tp in movies_df_new['genres']:
​​​​sp = tp.split('|')
​​​​for x in sp:
​​​​types.append(x)
​​​​types_df = pd.DataFrame({'genres':types})
​​​​In [23]: types_df_counts = types_df['genres'].value_counts()
​​​​In [24]: types_df_counts
​​​​Out[24]:  Drama          1876
​​​​Comedy         1455
​​​​Thriller       1105
​​​​Action          951
​​​​Romance         851
​​​​Adventure       773
​​​​Crime           704
​​​​Fantasy         504
​​​​Sci-Fi          492
​​​​Family          440
​​​​Horror          386
​​​​Mystery         378
​​​​Biography       238
​​​​Animation       196
​​​​War             150
​​​​Music           149
​​​​Sport           147
​​​​History         147
​​​​Musical          96
​​​​Western          57
​​​​Documentary      45
​​​​Film-Noir         1
​​​​Name: genres, dtype: int64​​
In [26]:b1 = types_df_counts/types_df_counts.sum()
​​​​explode = (b1>=0.06)/20+0.02
​​​​types_df_counts.plot.pie(autopct='%1.1f%%',figsize=(8,8),\
​​​​label='',explode=explode)
​​​​plt.title('Movie Type Proportional Distribution Map')
​​​​Out[26]​​
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-8 12:23:26 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +10 鱼币

看起来在你的代码中,你可能混淆了 label 和 labels 这两个参数。在  series.plot.pie()  和  plt.pie()  中,这两个参数有不同的含义。

首先,让我们谈谈  plt.pie() 。这是Matplotlib库中的一个函数,用于创建饼状图。它有一个参数 labels ,这个参数表示的是饼图每一块的标签。如果你查看  plt.pie()  的帮助文档,你会发现有一个  labels  参数,这是一个可选的参数,用来指定每个饼块的标签。

然后,我们来看  Series.plot.pie() 。这是pandas库中的一个方法,用于在Series数据类型上创建饼状图。在你的例子中,你的  label  参数被设定为  '' 。在这种情况下, label  参数实际上被用作Y轴的标签。你可以通过设置  label  参数来改变Y轴的标签。

如果你希望改变饼图每一块的标签,你可以在调用  plot.pie()  方法时传入  labels  参数。例如,如果你希望每一块的标签是电影的类型,你可以这样做:
types_df_counts.plot.pie(labels=types_df_counts.index, ...)

在这个例子中, types_df_counts.index  是一个包含所有电影类型的列表,它将被用作饼图每一块的标签。

最后,需要注意的是,在pandas的  plot.pie()  方法中,没有  label  参数。所以,你在你的代码中看到的  label  参数可能是来自于Matplotlib的  pyplot  方法的。在你的例子中,你调用了  plt.title()  来设置图的标题,这是一个  pyplot  方法。在  pyplot  中,许多函数都可以接受  label  参数,例如  plt.plot() 、 plt.scatter()  等等。这些函数中的  label  参数用于设置图例的标签。但是在饼图中,通常我们不需要图例,所以  label  参数通常不会被使用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-8 12:23:54 | 显示全部楼层
好吧,其实还能看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-8 14:17:50 | 显示全部楼层

回帖奖励 +10 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-8 14:18:06 | 显示全部楼层

回帖奖励 +10 鱼币

为什么这么多奇怪的符号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-8 14:18:44 | 显示全部楼层

回帖奖励 +10 鱼币

看不懂啊,这是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 14:55:00 | 显示全部楼层
myd0313 发表于 2023-6-8 14:18
看不懂啊,这是什么

我懂你意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 11:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表