python fig.colorbar_python3 matplotlib自定义colorbar颜色条

本文介绍了如何在Python中自定义colorbar,无需依赖任何mappable或plot。使用mpl.colorbar.ColorbarBase类,可以自由设定colorbar的位置、颜色、边界、方向等参数。示例代码展示了如何创建和调整colorbar的各个属性,包括使用不同颜色映射、设置延伸方向、自定义刻度等。
摘要由CSDN通过智能技术生成

自定义colorbar(draw colorbar without any mapple/plot)

参考:Customized Colorbars Tutorial

api example code: colorbar_only.py

自定义colorbar可以画出任何自己想要的colorbar,自由自在、不受约束,不依赖于任何已有的图(plot/mappable)。这里使用的是mpl.colorbar.ColorbarBase类,而colorbar类必须依赖于已有的图。

关于该类的参数如下 (该类参数描述没找到,部分参数的取值可参考colorbar中的描述):class matplotlib.colorbar.ColorbarBase(ax, cmap=None, norm=None, alpha=None, values=None, boundaries=None, orientation='vertical’, ticklocation='auto’, extend='neither’, spacing='uniform’, ticks=None, format=None, drawedges=False, filled=True, extendfrac=None, extendrect=False, label=’’)[source]

参数简单描述ax :可用于设置colorbar的位置、长、宽

norm :用于规范化–设置颜色条最大最小值

cmap:颜色(可参考本篇博文的最后部分——推荐色带与自定义色带)

boundaries:要想使用extend,在norm之外,必须要有两个额外的boundaries

orientation&#x

如果在使用 `fig.colorbar()` 函数时没有可映射对象,可以先创建一个虚拟的可映射对象来生成 colorbar。通常可以使用 `ScalarMappable` 类来创建虚拟的可映射对象。具体方法如下: 1. 创建一个 `ScalarMappable` 对象,例如: ``` python import matplotlib.cm as cm import matplotlib.colors as mcolors import matplotlib.pyplot as plt sm = cm.ScalarMappable(cmap=cm.viridis, norm=mcolors.Normalize(vmin=0, vmax=1)) ``` 这里的 `cmap` 参数指定了颜色映射表,`norm` 参数指定了数据的范围。 2. 调用 `ScalarMappable` 对象的 `set_array()` 方法来设置数据,例如: ``` python sm.set_array([0, 1]) ``` 这里将 `[0, 1]` 赋值给 `ScalarMappable` 对象的数据。 3. 在 `fig.colorbar()` 函数中使用 `ScalarMappable` 对象作为 `mappable` 参数,例如: ``` python fig, ax = plt.subplots() cb = fig.colorbar(sm) ``` 这里使用 `ScalarMappable` 对象 `sm` 作为 `mappable` 参数来生成 colorbar。 完整的代码如下: ``` python import matplotlib.cm as cm import matplotlib.colors as mcolors import matplotlib.pyplot as plt # 创建 ScalarMappable 对象 sm = cm.ScalarMappable(cmap=cm.viridis, norm=mcolors.Normalize(vmin=0, vmax=1)) # 设置数据 sm.set_array([0, 1]) # 创建图像对象 fig, ax = plt.subplots() im = ax.imshow([[0, 1], [1, 0]], cmap='viridis') # 生成 colorbar cb = fig.colorbar(sm) ``` 这里使用虚拟的可映射对象 `sm` 生成 colorbar,图像对象 `im` 不会影响 colorbar 的生成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值