局部整体(八)利用python绘制华夫饼图

局部整体(八)利用python绘制华夫饼图

华夫饼图( Waffle chart)简介

1

华夫饼图是饼图的一种变体,一般由100个格子组成,一个格子代表1%。用不同颜色的格子区分不同的分类数据,以展示各部分在整体中的占比。尤其擅长展示部分在整体中的占比关系。

快速绘制

  1. 基于pywaffle

    import matplotlib.pyplot as plt
    from pywaffle import Waffle
    
    # 自定义数据
    data = {
         'Kevin': 10, 'Joseph': 7, 'Yan': 8}
    
    # 基础华夫饼图
    plt.figure(
        FigureClass=Waffle,
        rows=15,
        columns=20,
        values=data,
        legend={
         'loc': 'upper left', 'bbox_to_anchor': (1.05, 1)},
    )
    plt.show()
    

    2

    定制多样化的华夫饼图

    自定义华夫饼图一般是结合使用场景对相关参数进行修改,并辅以其他的绘图知识。参数信息可以通过官网进行查看,其他的绘图知识则更多来源于实战经验,大家不妨将接下来的绘图作为一种学习经验,以便于日后总结。

    更多用法可参考Basic Examples and Formats of Values

    1. 修改参数

      PyWaffle支持通过Font Awesome使用图标进行绘图,要搜索Font Awesome中可用的图标名称可访问 https://fontawesome.com/search

      import pandas as pd
      import matplotlib.pyplot as plt
      from pywaffle import Waffle
      import numpy as np
       
      # 自定义数据
      data = {
             'Category 1': 15,
              'Category 2': 30,
              'Category 3': 10,
              'Category 4': 25,
              'Category 5': 20}
      # 计算方块数量
      total_icons = sum(data.values())
      
      # 自定义颜色图标
      fig = plt.figure(
          FigureClass=Waffle,
          rows=10,
          values=data,
          icons='star',  # 修改icon
          colors=["#FF5733", "#FFC300", "#900C3F", "#FF5733", "#C70039"], # 自定义颜色
          legend={
             'loc': 'upper left', 'bbox_to_anchor': (1, 1)},
          icon_legend=True,
          figsize=(8, 4),  
          font_size = 18  
      )
      
      
      plt.show()
      

      3

    2. 自定义图例

      # 自定义数据
      data = {
             'Cat': 30, 'Dog': 16, 'Goat': 40}
      
      # 计算比例 
      repartition = [f"{
               k} ({
               int(v / sum(data.values()) * 100)}%)" for k, v in data.items()]
      
      # 自定义图例
      fig = plt.figure(
          FigureClass=Waffle,
          rows=10,
          columns=15,
          values=data,
          title={
             
              'label': 'A graph with the distribution in the legend',
              'loc': 'left',
              'fontdict': {
             
                  'fontsize': 12
              }
          },
          labels=repartition,
          legend={
             
              'loc': 'lower left',
              'bbox_to_anchor': (0, -0.15),
              'ncol':
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值