Matplotlib和Seaborn(饼图,直方图)

饼图

饼图是一种常见的单变量图表,用于描绘分类变量各类别的相对频率。饼图中的扇区代表频率大小;角度或面积越大,该类别就出现地越频繁。 在这里插入图片描述 遗憾的是,饼图是一种应用场合很有限的图表类型,图表创建者很容易将饼图绘制得难以看懂。如果你要使用饼图,请尝试遵守下面的规则:

  • 确保你关心的是相对频率。每个扇区应该表示整体的一部分,而不是单独的数值(除非变量能够求和成某个整体)。
  • 将扇区限制在一定数量内。饼图最好只包含两到三个扇区,如果扇区足以明确区分,也可以包含四到五个。如果你有很多个类别,并且某些类别所占的比例很小,那可以将它们组合到一起,或者将这些比例很小的类别放到 “其他” 类别中。
  • 系统地绘制数据。绘制饼图的一种常见方法是从圆圈的顶部开始,然后沿着顺时针方向绘制每个分类级别,从最常见的到最不常见的排列。如果有三个类别,并且想要对比其中两个,一种常见绘制方法是将这两个类别放在 12 点钟方向的两侧,第三个类别填充在底部剩余部分。

如果无法满足这些规则,则建议使用条形图。通常选择条形图更保险。长条高度比面积或角度更精确,并且条形图比饼图更紧凑。对于值很多的变量来说,条形图更灵活。

你可以使用 matplotlib 的 pie 函数创建饼图。此函数需要数据为汇总的形式:函数的主要参数是扇区大小 。

# code for the pie chart seen above
sorted_counts = df['cat_var'].value_counts()
plt.pie(sorted_counts, labels = sorted_counts.index, startangle = 90,
        counterclock = False);
plt.axis('square')

为了遵守上面提到的规则,我们可以添加 “startangle = 90” 和 "counterclock = False"这两个参数,在垂直上方开始第一个扇区,然后按照顺时针方向有序地绘制每个扇区。axis 函数的使用和 "square" 参数的设定, 将使 x 和 y 轴的长度相等。不调用此函数的话,最终的图形可能看起来更像椭圆而不是正圆。

饼图的一种变体形式是环形图。它看起来很像饼图,但是图形中间有个洞。从视觉感知上来看,环形图和饼图没有什么太大的区别,所以应该按照饼图的相同规则使用环形图。

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值