Цветовые схемы
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)
palette([:purple, :green], 7)
Цветовой градиент (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)
В качестве второго аргумента можно передать вектор значений от 0 до 1 для задания позиций переходов цветов.
cgrad([:orange, :blue], [0.1, 0.3, 0.8])
Когда rev = true, порядок цветов цветовой схемы меняется на обратный.
cgrad(:thermal, rev = true)
При задании categorical = true возвращается CategoricalColorGradient, который делает выбор только в отдельном наборе цветов без непрерывной интерполяции. Необязательный аргумент определяет, сколько цветов нужно выбрать из цветовой схемы. Они равномерно распределены среди цветов цветовой схемы.
cgrad(:matter, 5, categorical = true)
Категориальные градиенты также принимают вектор для позиций переходов цветов. Кроме того, можно изменять их порядок.
cgrad(:matter, [0.1, 0.3, 0.8], rev = true, categorical = true)
Распределение выбора цвета можно масштабировать с помощью именованного аргумента scale, который принимает :log, :log10, :ln, :log2, :exp или функции, которая будет применяться к значениям позиции цвета от 0 до 1.
cgrad(:roma, scale = :log)
Категориальные градиенты также поддерживают масштабирование.
cgrad(:roma, 10, categorical = true, scale = :exp)