Serierecept

Introduktion till datavisualisering med Julia

Gustavo Vieira Suñe

Data Analyst

Anpassa ett diagram

# 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")

Ett horisontellt violindiagram över sömnlöshetsnivåer jämfört med favoritmusikgenre.

Introduktion till datavisualisering med Julia

Serier i Plots.jl

  • En samling punkter med gemensamma diagramegenskaper
    • Punkter i plot(x, y) är en serie av typen :line
  • Många serietyper, t.ex. :line, :scatter, :histogram, :density, :bar
  • Ett diagram kan innehålla flera serier
    • scatter(x, [y1 y2]) har två serier av typen :scatter
    • Varje kolumn är en serie
  • Plots.jl följer ett eget recept för varje serietyp
    • Vi kan skapa egna anpassade recept!
Introduktion till datavisualisering med Julia

Allt är ett diagram i grunden

# 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")

Ett horisontellt violindiagram över sömnlöshetsnivåer jämfört med favoritmusikgenre.

Introduktion till datavisualisering med Julia

Anpassade serierecept

@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}} definierar my_hviolin som serierecептets namn

  • x, y, z representerar seriens data

  • seriestype anger vilken serietyp som används i receptet

  • Anpassningsargument anges med :=

Introduktion till datavisualisering med Julia

Använda anpassade serierecept

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

xlabel!("Self-Reported Insomnia")

Ett horisontellt violindiagram över sömnlöshetsnivåer jämfört med favoritmusikgenre.

Introduktion till datavisualisering med Julia

Använda anpassade serierecept

# Define my_hviolin function
@shorthands my_hviolin

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

Ett horisontellt violindiagram över sömnlöshetsnivåer jämfört med favoritmusikgenre.

Introduktion till datavisualisering med Julia

Samma recept, ny data

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

Ett horisontellt violindiagram över OCD-nivåer jämfört med favoritmusikgenre.

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

Ett horisontellt violindiagram över ångestnivåer jämfört med favoritmusikgenre.

Introduktion till datavisualisering med Julia

Diagramrecept

  • Flera serier

Ett rutnät med ett violindiagram och ett lådagram över BPM jämfört med favoritgenre.

1 https://docs.juliaplots.org/latest/recipes/
Introduktion till datavisualisering med Julia

Nu kör vi en övning!

Introduktion till datavisualisering med Julia

Preparing Video For Download...