Атрибуты
Вводные сведения об атрибутах
В Plots входные данные передаются позиционно (например, y
в plot(y)
), а атрибуты — в виде ключевых слов (например, plot(y, color = :blue)
). Большая часть информации на этой странице доступна из REPL Julia. После выполнения функции using Plots
в REPL можно воспользоваться функцией plotattr()
для вывода списка всех атрибутов серий, графиков, подграфиков или осей.
# Допустимые операции
plotattr(:Plot)
plotattr(:Series)
plotattr(:Subplot)
plotattr(:Axis)
Получив список атрибутов, можно либо использовать псевдонимы конкретного атрибута, либо исследовать конкретный атрибут, чтобы вывести псевдонимы этого атрибута и его описание.
julia> # Пример конкретного атрибута
plotattr("size")
:size
(width_px, height_px) of the whole Plot.
Aliases: (:sizes, :windowsize, :wsize).
Type: Tuple{Integer, Integer}.
`Plot` attribute, defaults to `(600, 400)`.
Обязательно заключите атрибут, который вы хотите использовать, в двойные кавычки. |
Псевдонимы
С помощью процедуры присваивания псевдонимов ключевые слова могут принимать диапазон значений. Например, plot(y, color = :blue)
на самом деле интерпретируется как plot(y, seriescolor = :blue)
. Каждый атрибут имеет ряд псевдонимов (см. диаграммы ниже), которые доступны для того, чтобы постоянно не просматривать документацию по API построения графиков, если вы забыли имя аргумента. c
, color
и seriescolor
означают одно и то же, и фактически преобразуются в более точные атрибуты linecolor
, markercolor
, markerstrokecolor
и fillcolor
(которые при желании можно переопределить).
Используйте псевдонимы для однократного анализа и визуализации, но используйте истинное имя ключевого слова для долговременного кода библиотеки, чтобы избежать путаницы. |
Особые аргументы
Некоторые аргументы включают в себя интеллектуальные сокращения для одновременного задания многих связанных аргументов. Plots использует проверку типов и множественную диспетчеризацию для того, чтобы выяснить, какие значения относятся к тому или иному аргументу. Передает кортеж значений. Одиночные значения перед обработкой будут сначала заключены в кортеж.
axis (и xaxis/yaxis/zaxis)
Передача кортежа настроек в аргументе xaxis
позволит быстро определить xlabel
, xlims
, xticks
, xscale
, xflip
и xtickfont
. Ниже приведены эквиваленты.
plot(y, xaxis = ("my label", (0,10), 0:0.5:10, :log, :flip, font(20, "Courier")))
plot(y,
xlabel = "my label",
xlims = (0,10),
xticks = 0:0.5:10,
xscale = :log,
xflip = true,
xtickfont = font(20, "Courier")
)
Обратите внимание, что yaxis
и zaxis
работают одинаково, и axis
будет применяться ко всем.
Передача кортежа в xticks
(и аналогично в yticks
и zticks
) изменяет положение делений и надписей:
plot!(xticks = ([0:π:3*π;], ["0", "\\pi", "2\\pi"]))
yticks!([-1:1:1;], ["min", "zero", "max"])
line
Задает атрибуты, соответствующие линии ряда. Псевдонимы: l
. Ниже приведены эквиваленты.
plot(y, line = (:steppre, :dot, :arrow, 0.5, 4, :red))
plot(y,
seriestype = :steppre,
linestyle = :dot,
arrow = :arrow,
linealpha = 0.5,
linewidth = 4,
linecolor = :red
)
fill
Задает атрибуты, соответствующие области заполнения рядов. Псевдонимы: f
, area
. Ниже приведены эквиваленты.
plot(y, fill = (0, 0.5, :red))
plot(y,
fillrange = 0,
fillalpha = 0.5,
fillcolor = :red
)
marker
Задает атрибуты, соответствующие маркеру рядов. Псевдонимы: m
, mark
. Ниже приведены эквиваленты.
scatter(y, marker = (:hexagon, 20, 0.6, :green, stroke(3, 0.2, :black, :dot)))
scatter(y,
markershape = :hexagon,
markersize = 20,
markeralpha = 0.6,
markercolor = :green,
markerstrokewidth = 3,
markerstrokealpha = 0.2,
markerstrokecolor = :black,
markerstrokestyle = :dot
)
Важные аргументы
Здесь приведены некоторые важные, но малоизвестные аргументы:
scatter(y, thickness_scaling = 2) # увеличивает размеры шрифтов и ширину линий в 2 раза
# подходит для презентаций и постеров
# Если бэкенд не поддерживает эту возможность, используется функция `scalefontsizes(2)`, которая масштабирует
# размеры шрифтов по умолчанию.
scatter(y, ticks=:native) # Указывает бэкендам вычислять деления самостоятельно.
# Рекомендуется, если вы используете интерактивные бэкенды, в которых масштабирование выполняется с помощью мыши
scatter(rand(100), smooth=true) # Добавляет линию регрессии на графики