gpt4 book ai didi

python - 具有用户定义值级别的 pcolormesh

转载 作者:太空宇宙 更新时间:2023-11-03 17:10:09 27 4
gpt4 key购买 nike

当我使用 plt.pcolormesh(xx,cmap =xx) 时,无法设置绘图的最小值。
例如,我绘制一个二维数组数据,表示某个区域的人口密度。
http://i5.tietuku.com/89f39b85454eb277.png

如果我想显示超过某个值的人口密度(例如 4500 人/Km2),
我可以使用 plt.contourf(pop,levels = [4500,6000,xxxx,xxxxx]) 来解决这个问题。

示例:
http://i12.tietuku.com/2b5be9a6888c7c40.png

但是我想使用pcolormesh风格,我想过两种方法:

    1. 设置以“白色”开头的颜色图。
  • 设置用户定义的级别,例如轮廓图。

我找不到一些有用的指南。
熟悉这方面的人可以提供一些帮助吗?

非常感谢!

最佳答案

对我来说,两个最明显的选择是(1)将数据转换为掩码数组并使用颜色图的 set_bad() 方法设置颜色,或 (2) 使用 vmin 参数传递给 pcolormesh() 并使用颜色图的 set_under() 方法设置颜色。

这是一个使用 Numpy 数组 xx 中的一些数据的示例,这些数据的值在 0 到 57 之间。我屏蔽了小于 25 的值,并将屏蔽值的绘图颜色设置为黑色只是为了更容易看到效果。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

F, (A1,A2) = plt.subplots(ncols=2,figsize=(15,5))

# Option 1:
xxm = np.ma.masked_less(x,25)

cmap1 = cm.get_cmap("jet",lut=10)
cmap1.set_bad("k")

A1.set_title("Using masked array")
P = A1.pcolormesh(LON,LAT,xxm,cmap=cmap1)
plt.colorbar(P,ax=A1)

# Option 2:
cmap2 = cm.get_cmap("jet",lut=10)
cmap2.set_under("k")

A2.set_title("Using vmin")
P = A2.pcolormesh(LON,LAT,xx,cmap=cmap2,vmin=25)
plt.colorbar(P,ax=A2)

plt.show()

enter image description here

关于python - 具有用户定义值级别的 pcolormesh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34174190/

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