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

Атрибуты

Вводные сведения об атрибутах

В 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)  # Добавляет линию регрессии на графики