matplotlib中的colormap使用

本文探讨了matplotlib库中的colormap对象,详细分析了其类型和调用方式。通过实例展示了如何通过数组传递给colormap获取映射矩阵,以及直接将cmap对象应用于函数内部实现颜色分配。总结了两种调用方式,强调了方式二的便利性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

colormap的对象分析

matplotlib中自带cm库,存储了一些colormap,可供开发人员调用。colormap对象的类型为

matplotlib.colors.ListedColormap object

属于matplotlib中自定义的一个对象类型

对象调用

matplotlib中的这一对象调用需要如下步骤

import matplotlib.pyplot as plt
#首先选择matplot中有的colormap,可以选择的colormap库会在文章末尾做个转述
cmap = plt.cm.get_cmap('inferno')   #获取cmap对象

接下来分为两种调用方式

  • 方式一,传入可迭代的对象,如数组,其中含有数个rgba数组,如下

    
    
    colors = cmap([0,128,256])  #获得一个3*4的矩阵,每一行都是一个rgba数组
    
    #这一写法与如下以1为限的小数写法相同
    colors = cmap([0,0.5,1])
    #--------------------------------
    #array([[1.        , 0.96862745, 0.9254902 , 1.        ],
    #       [0.9874356 , 0.55048058, 0.34797386, 1.        ],
    #       [0.49803922, 0.        , 0.        , 1.        ]])
    #--------------------------------
    
    sizes = [10,30,60]
    plt.pie(sizes, colors=colors, shadow=True)
    plt.show()
    #得到三色饼图
    

    colormap的颜色值本身是个指定范围的色域,因而通过向cmap中传入一个1n的矩阵,可以返回一个n4的映射矩阵,如下所示,三色饼图的三个颜色明显是颜色棒0%,50%,100%处的颜色
    3个色块的饼图
    在这里插入图片描述

  • 方式二,直接cmap对象传递给函数内部的cmap属性,函数在内部进行颜色值的分配

    #如上述颜色棒
    gradient = np.vstack((np.linspace(0, 1, 256), np.linspace(0, 1, 256)))
    #gradient.shape为(2,256)
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.imshow(gradient, aspect='auto', cmap=cmap)
    ax.set_axis_off()
    
    #--------------或者---------------------
    gradient = np.vstack((np.linspace(9, 18, 3), np.linspace(0, 9, 3), np.linspace(18, 33, 3)))
    #gradient.shape为(3,3)
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.imshow(gradient, aspect='auto', cmap=cmap)
    ax.set_axis_off()
    
    

    得到块状的分布图,块状数量分布与gradient.shpae的值3*3符合
    在这里插入图片描述

总结

虽然上文提到了两种方式,但方式2基本上是方式1的延伸,且直接内嵌在函数中,而无需进行手动切分,方便了不少

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值