簡體   English   中英

Matplotlib + Cartopy:如何在自定義顏色表中使用contourf

[英]Matplotlib + Cartopy: How to use contourf with custom colormap

我有一組要用於使用contourf繪制地圖的contourf

我需要針對該地圖具有特定的顏色托盤,涉及特定的數據點,並且需要為超出限制的數據設置顏色。

因此,我的levels=[0, 2, 20, 100] cmap levels=[0, 2, 20, 100]並且我正在尋找一個像下面這樣的cmap

cmap=LinearSegmentedColormap.from_list([
  (0,   color1),
  (2,   color2),
  (20,  color3),
  (100, color4),
])
cmap.set_over(color5)

問題是必須對點進行歸一化,如下所示:

cmap=LinearSegmentedColormap.from_list([
  (0 / max_value,   color1),
  (2 / max_value,   color2),
  (20 / max_value,  color3),
  (100 / max_value, color4),
])
cmap.set_over(color5)

我的問題是,我的數據是可變的,所以我不知道我的max_value是什么。 我只想“忽略”數據超過100,並用color5對其進行繪制。

我知道我可以事先處理我的數據,並使所有超過100的數據變為實際100,或者實時找到max_value ,但是這些方法對我來說似乎很糟糕。

有沒有一種方法可以使用matplotlib函數來實現?

我最終標准化了[0,1]之間的數據,如下所示:

def normalizer(lower_bound, upper_bound):
    _lower = float(lower_bound)
    _upper = float(upper_bound)

    def do_norm(x):
        return (float(x) - _lower) / (_upper - _lower)

    return do_norm

normalize = normalizer(0, 20)
normalize(10)  # 0.5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM