📜  Python中的 Matplotlib.colors.LogNorm 类

📅  最后修改于: 2022-05-13 01:55:47.753000             🧑  作者: Mango

Python中的 Matplotlib.colors.LogNorm 类

Matplotlib是Python中用于数组二维图的惊人可视化库。 Matplotlib 是一个基于 NumPy 数组构建的多平台数据可视化库,旨在与更广泛的 SciPy 堆栈配合使用。

matplotlib.colors.LogNorm()

matplotlib.colors.LogNorm()类属于matplotlib.colors模块。 matplotlib.colors 模块用于将颜色或数字参数转换为 RGBA 或 RGB。此模块用于将数字映射到颜色或在一维颜色数组(也称为颜色图)中进行颜色规范转换。

matplotlib.colors.LogNorm 类用于将值标准化为对数刻度上的 0-1 范围。如果未设置 vmax 或 vmin,则它们分别从处理的第一个输入的最大值和最小值初始化。这意味着__call__(A)调用 autoscale_None(A)。如果剪辑设置为 True 并且给定的值超出范围,则返回的值为 0 或 1,以最接近的为准。如果 vmin==vmax 则返回 0。它适用于还包括掩码数组的数组或标量。如果剪辑设置为 True,则将掩码值设置为,否则它们将保持掩码。剪辑的默认设置为 False。

类的方法:

  1. autoscale(self, A):用于将 vmax、vmin 分别设置为 A 的最大值和最小值。
  2. autoscale_None(self, A):仅用于自动缩放无值的 vmin 或 vmax。
  3. inverse(self, value) :它返回颜色图的反转值。

示例 1:

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import colors
from matplotlib.ticker import PercentFormatter
  
# Setting random state for 
# reproducibility
np.random.seed(19680801)
  
max_points = 100000
all_bins = 20
  
# Generate a normal distribution, 
# center at x = 0 and y = 5
a = np.random.randn(max_points)
b = .4 * a + np.random.randn(100000) + 5
  
figure, axes = plt.subplots(3, 1,
                            figsize =(5, 15),
                            sharex = True, 
                            sharey = True,
                            tight_layout = True)
  
# Incrementing the number of 
# bins on each axis
axes[0].hist2d(a, b, bins = 40)
  
# Defining normalization of 
# the colors
axes[1].hist2d(a, b, bins = 40,
               norm = colors.LogNorm())
  
# defining custom numbers of bins 
# for each axis
axes[2].hist2d(a, b, bins =(80, 10),
               norm = colors.LogNorm())
  
plt.show()


输出:

matplotlib.colors.LogNorm
matplotlib.colors.LogNormmatplotlib.colors.LogNorm

示例 2:

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LogNorm
  
  
N = 100
A, B = np.mgrid[-3:3:complex(0, N),
                -2:2:complex(0, N)]
  
X1 = np.exp(-(A)**2 - (B)**2)
X2 = np.exp(-(A * 10)**2 - (B * 10)**2)
X = X1 + 50 * X2
  
figure, (axes0, axes1) = plt.subplots(2, 1)
  
P = axes0.pcolor(A, B, X,
               norm = LogNorm(vmin = X.min(),
                              vmax = X.max()),
                 cmap ='PuBu_r')
  
figure.colorbar(P, ax = axes0)
  
P = axes1.pcolor(A, B, X,
                 cmap ='PuBu_r')
  
figure.colorbar(P, ax = axes1)
  
plt.show()

输出:
matplotlib.colors.LogNorm