gpt4 book ai didi

python - matplotlib.contourf 级别是否取决于颜色图中的颜色数量?

转载 作者:太空狗 更新时间:2023-10-30 00:10:54 29 4
gpt4 key购买 nike

我正在使用 contourf 绘制 map ,我通常会使用级别 = 50 的默认(彩虹)配色方案。

#Various imports
#LOTS OF OTHER CODE BEFORE
plot = plt.contourf(to_plot, 50)
plt.show()
#LOTS OF OTHER CODE AFTER

输出如下。我做了各种其他事情来获得海岸线等。如果有人感兴趣的话,它是使用 iris 和 cartopy 完成的。

This is the result

现在我决定不想使用彩虹方案,所以我使用了一些 Cyntia Brewer 颜色:

brewer_cmap = mpl.cm.get_cmap('brewer_Reds_09')
plot = iplt.contourf(to_plot, 50, cmap=brewer_cmap) # expect 50 levels

但是输出是: This is the result

可以看到Here这个调色板只有 9 种颜色。所以我的问题是,contourf 级别是否受颜色图中可用颜色数量的限制?我非常喜欢这张 map ,我想知道是否可以生成一张类似它但具有更多红色级别的新 map ?

我对能够捕获数据的可变性很感兴趣,因此更多的等高线水平似乎是个好主意,但我热衷于放弃彩虹方案,而只使用基于单一颜色的方案。

干杯!

最佳答案

是的,它是一个离散的颜色图,如果你想要一个连续的颜色图,你需要制作一个自定义的颜色图。

#the colormap data can be found here: https://github.com/SciTools/iris/blob/master/lib/iris/etc/palette/sequential/Reds_09.txt

In [22]:

%%file temp.txt
1.000000 0.960784 0.941176
0.996078 0.878431 0.823529
0.988235 0.733333 0.631373
0.988235 0.572549 0.447059
0.984314 0.415686 0.290196
0.937255 0.231373 0.172549
0.796078 0.094118 0.113725
0.647059 0.058824 0.082353
0.403922 0.000000 0.050980
Overwriting temp.txt
In [23]:

c_array = np.genfromtxt('temp.txt')
from matplotlib.colors import LinearSegmentedColormap
plt.register_cmap(name='Test', data={key: tuple(zip(np.linspace(0,1,c_array.shape[0]), c_array[:,i], c_array[:,i]))
for key, i in zip(['red','green','blue'], (0,1,2))})
In [24]:

plt.contourf(X, Y, Z, 50, cmap=plt.get_cmap('Test'))
plt.colorbar()
Out[24]:
<matplotlib.colorbar.Colorbar instance at 0x108948320>

enter image description here

关于python - matplotlib.contourf 级别是否取决于颜色图中的颜色数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25166804/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com