Визуализация данных в DataFrames

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

Gustavo Vieira Suñe

Data Analyst

Набор данных по страхованию

  • DataFrame 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
... ... ... ... ... ... ...

 

  • DataFrames — гибкий и эффективный формат для табличных данных
    • StatsPlots содержит рецепт для построения графиков из DataFrames
    • Знакомьтесь: нотация @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(

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

Сгруппированная столбчатая диаграмма страховых взносов по регионам в разбивке по статусу курильщика.

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

Построение графиков напрямую из 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)")

Сгруппированная столбчатая диаграмма страховых взносов по регионам в разбивке по статусу курильщика.

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

Сравнение двух подходов

# 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)")
Введение в визуализацию данных с Julia

Цепочки команд для DataFrames

  • Предыдущий подход

    # 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...