我是 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()
添加回答
举报
0/150
提交
取消