比较(六)利用python绘制径向柱图

比较(六)利用python绘制径向柱图

径向柱图(Circular Barplot)简介

1

径向柱图基于同心圆网格来绘制条形图,虽然不如普通条形图表达准确,但却有抓人眼球的效果。其衍生的南丁格尔玫瑰图则广为人知。

快速绘制

  1. 基于matplotlib

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib.cm as cm
    
    np.random.seed(0)  # 设置随机种子为0
    
    # 自定义数据
    df = pd.DataFrame(
            {
         
                'Name': ['item ' + str(i) for i in list(range(1, 51)) ],
                'Value': np.random.randint(low=10, high=100, size=50)
            })
    
    # 初始化布局-极坐标图
    plt.figure(figsize=(10,8))
    ax = plt.subplot(111, polar=True)
    
    # 移除网格
    plt.axis('off')
    
    # 坐标限制
    upperLimit = 100
    lowerLimit = 30
    
    # 计算极值
    max_value = df['Value'].max()
    
    # 数据缩放
    slope = (max_value - lowerLimit) / max_value
    heights = slope * df.Value + lowerLimit
    
    # 计算每个条形的宽度
    width = 2*np.pi / len(df.index)
    
    # 计算角度
    indexes = list(range(1, len(df.index)+1))
    angles = [element * width for element in indexes]
    angles
    
    # 增加条形图
    bars = ax.bar(
        x=angles, 
        height=heights, 
        width=width, 
        bottom=lowerLimit,
        linewidth=2, 
        edgecolor="white",
        color="#61a4b2",)
    

    2

定制多样化的径向柱图

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

  1. 添加标签

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib.cm as cm
    
    np.random.seed(0)  # 设置随机种子为0
    
    # 自定义数据
    df = pd.DataFrame(
            {
         
                'Name': ['item ' + str(i) for i in list(range(1, 51)) ],
                'Value': np.random.randint(low=10, high=100, size=50)
            })
    
    # 初始化布局-极坐标图
    plt.figure(figsize=(10,8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值