matplotlib.colors.LightSource#
- class matplotlib.colors.LightSource(azdeg=315, altdeg=45, hsv_min_val=0, hsv_max_val=1, hsv_min_sat=1, hsv_max_sat=0)[source]#
基类:
object
创建一个来自指定方位角和仰角的光源。角度以度为单位,方位角从正北方向顺时针测量,仰角从曲面的零平面向上测量。
shade
用于为数据数组生成“阴影”RGB 值。shade_rgb
可用于将 RGB 图像与高程图结合。hillshade
生成曲面的照明图。以度为单位指定光源的方位角(从正南方向顺时针测量)和高度(从曲面平面向上测量)。
- 参数:
- azdeg浮点数,默认值:315 度(来自西北方向)
光源的方位角(0-360,从正北方向顺时针度数)。
- altdeg浮点数,默认值:45 度
光源的高度(0-90,从水平方向向上度数)。
- hsv_min_val数字,默认值:0
强度图可以将输出图像移至的最小值(“hsv”中的“v”)。
- hsv_max_val数字,默认值:1
强度图可以将输出图像移至的最大值(“hsv”中的“v”)。
- hsv_min_sat数字,默认值:1
强度图可以将输出图像移至的最小饱和度值。
- hsv_max_sat数字,默认值:0
强度图可以将输出图像移至的最大饱和度值。
备注
为了向后兼容,参数 hsv_min_val、hsv_max_val、hsv_min_sat 和 hsv_max_sat 也可以在初始化时提供。但是,这些参数只有在“blend_mode='hsv'”传递给
shade
或shade_rgb
时才会使用。有关更多详细信息,请参阅blend_hsv
的文档。- blend_hsv(rgb, intensity, hsv_max_sat=None, hsv_max_val=None, hsv_min_val=None, hsv_min_sat=None)[source]#
获取输入数据数组,将其转换为给定颜色映射中的 HSV 值,然后调整这些颜色值以创建具有指定光源的阴影浮雕图。返回 RGBA 值,可用于使用 imshow 绘制阴影图像。
通过将阴影区域中的 (s, v) 值(在 HSV 颜色空间中)移向 (hsv_min_sat, hsv_min_val) 来使生成图像的颜色变暗,或通过将 (s, v) 值移向受光区域中的 (hsv_max_sat, hsv_max_val) 来使其变亮。默认的极值选择使得完全阴影的点接近黑色(s = 1, v = 0),而完全受光的点接近白色(s = 0, v = 1)。
- 参数:
- rgb
ndarray
一个 (M, N, 3) RGB 浮点数数组,范围从 0 到 1(彩色图像)。
- intensity
ndarray
一个 (M, N, 1) 浮点数数组,范围从 0 到 1(灰度图像)。
- hsv_max_sat数字,可选
强度图可以将输出图像移至的最大饱和度值。如果未提供,则使用初始化时提供的值。
- hsv_min_sat数字,可选
强度图可以将输出图像移至的最小饱和度值。如果未提供,则使用初始化时提供的值。
- hsv_max_val数字,可选
强度图可以将输出图像移至的最大值(“hsv”中的“v”)。如果未提供,则使用初始化时提供的值。
- hsv_min_val数字,可选
强度图可以将输出图像移至的最小值(“hsv”中的“v”)。如果未提供,则使用初始化时提供的值。
- rgb
- 返回:
ndarray
表示组合图像的 (M, N, 3) RGB 数组。
- property direction#
指向光源的单位向量方向。
- hillshade(elevation, vert_exag=1, dx=1, dy=1, fraction=1.0)[source]#
使用为光源定义的方位角和仰角计算曲面的照明强度。
这将计算曲面的法线向量,然后将其传递给
shade_normals
。- 参数:
- elevation二维类数组
用于生成照明图的高度值
- vert_exag数字,可选
计算照明时夸大高程值的量。这可用于校正 x-y 坐标系和高程坐标系(例如,十进制度与米)之间单位的差异,或夸大或弱化地形效应。
- dx数字,可选
输入高程网格的 x 间距(列)。
- dy数字,可选
输入高程网格的 y 间距(行)。
- fraction数字,可选
增加或减少山体阴影的对比度。大于 1 的值将导致中间值更接近完全照明或阴影(并裁剪任何超出 0 或 1 的值)。请注意,这在视觉或数学上与垂直夸大不同。
- 返回:
ndarray
一个 0-1 之间的照明值二维数组,其中 0 表示完全在阴影中,1 表示完全受光。
- shade(data, cmap, norm=None, blend_mode='overlay', vmin=None, vmax=None, vert_exag=1, dx=1, dy=1, fraction=1, **kwargs)[source]#
将颜色映射的数据值与值的照明强度图(又称“山体阴影”)结合。
- 参数:
- data二维类数组
用于生成阴影图的高度值。
- cmap
Colormap
用于为数据数组着色的颜色映射。请注意,这必须是
Colormap
实例。例如,不要传入cmap='gist_earth'
,而应使用cmap=plt.get_cmap('gist_earth')
。- norm
Normalize
实例,可选 在颜色映射之前用于缩放值的归一化。如果为 None,输入将在其最小值和最大值之间线性缩放。
- blend_mode{'hsv', 'overlay', 'soft'} 或可调用对象,可选
用于将颜色映射的数据值与照明强度结合的混合类型。默认值为“overlay”。请注意,对于大多数地形表面,“overlay”或“soft”看起来更逼真。如果提供用户定义的函数,则该函数应将一个 (M, N, 3) 浮点数 RGB 数组(范围 0 到 1)与一个 (M, N, 1) 山体阴影数组(也是 0 到 1)结合。(调用签名
func(rgb, illum, **kwargs)
)提供给此函数的额外 kwargs 将传递给 blend_mode 函数。- vmin浮点数或 None,可选
在颜色映射数据中使用的最小值。如果为None,则使用数据中的最小值。如果指定了norm,则此参数将被忽略。
- vmax浮点数或 None,可选
在颜色映射数据中使用的最大值。如果为None,则使用数据中的最大值。如果指定了norm,则此参数将被忽略。
- vert_exag数字,可选
计算照明时夸大高程值的量。这可用于校正 x-y 坐标系和高程坐标系(例如,十进制度与米)之间单位的差异,或夸大或弱化地形。
- dx数字,可选
输入高程网格的 x 间距(列)。
- dy数字,可选
输入高程网格的 y 间距(行)。
- fraction数字,可选
增加或减少山体阴影的对比度。大于 1 的值将导致中间值更接近完全照明或阴影(并裁剪任何超出 0 或 1 的值)。请注意,这在视觉或数学上与垂直夸大不同。
- **kwargs
额外的 kwargs 将传递给 blend_mode 函数。
- 返回:
ndarray
一个范围在 0-1 之间的 (M, N, 4) 浮点数数组。
- shade_normals(normals, fraction=1.0)[source]#
使用为光源定义的方位角和仰角,计算曲面法线向量的照明强度。
想象一个位于无限远处、具有特定方位角和仰角的人造太阳照亮我们的曲面。面向太阳倾斜的部分应该变亮,而背离太阳的部分应该变暗。
- 参数:
- fraction数字,可选
增加或减少山体阴影的对比度。大于 1 的值将导致中间值更接近完全照明或阴影(并裁剪任何超出 0 或 1 的值)。请注意,这在视觉或数学上与垂直夸大不同。
- 返回:
ndarray
一个 0-1 之间的照明值二维数组,其中 0 表示完全在阴影中,1 表示完全受光。
- shade_rgb(rgb, elevation, fraction=1.0, blend_mode='hsv', vert_exag=1, dx=1, dy=1, **kwargs)[source]#
使用此光源调整 rgb 输入数组的颜色,以根据给定的高程创建阴影浮雕图。
- 参数:
- rgb类数组
一个 (M, N, 3) RGB 数组,假定范围在 0 到 1 之间。
- elevation类数组
一个 (M, N) 数组,包含用于生成阴影图的高度值。
- fraction数字
增加或减少山体阴影的对比度。大于 1 的值将导致中间值更接近完全照明或阴影(并裁剪任何超出 0 或 1 的值)。请注意,这在视觉或数学上与垂直夸大不同。
- blend_mode{'hsv', 'overlay', 'soft'} 或可调用对象,可选
用于将颜色映射数据值与照明强度结合的混合类型。为了向后兼容,默认值为“hsv”。请注意,对于大多数地形表面,“overlay”或“soft”看起来更逼真。如果提供了用户定义的函数,则该函数应将一个 (M, N, 3) 浮点数 RGB 数组(范围从 0 到 1)与一个 (M, N, 1) 山体阴影数组(也是 0 到 1)结合。(调用签名
func(rgb, illum, **kwargs)
)提供给此函数的额外 kwargs 将传递给 blend_mode 函数。- vert_exag数字,可选
计算照明时夸大高程值的量。这可用于校正 x-y 坐标系和高程坐标系(例如,十进制度与米)之间单位的差异,或夸大或弱化地形。
- dx数字,可选
输入高程网格的 x 间距(列)。
- dy数字,可选
输入高程网格的 y 间距(行)。
- **kwargs
额外的 kwargs 将传递给 blend_mode 函数。
- 返回:
ndarray
一个范围在 0-1 之间的 (m, n, 3) 浮点数数组。