为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中自定义颜色条(截断并添加更多颜色)

在 Python 中自定义颜色条(截断并添加更多颜色)

哔哔one 2023-04-18 16:13:34
我是 Python 的新手。你能帮我对颜色条进行适当的定制吗?我已经尝试过来自网络的几种变体,但它们无法以正确的方式工作。我有以下带有颜色条的图表:这是代码:set_cmap('rainbow')contourf(0.5*(data1+data2))xlabel (r'across track $\rm\,[pixels]$')ylabel (r'along track $\rm\,[pixels]$')cbar = plt.colorbar()cbar.set_label('radiance', rotation=270)title('1.6 mue (avg: 5992-6012 cm^(-1))')# Show the major grid lines plt.grid(b=True, which='major', color='#666666', linestyle='-')# Show the minor grid lines plt.minorticks_on()plt.grid(b=True, which='minor', color='#666666', linestyle='-', alpha=0.4)`fig=plt.figure()我需要将颜色条截断为 0 到 9 之间的值,即 0、1、2、3、4、5、6、7、8、9,并为每个值创建一个新颜色。像 cbar = plt.clim(0, 9) 这样的 PS 命令不起作用。提前致谢!
查看完整描述

1 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

使用levels=您可以判断contourf您想要新级别的值。在这种情况下,案例选择levels=0,1,2,...,9似乎可以实现您想要的。


请注意,颜色是在对 的调用中决定的contourf。该函数colorbar只是试图可视化使用的颜色。


下面的代码首先创建一些介于 0 和 20 之间的随机数据,异常值值为 50。默认调用contourfis compared to one werelevels是明确设置的。


import matplotlib.pyplot as plt

from matplotlib.patches import Ellipse

import numpy as np


N, M = 100, 300

x = np.random.uniform(-0.1, 0.1, (N, M)).cumsum(axis=1).cumsum(axis=0)

x -=  x.min()

x *= 20 / x.max()

x[-1,-1] = 50

fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(12,4))

cont1 = ax1.contourf(x, cmap='rainbow')

plt.colorbar(cont1, ax=ax1)

cont2 = ax2.contourf(x, levels=np.arange(10), cmap='rainbow')

plt.colorbar(cont2, ax=ax2)

plt.show()

//img1.sycdn.imooc.com//643e51690001fb3606540226.jpg

查看完整回答
反对 回复 2023-04-18
  • 1 回答
  • 0 关注
  • 291 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信