當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Matplotlib.colors.TwoSlopeNorm用法及代碼示例


Matplotlib是Python中令人驚歎的可視化庫,用於數組的二維圖。 Matplotlib是一個基於NumPy數組的多平台數據可視化庫,旨在與更廣泛的SciPy堆棧配合使用。

Matplotlib.colors.TwoSlopeNorm

matplotlib.colors.TwoSlopeNorm類用於以設置的中心標準化數據。在概念中心周圍以不相等的變化率映射數據時,它非常方便。例如,-3到6之間的範圍的中心為0。

用法: class matplotlib.colors.TwoSlopeNorm(vcenter, vmin=None, vmax=None)

參數:

  1. vcenter:它具有一個浮點值,該值定義了標準化的0.5。
  2. vmin:這是一個可選參數,用於在規範化中定義數據值0.0。默認為數據集的最小值。
  3. vmax:這是一個可選參數,用於在規範化中定義數據值1.0。默認為數據集的最大值。

類的方法:



  • autoscale_none(self, A):此方法用於通過獲取vmax和vmin來裁剪vcenter。

範例1:

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.cbook as cbook 
import matplotlib.colors as colors 
  
file = cbook.get_sample_data('topobathy.npz',  
                             asfileobj = False) 
  
with np.load(file) as example:
    topo = example['topo'] 
    longi = example['longitude'] 
    latit = example['latitude'] 
  
figure, axes = plt.subplots(constrained_layout = True) 
  
# creating a colormap that has land 
# and ocean clearly delineated and  
# of the same length (256 + 256) 
undersea = plt.cm.terrain(np.linspace(0, 0.17, 256)) 
land = plt.cm.terrain(np.linspace(0.25, 1, 256)) 
every_colors = np.vstack((undersea, land)) 
terrain_map = colors.LinearSegmentedColormap.from_list('terrain_map', 
    every_colors) 
  
# the center is offset so that  
# the land has more dynamic range  
# while making the norm 
diversity_norm = colors.TwoSlopeNorm(vmin =-500, 
                                     vcenter = 0,  
                                     vmax = 4000) 
  
pcm = axes.pcolormesh(longi, latit, topo, 
                      rasterized = True, 
                      norm = diversity_norm, 
                        
                      cmap = terrain_map, ) 
axes.set_xlabel('Longitude $[^o E]$') 
axes.set_ylabel('Latitude $[^o N]$') 
axes.set_aspect(1 / np.cos(np.deg2rad(49))) 
  
figure.colorbar(pcm, shrink = 0.6, extend ='both', 
                label ='Elevation [m]') 
plt.show()

輸出:

範例2:

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.colors as mcolors 
  
data = np.random.normal(.4, 2, (10, 10)) 
  
two_slope_norm = mcolors.TwoSlopeNorm(vmin = data.min(),  
                                      vmax = data.max(),  
                                      vcenter = 0) 
  
plt.imshow(data, cmap = plt.cm.RdBu,  
           norm = two_slope_norm) 
  
plt.colorbar() 
plt.show()

輸出:




相關用法


注:本文由純淨天空篩選整理自RajuKumar19大神的英文原創作品 Matplotlib.colors.TwoSlopeNorm class in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。