Gegevens plotten in DataFrames

Introductie tot datavisualisatie met Julia

Gustavo Vieira Suñe

Data Analyst

Insurance-dataset

  • insurance DataFrame
Age Sex BMI Children Smoker Region Charges
19 female 27.90 0 yes southwest 16884.90
18 male 33.77 1 no southeast 1725.55
28 male 33.00 3 no southeast 4449.46
... ... ... ... ... ... ...

 

  • DataFrames zijn flexibel en efficiënt voor tabeldata
    • StatsPlots heeft een recept om data in DataFrames te plotten
    • De @df-notatie!
Introductie tot datavisualisatie met Julia

Arrays uit een DataFrame halen

  • Gemiddelde kosten per regio en rookstatus
# Groepeer op regio en roker
grouped = groupby(insurance, [:Region, :Smoker])

# Bereken gemiddelde kosten grouped_mean_charges = combine(grouped, :Charges => mean)
  • Elke kolom geeft een array met data
    • Bijvoorbeeld, grouped_mean_charges.Region haalt een array met regio’s als strings op.
Introductie tot datavisualisatie met Julia

Data in arrays plotten

# Gegroepeerde staafgrafiek
groupedbar(

# Geef arrays als argumenten door grouped_mean_charges.Region, grouped_mean_charges.Charges_mean, group=grouped_mean_charges.Smoker,
color=[:teal :orangered2], linewidth=0, legend_title="Smoker", legend_position=:outertopright) xlabel!("Region") ylabel!("Insurance Premium (USD)")

Een gegroepeerde staafgrafiek met de verzekeringspremies per regio, gegroepeerd naar rookstatus.

Introductie tot datavisualisatie met Julia

Direct plotten vanuit DataFrames

# Plotten vanuit DataFrame
@df grouped_mean_charges groupedbar(

# Geef kolomnamen door :Region, :Charges_mean,
group=:Smoker,
color=[:teal :orangered2], linewidth=0, legend_title="Smoker", legend_position=:outertopright) xlabel!("Region") ylabel!("Insurance Premium (USD)")

Een gegroepeerde staafgrafiek met de verzekeringspremies per regio, gegroepeerd naar rookstatus.

Introductie tot datavisualisatie met Julia

Vergelijking naast elkaar

# Gegroepeerde staafgrafiek
groupedbar(

# Geef arrays als argumenten door grouped_mean_charges.Region, grouped_mean_charges.Charges_mean, group=grouped_mean_charges.Smoker,
color=[:teal :orangered2], linewidth=0, legend_title="Smoker", legend_position=:outertopright) xlabel!("Region") ylabel!("Insurance Premium (USD)")
# Plotten vanuit DataFrame
@df grouped_mean_charges groupedbar(

# Geef kolomnamen door :Region, :Charges_mean, group=:Smoker,
color=[:teal :orangered2], linewidth=0, legend_title="Smoker", legend_position=:outertopright) xlabel!("Region") ylabel!("Insurance Premium (USD)")
Introductie tot datavisualisatie met Julia

DataFrame-commando’s chainen

  • Van eerder

    # Groepeer op regio en roker
    grouped = groupby(insurance, [:Region, :Smoker])
    # Bereken gemiddelde kosten
    grouped_mean_charges = combine(grouped, :Charges => mean)
    
  • Gebruik in plaats daarvan chaining

    using Chain
    # Chain groupby en combine
    grouped_mean_charges = @chain insurance begin
      groupby([:Region, :Smoker])
      combine(:Charges => mean)
    end
    
Introductie tot datavisualisatie met Julia

Plot-chaining

# Plot-chaining
@chain insurance begin
    # Data bewerken
    groupby([:Region, :Smoker])
    combine(:Charges => mean)

# Data plotten @df groupedbar(:Region, :Charges_mean, group=:Smoker, color=[:teal :orangered2], linewidth=0, legend_title="Smoker", legend_position=:outertopright)
end xlabel!("Region") ylabel!("Insurance Premium (USD)")

Een gegroepeerde staafgrafiek met de verzekeringspremies per regio, gegroepeerd naar rookstatus.

Introductie tot datavisualisatie met Julia

Laten we oefenen!

Introductie tot datavisualisatie met Julia

Preparing Video For Download...