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

Основные понятия

Используйте plot для создания нового объекта графика и plot! — для добавления в существующий:

plot(args...; kw...)                  # создает новый объект Plot и устанавливает его в качестве текущего
plot!(args...; kw...)                 # изменяет объект Plot `current()`
plot!(plt, args...; kw...)            # изменяет объект Plot `plt`

График не показывается неявным образом, а только при «отображении». Это произойдет автоматически при возврате в командную строку REPL или в ячейку IJulia. Существует также множество других параметров.

Входные аргументы могут принимать множество форм. Вот некоторые допустимые примеры:

plot()                                       # пустой объект Plot
plot(4)                                      # инициализируем четырьмя пустыми рядами
plot(rand(10))                               # 1 ряд... x = 1:10
plot(rand(10,5))                             # 5 рядов... x = 1:10
plot(rand(10), rand(10))                     # 1 ряд
plot(rand(10,5), rand(10))                   # 5 рядов... значение y одинаково для всех
plot(sin, rand(10))                          # y = sin.(x)
plot(rand(10), sin)                          # то же самое... y = sin.(x)
plot([sin,cos], 0:0.1:π)                     # 2 ряда, sin.(x) и cos.(x)
plot([sin,cos], 0, π)                        # sin и cos в диапазоне [0, π]
plot(1:10, Any[rand(10), sin])               # 2 ряда: rand(10) и map(sin,x)
@df dataset("Ecdat", "Airline") plot(:Cost)  # столбец :Cost из DataFrame... должен импортировать StatsPlots

Именованные аргументы позволяют настраивать график, подграфики, оси и ряды. Они максимально соответствуют согласованным правилам, и вы сможете избежать распространенных ошибок, если внимательно прочтете этот раздел.

  • Многие аргументы имеют псевдонимы, которые заменяются во время предварительной обработки. c аналогичен color, m аналогичен marker и т. д. Вы можете выбрать удобную для вас формулировку.

  • Существует несколько специальных аргументов, которые задают сразу множество связанных между собой понятий.

  • Если аргумент имеет тип «матрица», каждый столбец будет сопоставляться с рядами путем циклического перебора столбцов, если их меньше, чем рядов. В этом смысле вектор рассматривается так же, как «матрица nx1».

  • Многие аргументы принимают различные типы. Например, аргумент color (также markercolor, fillcolor и т. д.) принимает строки или символы с именем цвета, или любой Colors.Colorant, или ColorScheme, или символ, представляющий ColorGradient, или AbstractVector цветов/символов и т. д.


Полезные советы

Распространенной ошибкой является передача вектора, когда предполагается, что каждый элемент будет применен только к одному ряду. Вместо вектора длины n следует передать матрицу 1xn.

Вы можете обновить некоторые настройки графика после его создания:

plot!(title = "New Title", xlabel = "New xlabel", ylabel = "New ylabel")
plot!(xlims = (0, 5.5), ylims = (-2.2, 6), xticks = 0:0.5:10, yticks = [0,1,5,10])

# или использовать магию:
plot!(xaxis = ("mylabel", :log10, :flip))
xaxis!("mylabel", :log10, :flip)

В поддерживаемых бэкендах можно передать объект Plots.Shape для аргументов marker/markershape. Shape принимает в конструкторе вектор из двух кортежей, задающих точки формы многоугольника в единично масштабируемом пространстве координат. Для создания квадрата, например, можно сделать следующее: Shape([(1,1),(1,-1),(-1,-1),(-1,1)])

С помощью default(arg::Symbol) можно посмотреть значение по умолчанию для данного аргумента, а с помощью default(arg::Symbol, value) или default(; kw...) — установить значение по умолчанию. Например, установите размер окна по умолчанию и определите, нужно ли показывать условные обозначения с помощью default(size=(600,400), leg=false).

Вызовите функцию gui() для отображения графика в окне. Интерактивность зависит от бэкенда. При построении графика в REPL (без точки с запятой) функция gui() вызывается неявным образом.