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)[源代码][源代码]#
基类:
object
创建一个从指定方位角和仰角发出的光源。角度以度为单位,方位角从北顺时针测量,仰角从表面零平面向上测量。
shade
用于为数据数组生成“阴影”的 RGB 值。shade_rgb
可以用于将 RGB 图像与高程图结合。hillshade
生成表面的光照图。指定光源的方位角(从南向顺时针测量)和高度角(从表面平面向上测量),单位为度。
- 参数:
- azdegfloat, 默认值: 315度 (从西北方向)
光源的方位角(0-360,从北顺时针方向的角度)。
- altdeg浮动,默认:45度
光源的海拔高度(0-90度,从水平线向上)。
- hsv_min_valnumber, 默认: 0
最小值(“hsv”中的“v”),即 强度 映射可以将输出图像偏移到的最小值。
- hsv_max_valnumber, 默认值: 1
强度 映射可以将输出图像偏移到的最大值(“hsv”中的“v”)。
- hsv_min_satnumber, 默认值: 1
强度 映射可以将输出图像移至的最小饱和度值。
- hsv_max_satnumber, 默认: 0
强度 映射可以将输出图像移至的最大饱和度值。
注释
为了向后兼容,参数 hsv_min_val、hsv_max_val、hsv_min_sat 和 hsv_max_sat 也可以在初始化时提供。然而,这些参数仅在
shade
或shade_rgb
中传递 "blend_mode='hsv'" 时才会被使用。更多详情请参阅blend_hsv
的文档。- blend_hsv(rgb, intensity, hsv_max_sat=None, hsv_max_val=None, hsv_min_val=None, hsv_min_sat=None)[源代码][源代码]#
取输入数据数组,将其转换为给定色图中的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(彩色图像)。
- 强度 :
ndarray
ndarray
一个范围从0到1的浮点数数组(灰度图像),形状为 (M, N, 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)[源代码][源代码]#
使用定义的光源方位角和仰角计算表面的光照强度。
这计算了表面的法向量,然后将它们传递给
shade_normals
- 参数:
- 海拔2D 类数组
用于生成光照图的高度值
- vert_exag数字, 可选
计算照明时夸大高程值的程度。这可以用于修正x-y坐标系与高程坐标系之间的单位差异(例如,十进制度数与米),或者用于夸大或淡化地形效果。
- dx数字, 可选
输入 elevation 网格的 x 间距(列)。
- dy数字, 可选
输入 elevation 网格的 y 间距(行)。
- 分数数字, 可选
增加或减少山体阴影的对比度。大于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)[源代码][源代码]#
将颜色映射数据值与光照强度图(也称为“山体阴影”)的值结合起来。
- 参数:
- 数据2D 类数组
用于生成阴影地图的高度值。
- cmap颜色映射
用于为 data 数组着色的颜色映射。请注意,这必须是一个
Colormap
实例。例如,与其传入cmap='gist_earth'
,不如使用cmap=plt.get_cmap('gist_earth')
。- norm :
Normalize
实例, 可选规范化实例,可选 在颜色映射之前用于缩放值的归一化方法。如果为 None,输入将在其最小值和最大值之间线性缩放。
- 混合模式{'hsv', 'overlay', 'soft'} 或可调用对象,可选
用于将颜色映射数据值与光照强度结合的混合类型。默认是“overlay”。请注意,对于大多数地形表面,“overlay”或“soft”看起来更逼真。如果提供了一个用户定义的函数,它应该将一个 (M, N, 3) 的 RGB 数组(浮点数范围为 0 到 1)与一个 (M, N, 1) 的 hillshade 数组(也是 0 到 1)结合。(调用签名
func(rgb, illum, **kwargs)
)提供给此函数的额外 kwargs 将被传递给 blend_mode 函数。- vmin浮点数或无,可选
用于颜色映射的 data 中的最小值。如果为 None ,则使用 data 中的最小值。如果指定了 norm ,则此参数将被忽略。
- vmax浮点数或无,可选
颜色映射中使用的最大值 data。如果为 None,则使用 data 中的最大值。如果指定了 norm,则将忽略此参数。
- vert_exag数字, 可选
在计算光照时,夸大高程值的程度。这可以用于修正x-y坐标系与高程坐标系之间的单位差异(例如,十进制度数与米),或者用于夸大或弱化地形。
- dx数字, 可选
输入 elevation 网格的 x 间距(列)。
- dy数字, 可选
输入 elevation 网格的 y 间距(行)。
- 分数数字, 可选
增加或减少山体阴影的对比度。大于1的值将使中间值更接近完全光照或阴影(并裁剪任何超出0或1的值)。请注意,这与视觉或数学上的垂直夸张不同。
- **kwargs
额外的 kwargs 会被传递给 blend_mode 函数。
- 返回:
ndarray
一个范围在0-1之间的浮点数 (M, N, 4) 数组。
- shade_normals(normals, fraction=1.0)[源代码][源代码]#
使用定义的光源方位角和仰角计算表面法线的光照强度。
想象一下,在某个方位和仰角位置,将一个人造太阳放置在无穷远处,照亮我们的表面。朝向太阳的表面部分应该变得更亮,而背对太阳的部分应该变得更暗。
- 参数:
- 分数数字, 可选
增加或减少山体阴影的对比度。大于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)[源代码][源代码]#
使用此光源调整 rgb 输入数组的色彩,以产生带有给定 elevation 的阴影浮雕地图的视觉效果。
- 参数:
- rgb类数组
一个 (M, N, 3) 的 RGB 数组,假设其值范围在 0 到 1 之间。
- 海拔类数组
用于生成阴影地图的高度值的 (M, N) 数组。
- 分数数字
增加或减少山体阴影的对比度。大于1的值将使中间值更接近完全光照或阴影(并裁剪任何超出0或1的值)。请注意,这与视觉或数学上的垂直夸张不同。
- 混合模式{'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数字, 可选
输入 elevation 网格的 x 间距(列)。
- dy数字, 可选
输入 elevation 网格的 y 间距(行)。
- **kwargs
额外的 kwargs 会被传递给 blend_mode 函数。
- 返回:
ndarray
一个范围在0-1之间的浮点数 (m, n, 3) 数组。