matplotlib.colors.LightSource
- classmatplotlib.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создаёт карту освещённости поверхности.Укажите в градусах азимут (измеряемый по часовой стрелке от юга) и высоту (измеряемую вверх от плоскости поверхности) источника света.
- Параметры:
-
- azdegчисло с плавающей точкой, по умолчанию: 315 градусов (с северо-запада)
-
Азимут источника света (0–360 градусов по часовой стрелке от севера).
- altdegчисло с плавающей точкой, по умолчанию: 45 градусов
-
Высота источника света (0–90 градусов над горизонтом).
- hsv_min_valчисло, по умолчанию: 0
-
Минимальное значение («v» в «hsv»), до которого карта интенсивности может изменить выходное изображение.
- hsv_max_valчисло, по умолчанию: 1
-
Максимальное значение («v» в «hsv»), до которого карта интенсивности может изменить выходное изображение.
- hsv_min_satчисло, по умолчанию: 1
-
Минимальное значение насыщенности, до которого карта интенсивности может изменить выходное изображение.
- hsv_max_satчисло, по умолчанию: 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 -
Массив RGB размера (M, N, 3) с числами с плавающей точкой от 0 до 1 (цветное изображение).
-
intensity
ndarray -
Массив размера (M, N, 1) с числами с плавающей точкой от 0 до 1 (изображение в градациях серого).
- hsv_max_satчисло, необязательный
-
Максимальное значение насыщенности, до которого карта интенсивности может изменить выходное изображение. Если не задано, используется значение, указанное при инициализации.
- hsv_min_satчисло, необязательный
-
Минимальное значение насыщенности, до которого карта интенсивности может изменить выходное изображение. Если не задано, используется значение, указанное при инициализации.
- hsv_max_valчисло, необязательный
-
Максимальное значение («v» в «hsv»), до которого карта интенсивности может изменить выходное изображение. Если не задано, используется значение, указанное при инициализации.
- hsv_min_valчисло, необязательный
-
Минимальное значение («v» в «hsv»), до которого карта интенсивности может изменить выходное изображение. Если не задано, используется значение, указанное при инициализации.
-
rgb
- Возвращает:
-
ndarray-
Массив RGB размера (M, N, 3), представляющий объединённые изображения.
- blend_overlay(rgb, intensity)[исходный код]
-
Объединяет изображение RGB с картой интенсивности, используя смешивание в режиме «overlay».
- Параметры:
-
-
rgb
ndarray -
Массив RGB размера (M, N, 3) с числами с плавающей точкой от 0 до 1 (цветное изображение).
-
intensity
ndarray -
Массив размера (M, N, 1) с числами с плавающей точкой от 0 до 1 (изображение в градациях серого).
-
rgb
- Возвращает:
-
- ndarray
-
Массив RGB размера (M, N, 3), представляющий объединённые изображения.
- blend_soft_light(rgb, intensity)[исходный код]
-
Объединяет изображение RGB с картой интенсивности, используя смешивание в режиме «soft light» по формуле «pegtop».
- Параметры:
-
-
rgb
ndarray -
Массив RGB размера (M, N, 3) с числами с плавающей точкой от 0 до 1 (цветное изображение).
-
intensity
ndarray -
Массив размера (M, N, 1) с числами с плавающей точкой от 0 до 1 (изображение в градациях серого).
-
rgb
- Возвращает:
-
ndarray-
Массив RGB размера (M, N, 3), представляющий объединённые изображения.
- propertydirection
-
Единичный вектор направления на источник света.
- hillshade(elevation, vert_exag=1, dx=1, dy=1, fraction=1.0)[исходный код]
-
Вычисляет интенсивность освещения поверхности с учётом заданных азимута и высоты источника света.
Метод вычисляет векторы нормали поверхности, а затем передаёт их в
shade_normals- Параметры:
-
- elevationдвумерный массив или аналогичный объект
-
Значения высот, используемые для создания карты освещённости
- vert_exagчисло, необязательный
-
Коэффициент преувеличения значений высоты при вычислении освещения. Его можно использовать для коррекции различий в единицах измерения между системой координат x-y и системой координат высот (например, десятичные градусы и метры), а также для усиления или ослабления рельефных эффектов.
- dxчисло, необязательный
-
Шаг по x (столбцы) входной сетки elevation.
- dyчисло, необязательный
-
Шаг по y (строки) входной сетки elevation.
- fractionчисло, необязательный
-
Увеличивает или уменьшает контраст рельефного затенения. При значениях больше единицы промежуточные значения будут смещаться ближе к полному освещению или тени (значения, выходящие за пределы 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)[исходный код]
-
Объединяет значения данных, преобразованные с помощью цветовой карты, с картой интенсивности освещения (также называемой «рельефным затенением») этих значений.
- Параметры:
-
- dataдвумерный массив или аналогичный объект
-
Значения высот, используемые для создания затенённой карты.
-
cmap
Colormap -
Цветовая карта, используемая для раскрашивания массива data. Обратите внимание, что это должен быть экземпляр
Colormap. Например, вместо передачиcmap='gist_earth'используйтеcmap=plt.get_cmap('gist_earth'). -
normэкземпляр
Normalize, необязательный -
Нормализация, используемая для масштабирования значений перед применением цветовой карты. Если значение равно None, входные данные линейно масштабируются между минимумом и максимумом.
- blend_mode{'hsv', 'overlay', 'soft'} или вызываемый объект, необязательный
-
Тип смешивания, используемый для объединения значений данных, преобразованных с помощью цветовой карты, с интенсивностью освещения. По умолчанию используется "overlay". Обратите внимание, что для большинства топографических поверхностей режимы "overlay" или "soft" выглядят реалистичнее. Если передана пользовательская функция, она должна объединять массив RGB размера (M, N, 3) с числами с плавающей точкой (от 0 до 1) и массив рельефного затенения размера (M, N, 1) (также от 0 до 1). (Сигнатура вызова
func(rgb, illum, **kwargs)) Дополнительные именованные аргументы, переданные этой функции, будут переданы функции blend_mode. - vminчисло с плавающей точкой или None, необязательный
-
Минимальное значение, используемое при применении цветовой карты к data. Если задано None, используется минимальное значение в data. Если указан norm, этот аргумент игнорируется.
- vmaxчисло с плавающей точкой или None, необязательный
-
Максимальное значение, используемое при применении цветовой карты к data. Если задано None, используется максимальное значение в data. Если указан norm, этот аргумент игнорируется.
- vert_exagчисло, необязательный
-
Коэффициент преувеличения значений высоты при вычислении освещения. Его можно использовать для коррекции различий в единицах измерения между системой координат x-y и системой координат высот (например, десятичные градусы и метры), а также для усиления или ослабления рельефа.
- dxчисло, необязательный
-
Шаг по x (столбцы) входной сетки elevation.
- dyчисло, необязательный
-
Шаг по y (строки) входной сетки elevation.
- fractionчисло, необязательный
-
Увеличивает или уменьшает контраст рельефного затенения. При значениях больше единицы промежуточные значения будут смещаться ближе к полному освещению или тени (значения, выходящие за пределы 0 или 1, будут ограничены). Обратите внимание, что визуально и математически это не то же самое, что вертикальное преувеличение.
- **kwargs
-
Дополнительные именованные аргументы передаются функции blend_mode.
- Возвращает:
-
ndarray-
Массив размера (M, N, 4) с числами с плавающей точкой от 0 до 1.
- shade_normals(normals, fraction=1.0)[исходный код]
-
Вычисляет интенсивность освещения для векторов нормали поверхности с учётом заданных азимута и высоты источника света.
Представьте, что искусственное солнце, расположенное в бесконечности под некоторыми азимутом и углом возвышения, освещает нашу поверхность. Участки поверхности, наклонённые к солнцу, должны становиться светлее, а обращённые от него — темнее.
- Параметры:
-
- fractionчисло, необязательный
-
Увеличивает или уменьшает контраст рельефного затенения. При значениях больше единицы промежуточные значения будут смещаться ближе к полному освещению или тени (значения, выходящие за пределы 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массив или аналогичный объект
-
Массив RGB размера (M, N, 3), предполагается, что значения находятся в диапазоне от 0 до 1.
- elevationмассив или аналогичный объект
-
Массив размера (M, N) со значениями высот, используемыми для создания затенённой карты.
- fractionчисло
-
Увеличивает или уменьшает контраст рельефного затенения. При значениях больше единицы промежуточные значения будут смещаться ближе к полному освещению или тени (значения, выходящие за пределы 0 или 1, будут ограничены). Обратите внимание, что визуально и математически это не то же самое, что вертикальное преувеличение.
- blend_mode{'hsv', 'overlay', 'soft'} или вызываемый объект, необязательный
-
Тип смешивания, используемый для объединения значений данных, преобразованных с помощью цветовой карты, с интенсивностью освещения. Для обратной совместимости по умолчанию используется "hsv". Обратите внимание, что для большинства топографических поверхностей режимы "overlay" или "soft" выглядят реалистичнее. Если передана пользовательская функция, она должна объединять массив RGB размера (M, N, 3) с числами с плавающей точкой (от 0 до 1) и массив рельефного затенения размера (M, N, 1) (также от 0 до 1). (Сигнатура вызова
func(rgb, illum, **kwargs)) Дополнительные именованные аргументы, переданные этой функции, будут переданы функции blend_mode. - vert_exagчисло, необязательный
-
Коэффициент преувеличения значений высоты при вычислении освещения. Его можно использовать для коррекции различий в единицах измерения между системой координат x-y и системой координат высот (например, десятичные градусы и метры), а также для усиления или ослабления рельефа.
- dxчисло, необязательный
-
Шаг по x (столбцы) входной сетки elevation.
- dyчисло, необязательный
-
Шаг по y (строки) входной сетки elevation.
- **kwargs
-
Дополнительные именованные аргументы передаются функции blend_mode.
- Возвращает:
-
ndarray-
Массив размера (m, n, 3) с числами с плавающей точкой от 0 до 1.
Примеры использования matplotlib.colors.LightSource
Пользовательское рельефное затенение на трёхмерном графике поверхности
Затенённая визуализация с нормализацией по степенной функции
© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/_as_gen/matplotlib.colors.LightSource.html