Как установить цветовой градиент по умолчанию в Plots.jl
У Юлии Plots
пакет, я могу изменить цвет поверхности графика следующим образом:
plot(mySurface,st=:surface,c=:blues)
Как я могу изменить цветовой градиент по умолчанию, чтобы мне не пришлось ставить c=:blues
каждый раз?
(На соответствующей странице документа Plots не указано, как изменить настройки по умолчанию.)
2 ответа
Смотрите подсказку из документации Julia Plots:
Совет: Вы можете увидеть значение по умолчанию для данного аргумента с
default(arg::Symbol)
и установите значение по умолчанию с помощьюdefault(arg::Symbol, value)
или жеdefault(; kw...)
, Например, установите размер окна по умолчанию и нужно ли показывать легенду сdefault(size=(600,400), leg=false)
,
Следовательно, вы можете установить желаемое значение по умолчанию
default(c=:blues)
Хотя вы, вероятно, хотите установить новое значение по умолчанию для fillcolor
скорее, чем seriescolor
или его псевдоним c
поскольку seriescolor
также повлияет на цвет других типов графиков, и вы, вероятно, не захотите этого.
default(fillcolor=:blues)
По умолчанию будет работать до тех пор, пока вы не установите другие значения по умолчанию или перезапустите сеанс Julia.
Если вы хотите, чтобы ваши новые настройки по умолчанию работали даже после перезапуска Julia, вы можете попробовать Requires.jl
и ваш файл запуска (~/.julia/config/startup.jl
) с чем-то вроде следующего,
using Requires
@require Plots="91a5bcdd-55d7-5caf-9e0b-520d859cae80" Plots.default(fillcolor=:blues)
где 91a5bcdd-55d7-5caf-9e0b-520d859cae80
это UUID Plots.jl
пакет в реестре.
Я видел возможное решение здесь. https://github.com/JuliaPlots/Plots.jl/issues/87
with(c = :blue) do
plot!(rand(5))
plot!(rand(5))
end
Вы должны либо palette
или m
ключевое слово, как показано в примерах:
y = rand(100)
plot(0:10:100, rand(11, 4), lab="lines", w=3, palette=:grays, fill=0, α=0.6)
scatter!(y, zcolor=abs.(y .- 0.5), m=(:heat, 0.8, Plots.stroke(1, :green)), ms=10 * abs.(y .- 0.5) .+ 4, lab="grad")