Сообщество Engee

Многогранность Plot

Автор
avatar-yurevyurev
Notebook

Многогранность Plot

Приведённый ниже код на языке программирования Engee предназначен для построения графиков двух функций и с использованием пакета Plots.

In [ ]:
x = 0:0.1:10
y1 = sin.(x)
y2 = cos.(x)
Out[0]:
101-element Vector{Float64}:
  1.0
  0.9950041652780258
  0.9800665778412416
  0.955336489125606
  0.9210609940028851
  0.8775825618903728
  0.8253356149096783
  0.7648421872844885
  0.6967067093471654
  0.6216099682706644
  0.5403023058681398
  0.4535961214255773
  0.3623577544766736
  ⋮
 -0.8654352092411123
 -0.9111302618846769
 -0.9477216021311119
 -0.9748436214041636
 -0.9922253254526034
 -0.9996930420352065
 -0.9971721561963784
 -0.984687855794127
 -0.9623648798313102
 -0.9304262721047533
 -0.8891911526253609
 -0.8390715290764524

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

Благодаря использованию большого числа параметров графика становится выразительным и информативным, позволяя подчеркнуть важные аспекты данных. Такой подход идеально подходит для подробного изучения возможностей пакетного построения графиков в Engee и достижения высокой точности визуализации данных.

In [ ]:
# Построение графика с максимальным количеством параметров
plot(x, y1, 
    label = "sin(x)",          # Подпись для легенды
    title = "График функций",  # Заголовок
    xlabel = "Ось X",         # Подпись оси X
    ylabel = "Ось Y",         # Подпись оси Y
    legend = :topright,       # Положение легенды (:none, :left, :right, :top, :bottom, :best)
    linewidth = 2,            # Толщина линии
    linestyle = :solid,       # Стиль линии (:solid, :dash, :dot, :dashdot)
    linecolor = :blue,        # Цвет линии (имя, HEX, RGB)
    marker = :circle,         # Маркер точек (:none, :circle, :square, :diamond и др.)
    markersize = 5,           # Размер маркера
    markercolor = :red,       # Цвет маркера
    markeralpha = 0.5,        # Прозрачность маркера (0-1)
    markerstrokewidth = 1,    # Толщина обводки маркера
    markerstrokecolor = :black, # Цвет обводки маркера
    seriesalpha = 0.8,        # Прозрачность всей серии (линии + маркеры)
    grid = true,              # Отображать сетку
    gridstyle = :dash,        # Стиль сетки
    gridalpha = 0.3,          # Прозрачность сетки
    minorgrid = false,        # Включить дополнительную сетку
    xlims = (0, 10),         # Границы оси X
    ylims = (-1.5, 1.5),     # Границы оси Y
    xticks = 0:1:10,         # Деления на оси X
    yticks = -1:0.5:1,       # Деления на оси Y
    framestyle = :box,       # Стиль рамки (:box, :axes, :origin, :zerolines, :grid)
    background_color = :white,# Цвет фона
    foreground_color = :black,# Цвет переднего плана (осей, текста)
    size = (800, 400),       # Размер графика в пикселях (ширина, высота)
    dpi = 100,               # Разрешение (точек на дюйм)
    colorbar = false,        # Показывать цветовую шкалу (для heatmap, contour)
    clims = (0, 1),          # Границы цветовой шкалы
    aspect_ratio = :auto,    # Соотношение осей (:auto, :equal, число)
    inset = (1, bbox(0.5, 0.5, 0.3, 0.3)), # Вставка (subplot)
    subplot = 1,             # Номер подграфика
    layout = @layout([a; b]),# Расположение графиков (используется с `plot!`)
    palette = :viridis,      # Цветовая палитра (:viridis, :plasma, :magma и др.)
    tickfontsize = 10,       # Размер шрифта делений
    guidefontsize = 12,      # Размер шрифта подписей осей
    legendfontsize = 10,     # Размер шрифта легенды
    titlefontsize = 14,      # Размер шрифта заголовка
    widen = true,            # Автоматически расширять границы осей
    reuse = false            # Переиспользовать текущий график
)
Out[0]:

Далее добавляем вторую линию (cos(x)) на существующий график, используя метод plot!(). Вот его ключевые особенности:

  • label="cos(x)": задаёт подпись линии в легенде.
  • linewidth=2: устанавливает толщину линии равной двум единицам.
  • linestyle=:dash: делает линию пунктирной.
  • linecolor=:green: окрашивает линию в зелёный цвет.

Такой подход удобен для добавления новых данных на один и тот же график без повторения общей конфигурации.

In [ ]:
plot!(x, y2, 
    label = "cos(x)", 
    linewidth = 2, 
    linestyle = :dash, 
    linecolor = :green
)
Out[0]:

Так же мы можем использовать savefig() - эта функция полезна для сохранения изображений графиков для последующего использования вне среды разработки, например, для включения в отчёты, презентации или публикации статей, например задав имя файла savefig("my_plot.png")— мы создадим график в файле формата PNG с именем "my_plot.png" в текущей рабочей директории.

Вывод

В данном примере мы показали максимальное количество возможных параметров настройки внешнего вида графика Plots.