Рецепты серий

Введение в визуализацию данных с Julia

Gustavo Vieira Suñe

Data Analyst

Настройка графика

# Create a violin plot
violin(
    streaming.Fav_genre,
    streaming.Insomnia,
    framestyle=:grid, label=false,
    linewidth=0,

# Fill properties fillcolor=:purple, fillalpha=0.75,
# Permute the axes permute=(:x, :y),
# Remove grid lines grid=:off, )
xlabel!("Self-Reported Insomnia")

Горизонтальная скрипичная диаграмма уровней бессонницы по любимым музыкальным жанрам.

Введение в визуализацию данных с Julia

Серии в Plots.jl

  • Набор точек с общими характеристиками отображения
    • Точки plot(x, y) образуют серию типа :line
  • Доступны типы: :line, :scatter, :histogram, :density, :bar
  • График может содержать несколько серий
    • scatter(x, [y1 y2]) — две серии типа :scatter
    • Каждый столбец — отдельная серия
  • Plots.jl использует отдельный рецепт для каждого типа серии
    • Можно создавать собственные рецепты!
Введение в визуализацию данных с Julia

В основе всегда plot

# Create a violin plot
plot(
    streaming.Fav_genre,
    streaming.Insomnia,
    framestyle=:grid, label=false,
    linewidth=0,
    fillcolor=:purple,
    fillalpha=0.75,
    permute=(:x, :y),
    grid=:off,

# Specify series type seriestype=:violin, )
xlabel!("Self-Reported Insomnia")

Горизонтальная скрипичная диаграмма уровней бессонницы по любимым музыкальным жанрам.

Введение в визуализацию данных с Julia

Пользовательские рецепты серий

@recipe function f(
    ::Type{Val{:my_hviolin}}, x, y, z
)

# Series type seriestype := :violin
# Customization options framestyle := :grid label := false linewidth := 0 fillcolor := :purple fillalpha := 0.75 permute := (:x, :y) end
  • ::Type{Val{:my_hviolin}} задаёт имя рецепта серии — my_hviolin

  • x, y, z — данные серии

  • seriestype определяет тип серии, используемый в рецепте

  • Параметры настройки задаются через :=

Введение в визуализацию данных с Julia

Использование пользовательского рецепта серии

# Use recipe
plot(
    streaming.Fav_genre,
    streaming.Insomnia,
    # Specify series recipe
    seriestype=:my_hviolin,
)

xlabel!("Self-Reported Insomnia")

Горизонтальная скрипичная диаграмма уровней бессонницы по любимым музыкальным жанрам.

Введение в визуализацию данных с Julia

Использование пользовательского рецепта серии

# Define my_hviolin function
@shorthands my_hviolin

# Use recipe my_hviolin( streaming.Fav_genre, streaming.Insomnia ) xlabel!("Self-Reported Insomnia")

Горизонтальная скрипичная диаграмма уровней бессонницы по любимым музыкальным жанрам.

Введение в визуализацию данных с Julia

Один рецепт, разные данные

my_hviolin(streaming.Fav_genre,
    streaming.OCD)
xlabel!("Self-Reported OCD")

Горизонтальная скрипичная диаграмма уровней ОКР по любимым музыкальным жанрам.

my_hviolin(streaming.Fav_genre,
    streaming.Anxiety)
xlabel!("Self-Reported Anxiety")

Горизонтальная скрипичная диаграмма уровней тревожности по любимым музыкальным жанрам.

Введение в визуализацию данных с Julia

Рецепты графиков

  • Несколько серий

Сетка из двух графиков: скрипичная диаграмма и ящик с усами для BPM по любимому жанру.

1 https://docs.juliaplots.org/latest/recipes/
Введение в визуализацию данных с Julia

Давайте потренируемся!

Введение в визуализацию данных с Julia

Preparing Video For Download...