Побудова графіків із DataFrame

Вступ до візуалізації даних у Julia

Gustavo Vieira Suñe

Data Analyst

Набір даних Insurance

  • датафрейм insurance
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
... ... ... ... ... ... ...

 

  • DataFrame гнучкі й ефективні для табличних даних
    • У StatsPlots є рецепт для побудови графіків з DataFrame
    • Знайомтесь із нотацією @df!
Вступ до візуалізації даних у Julia

Витяг масивів із DataFrame

  • Середні нарахування за регіонами та статусом куріння
# Group by region and smoker
grouped = groupby(insurance, [:Region, :Smoker])

# Calculate mean charges grouped_mean_charges = combine(grouped, :Charges => mean)
  • Кожен стовпець — це масив даних
    • Наприклад, grouped_mean_charges.Region витягає масив назв регіонів як рядків.
Вступ до візуалізації даних у Julia

Побудова графіків із масивів

# Grouped bar chart
groupedbar(

# Передайте масиви як аргументи 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)")

Стовпчаста діаграма з групуванням, що показує страхові нарахування для кожного регіону, згруповані за статусом куріння.

Вступ до візуалізації даних у Julia

Безпосередня побудова з DataFrame

# Plot from DataFrame
@df grouped_mean_charges groupedbar(

# Передайте назви стовпців :Region, :Charges_mean,
group=:Smoker,
color=[:teal :orangered2], linewidth=0, legend_title="Smoker", legend_position=:outertopright) xlabel!("Region") ylabel!("Insurance Premium (USD)")

Стовпчаста діаграма з групуванням, що показує страхові нарахування для кожного регіону, згруповані за статусом куріння.

Вступ до візуалізації даних у Julia

Порівняння поруч

# Grouped bar chart
groupedbar(

# Передайте масиви як аргументи 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(

# Передайте назви стовпців :Region, :Charges_mean, group=:Smoker,
color=[:teal :orangered2], linewidth=0, legend_title="Smoker", legend_position=:outertopright) xlabel!("Region") ylabel!("Insurance Premium (USD)")
Вступ до візуалізації даних у Julia

Чейнінг команд DataFrame

  • Як раніше

    # Group by region and smoker
    grouped = groupby(insurance, [:Region, :Smoker])
    # Calculate mean charges
    grouped_mean_charges = combine(grouped, :Charges => mean)
    
  • Замість цього використайте чейнінг

    using Chain
    # Chain groupby and combine
    grouped_mean_charges = @chain insurance begin
      groupby([:Region, :Smoker])
      combine(:Charges => mean)
    end
    
Вступ до візуалізації даних у Julia

Ланцюжок для побудови графіка

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

Стовпчаста діаграма з групуванням, що показує страхові нарахування для кожного регіону, згруповані за статусом куріння.

Вступ до візуалізації даних у Julia

Давайте потренуємось!

Вступ до візуалізації даних у Julia

Preparing Video For Download...