鱼C论坛

 找回密码
 立即注册
查看: 2641|回复: 12

matplotlib画饼图文字重叠怎么办

[复制链接]
发表于 2022-8-11 10:29:43 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Py与C。。。 于 2022-8-11 10:43 编辑
  1. plt.rcParams['font.sans-serif']='SimHei'#设置中文显示
  2.     plt.rcParams['axes.unicode_minus'] = False
  3.     plt.figure(figsize=(6,6))#将画布设定为正方形,则绘制的饼图是正圆
  4.     plt.axis('equal') #格式化
  5.     #
  6.     plt.pie(totals,labels=label,autopct='%1.1f%%')#绘制饼图
  7.     plt.title('歌词占比饼图')#绘制标题
  8.     plt.show()
复制代码

但是结果却很不理想,许多小数据都叠在了一起
Figure_1.png
后来我尝试使用explode参数改变小数据到圆心的距离,值是1就向圆心外移动0.4,2就移动0.2,并且写了一个循环尝试构建列表:


  1.     ctr =()
  2.     p = 0.4
  3.     q = 0.2
  4.     for total in totals:
  5.         if total == 1:
  6.             ctr.append(p)
  7.         if total == 2:
  8.             ctr.append(q)
  9.         else:
  10.             ctr.append(0)
复制代码

但是结果报错:ValueError: 'explode' must be of length 'x'

现在我正尝试使用箭头,直线把数据画在外侧,这能做到吗?或者说有更好的方法吗?
求助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-8-11 10:36:30 | 显示全部楼层
别沉啊啊啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 10:46:28 | 显示全部楼层
emmm..没人吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 11:42:41 | 显示全部楼层

回帖奖励 +1 鱼币

看看这个 传送
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 11:47:08 | 显示全部楼层

Figure_1.png
还是不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 11:51:54 | 显示全部楼层
感觉无解....
这么多数据所占百分比又很小,肯定会出问题....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 11:56:58 | 显示全部楼层
青出于蓝 发表于 2022-8-11 11:51
感觉无解....
这么多数据所占百分比又很小,肯定会出问题....

能不能用箭头在空白处表示?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 11:58:33 | 显示全部楼层
青出于蓝 发表于 2022-8-11 11:51
感觉无解....
这么多数据所占百分比又很小,肯定会出问题....

或者调整小的部分离圆心的距离,即拖拽出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 12:11:45 | 显示全部楼层
这么多小数据和大数据都要一起展示,没重点呀。。

要解决也行,只能加条引线出来做 专门的标记annotations  

可以把数据发过来,我试一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 12:32:10 | 显示全部楼层
本帖最后由 tommyyu 于 2022-8-11 13:08 编辑
Py与C。。。 发表于 2022-8-11 11:58
或者调整小的部分离圆心的距离,即拖拽出来


我感觉可以把小于0.5%都合并成其他,这么小谁会看啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 22:13:33 From FishC Mobile | 显示全部楼层
阿奇_o 发表于 2022-8-11 12:11
这么多小数据和大数据都要一起展示,没重点呀。。

要解决也行,只能加条引线出来做 专门的标记annotatio ...

我现在用手机电脑也不在身边
不过大概是这样的
# labels和totals 是字典的键和值
# 这个字典是:artists = {"周杰伦":22,"方文山":53,"黄俊郎":8}
就是artist这种格式,分成键和值两个列表,然后作为labels和totals作为pie的参数
你可以测试一下,发一下通用方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 22:14:52 From FishC Mobile | 显示全部楼层
阿奇_o 发表于 2022-8-11 12:11
这么多小数据和大数据都要一起展示,没重点呀。。

要解决也行,只能加条引线出来做 专门的标记annotatio ...

另外不局限于这个字典三个值,尽量用函数传参生城之类的,不要暴力一个一个写(喜)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-13 12:34:25 | 显示全部楼层
阿奇_o 发表于 2022-8-11 12:11
这么多小数据和大数据都要一起展示,没重点呀。。

要解决也行,只能加条引线出来做 专门的标记annotatio ...

数据是:
  1. {'黄俊郎/谢迪': 1, '方文山': 167, '周杰伦/宋健彰': 1, '黄俊郎': 26, '周杰伦': 71, '徐若瑄': 10, '黄俊郎/方文山': 1, '罗宇轩/黄婕熙': 2, '派伟俊': 1, '宋健彰': 7, '周杰伦/许世昌/徐若瑄': 1, '宋健彰/黄俊郎': 2, '黄俊郎/周杰伦/方文山
  2. ': 1, '黄俊郎/周杰伦': 1, '冼佩瑾/方文山': 1, '黄淩嘉': 1, '林义杰': 1, '罗宇轩/李汪哲': 1, '唐从圣': 1, '邱凯伟/': 1, '周杰伦/蔡振南': 1, '古小力/黄淩嘉': 2, '弹头': 1, '林夕': 1, '曾郁婷': 2, '刘畊宏': 4, '张震岳': 1, '许世昌':
  3. 2, '陶喆': 1, '毛华锋': 1}
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 20:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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