Документация Engee

Цветовые схемы

Plots поддерживает все цветовые темы из ColorSchemes.jl. Их можно использовать как градиент или как палитру и передавать в виде символа, содержащего их имена, в cgrad или palette.

plot(
    [x -> sin(x - a) for a in range(0, π / 2, length = 5)], 0, 2π;
    palette = :Dark2_5,
)

function f(x, y)
    r = sqrt(x^2 + y^2)
    return cos(r) / (1 + r)
end
x = range(0, 2π, length = 30)
heatmap(x, x, f, c = :thermal)

Цветовая палитра (ColorPalette)

Plots выбирает цвета для серий автоматически из палитры, переданной атрибуту color_palette. Атрибут принимает символы имен цветовых схем или объектов ColorPalette. Цветовая палитра может быть построена с помощью palette(cs, [n]), где cs может быть Symbol, вектором цветов, ColorScheme, ColorPalette или ColorGradient. Необязательный аргумент n определяет, сколько цветов нужно выбрать из cs.

palette(:tab10)
colorschemes1
palette([:purple, :green], 7)
colorschemes2

Цветовой градиент (ColorGradient)

Для heatmap, surface, contour или line_z, marker_z и line_z Plots.jl выбирает цвета из ColorGradient. Если значение не указано, используется заданный по умолчанию ColorGradient :inferno. Чтобы выбрать другой градиент, можно передать атрибуту seriescolor символ имени цветовой схемы. Для более детальной настройки атрибуты цвета также принимают объект ColorGradient. Градиенты цвета можно создать, как показано далее

cgrad(cs, [z], alpha = nothing, rev = false, scale = nothing, categorical = nothing)

где cs может быть Symbol, вектором цветов, ColorScheme, ColorPalette или ColorGradient.

cgrad(:acton)
colorschemes3

В качестве второго аргумента можно передать вектор значений от 0 до 1 для задания позиций переходов цветов.

cgrad([:orange, :blue], [0.1, 0.3, 0.8])
colorschemes4

Когда rev = true, порядок цветов цветовой схемы меняется на обратный.

cgrad(:thermal, rev = true)
colorschemes5

При задании categorical = true возвращается CategoricalColorGradient, который делает выбор только в отдельном наборе цветов без непрерывной интерполяции. Необязательный аргумент определяет, сколько цветов нужно выбрать из цветовой схемы. Они равномерно распределены среди цветов цветовой схемы.

cgrad(:matter, 5, categorical = true)
colorschemes6

Категориальные градиенты также принимают вектор для позиций переходов цветов. Кроме того, можно изменять их порядок.

cgrad(:matter, [0.1, 0.3, 0.8], rev = true, categorical = true)
colorschemes7

Распределение выбора цвета можно масштабировать с помощью именованного аргумента scale, который принимает :log, :log10, :ln, :log2, :exp или функции, которая будет применяться к значениям позиции цвета от 0 до 1.

cgrad(:roma, scale = :log)
colorschemes8

Категориальные градиенты также поддерживают масштабирование.

cgrad(:roma, 10, categorical = true, scale = :exp)
colorschemes9