Цветовые схемы
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)