matplotlib plt.bar设置 热力颜色 颜色渐变条 颜色随数值大小变化 多维图 三维

我有三列数据:昵称、金主数量、平均人气
我希望昵称为x轴,金主数量为y轴,平均人气则反映在条形的颜色上,人气值越高,颜色越浅,反之,人气值越低。

def draw_bar(key_name, key_values, colorBar_data, colorBar_label='平均人气'): 
    '''
    绘制带渐变颜色的柱状图,附带渐变条
    parameters:
        key_names:柱状图的横轴名称(维度一)
        key_values:柱状图的纵轴数值(维度二)
        colorBar_data:想要通过colorBar_data映射到颜色的深浅来反映条形图的另一个维度(维度三)
        colorBar_label:第三个维度的名称
    return:
        返回一张图
    '''
    norm = plt.Normalize(colorBar_data.min(), colorBar_data.max())
    norm_values = norm(colorBar_data)
    map_vir = cm.get_cmap(name='plasma')    # name设置渐变颜色色带
    color = map_vir(norm_values)

    plt.figure(figsize=(10,4))  # 设置图片大小
    
    #设置图片的右边框和上边框为不显示
    ax=plt.gca()  # gca:get current axis得到当前轴
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    
    plt.bar(key_name, key_values, color=color)
    plt.xticks(rotation=90)
    plt.xlim(-1)
    # 添加渐变条
    sm = cm.ScalarMappable(cmap=map_vir,norm=norm)  # norm设置最大最小值
    plt.colorbar(sm, label=colorBar_label)
bar_data = pht.set_index('昵称')[['金主数量','平均人气']].sort_values('金主数量', ascending=False).head(30)
draw_bar(bar_data.index, bar_data.金主数量.values, colorBar_data=bar_data.平均人气.values)
plt.ylabel('金主数量')

在这里插入图片描述

bar_data.head()

在这里插入图片描述
参考文章:
https://blog.csdn.net/xiaoyw71/article/details/108845807 Python Matplotlib绘制渐变色柱状图(bar)并加边框和配置渐变颜色条(colorbar)
https://www.brothereye.cn/python/427/ plt绘图颜色渐变以及colormap

https://blog.csdn.net/Caiqiudan/article/details/112797274 python matplotlib searbon 设置画版颜色 热力图固定颜色等级 固定比例尺寸大小

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值