Plotta data i DataFrames

Introduktion till datavisualisering med Julia

Gustavo Vieira Suñe

Data Analyst

Försäkringsdataset

  • 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 är flexibla och effektiva för tabelldata
    • StatsPlots har ett recept för att plotta data i DataFrames
    • Vi introducerar @df-notationen!
Introduktion till datavisualisering med Julia

Extrahera arrayer från DataFrame

  • Genomsnittliga kostnader per region och rökstatus
# Group by region and smoker
grouped = groupby(insurance, [:Region, :Smoker])

# Calculate mean charges grouped_mean_charges = combine(grouped, :Charges => mean)
  • Varje kolumn ger en array med data
    • Till exempel extraherar grouped_mean_charges.Region en array med regionerna som strängar.
Introduktion till datavisualisering med Julia

Plotta data i arrayer

# Grouped bar chart
groupedbar(

# Pass arrays as arguments 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)")

Ett grupperat stapeldiagram som visar försäkringskostnader per region grupperade efter rökstatus.

Introduktion till datavisualisering med Julia

Plotta direkt från DataFrames

# Plot from DataFrame
@df grouped_mean_charges groupedbar(

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

Ett grupperat stapeldiagram som visar försäkringskostnader per region grupperade efter rökstatus.

Introduktion till datavisualisering med Julia

Jämförelse sida vid sida

# Grouped bar chart
groupedbar(

# Pass arrays as arguments 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)")
# Plot from DataFrame
@df grouped_mean_charges groupedbar(

# Pass column names :Region, :Charges_mean, group=:Smoker,
color=[:teal :orangered2], linewidth=0, legend_title="Smoker", legend_position=:outertopright) xlabel!("Region") ylabel!("Insurance Premium (USD)")
Introduktion till datavisualisering med Julia

Kedja DataFrame-kommandon

  • Tidigare

    # Group by region and smoker
    grouped = groupby(insurance, [:Region, :Smoker])
    # Calculate mean charges
    grouped_mean_charges = combine(grouped, :Charges => mean)
    
  • Använd kedjning istället

    using Chain
    # Chain groupby and combine
    grouped_mean_charges = @chain insurance begin
      groupby([:Region, :Smoker])
      combine(:Charges => mean)
    end
    
Introduktion till datavisualisering med Julia

Plottningskedja

# Plotting chain
@chain insurance begin
    # Manipulate data
    groupby([:Region, :Smoker])
    combine(:Charges => mean)

# Plot data @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)")

Ett grupperat stapeldiagram som visar försäkringskostnader per region grupperade efter rökstatus.

Introduktion till datavisualisering med Julia

Nu kör vi en övning!

Introduktion till datavisualisering med Julia

Preparing Video For Download...