Более восприимчивые однородные цветовые карты? - PullRequest
1 голос
/ 28 апреля 2020

Я сторонник использования перцепционно однородных цветовых карт при построении научных c данных в виде изображений в оттенках серого и применении ложных раскрасок. Я не знаю, кто их изобрел, но эти цветовые карты просто фантастичны c, и я бы не стал больше ничего использовать.

В любом случае, если честно, мне немного надоело 5 цветовых карт (viridis, Plasma, Inferno, Magma, Cividis), которые были реализованы во многих популярных графических программах (R-ggplot, python -matplotlib, matlab, JMP и др. c.). Я уверен, что некоторые из вас также чувствуют ту же монотонность ...

Итак, в дополнение к этим 5 цветным картам, какие еще цветовые карты одинаково воспринимаемы?

БОНУС: Существует ли какой-либо алгоритм для получения цветовых карт с перцептивно однородными качествами (возможно, нет, поскольку восприятие цвета имеет психологический аспект)? но если да, то что это?

Некоторые примеры и ссылки: https://matplotlib.org/tutorials/colors/colormaps.html https://matplotlib.org/tutorials/colors/colormaps.html

https://www.youtube.com/watch?v=xAoljeRJ3lU

1 Ответ

1 голос
/ 01 мая 2020

Если вы перейдете по этой странице: http://bids.github.io/colormap/, вы найдете все детали, необходимые для производства Viridis, Magma, Inferno и Plasma. Все детали слишком длинные, чтобы перечислить их в качестве ответа, но, используя вышеупомянутую страницу и viscm , вы можете восстановить их и некоторые другие в интерактивном режиме.

В качестве альтернативы и с использованием Цвет :

import colour
import numpy as np

CAM16UCS = colour.convert(['#ff0000', '#00ff00'], 'Hexadecimal', 'CAM16UCS')
gradient = colour.utilities.lerp(
    CAM16UCS[0][np.newaxis],
    CAM16UCS[1][np.newaxis],
    np.linspace(0, 1, 20)[..., np.newaxis])
RGB = colour.convert(gradient, 'CAM16UCS', 'Output-Referred RGB')

colour.plotting.plot_multi_colour_swatches(
    [colour.plotting.ColourSwatch(RGB=np.clip(x, 0, 1)) for x in RGB])

print(colour.convert(RGB, 'Output-Referred RGB', 'Hexadecimal'))

['#fe0000' '#fb3209' '#f74811' '#f35918' '#ef671e' '#ea7423' '#e67f28'
 '#e18a2c' '#dc9430' '#d79e34' '#d1a738' '#cbb03b' '#c4b93d' '#bcc23e'
 '#b2cc3d' '#a6d53a' '#97df36' '#82e92e' '#62f321' '#00ff00']

PUG

Обратите внимание, что два граничных цвета даны в виде шестнадцатеричных значений, но вы, очевидно, можете выбрать любое соответствующее цветовое пространство. Аналогичным образом, CAM16 можно заменить на JzAzBz или аналогичное.

Вы можете попробовать это в Интернете с помощью этого ноутбука Google Colab .

...