用版面配置打造高效視覺化

Julia 資料視覺化入門

Gustavo Vieira Suñe

Data Analyst

版面配置(Layouts)

  • 同一圖中的多條曲線

一張密度圖,依 K-Pop 收聽頻率分組顯示年齡分佈,每個類別各一條曲線同框呈現。

  • 圖格(layout

一個 2×2 的密度圖格,顯示不同 K-Pop 收聽頻率的年齡分佈,每格一張圖,線條各用不同顏色。

Julia 資料視覺化入門

圖格

using StatsPlots, DataFrames, CSV

# Load dataset
streaming = DataFrame(
    CSV.File("streaming.csv")
)

# Create density plot density( streaming.Age, group=streaming."Frequency [K pop]", linewidth=2.5,
# Set layout layout=4, )

一個 2×2 的密度圖格,顯示不同 K-Pop 收聽頻率的年齡分佈。所有圖的線條為同色。

Julia 資料視覺化入門

自訂圖格元素

using Colors

# Julia logo colors
logocolors = Colors.JULIA_LOGO_COLORS
colors = [logocolors.blue logocolors.red
    logocolors.green logocolors.purple]

density( streaming.Age, group=streaming."Frequency [K pop]", linewidth=2.5, layout=4, # Line colors linecolor=colors, )

一個 2×2 的密度圖格,顯示不同 K-Pop 收聽頻率的年齡分佈。每格的線條顏色不同。

Julia 資料視覺化入門

控制圖格版面

density(
    streaming.Age,
    group=streaming."Frequency [K pop]",
    linewidth=2.5,
    linecolor=colors,

# Layout dimensions layout=(4, 1),
# Axis labels xlabel=["" "" "" "Age"], ylabel="Probability", )
# Axis bounds xlims!(10, 80) ylims!(0, 0.2)

一個 4×1 的密度圖格,顯示不同 K-Pop 收聽頻率的年齡分佈。每格的線條顏色不同。

Julia 資料視覺化入門

進階版面配置

一個圖格。上排兩張盒鬚圖:分別為各串流服務的年齡與焦慮程度。下排三張長條圖:各串流服務的年齡分佈。

Julia 資料視覺化入門

步驟拆解

theme(:wong)
# Choose colors
colors = [:purple :green3 :firebrick1]


# First box plot p1 = boxplot(streaming."Streaming service", streaming.Age,
# Group by streaming service group=streaming."Streaming service", color=colors,
label=false, ylabel="Age", # Remove outliers outliers=false)

一張盒鬚圖,顯示各串流服務的年齡分佈。

Julia 資料視覺化入門

步驟拆解

# Second box plot
p2 = boxplot(
    streaming."Streaming service",
    streaming.Anxiety,
    # Group by streaming service
    group=streaming."Streaming service",
    color=colors,
    label=false,
    ylabel="Anxiety",
    # Remove outliers
    outliers=false,
)

一張盒鬚圖,顯示各串流服務的焦慮程度分佈。

Julia 資料視覺化入門

步驟拆解

# Histograms
p3 = histogram(
    streaming.Age,
    group=streaming."Streaming service",
    color=colors,
    # Remove lines
    linewidth=0,

# Set layout layout=(1, 3),
xlabel="Age", # Set y-axis labels ylabel=["Frequency" "" ""] )

三張長條圖,分別顯示各串流服務的年齡分佈。

Julia 資料視覺化入門

合併多圖

# Select layout
layout = @layout [a b; c]

一張圖,示意此版面配置的區塊結構。

# Join the plots
plot(p1, p2, p3, layout=layout)

一個圖格。上排兩張盒鬚圖:分別為各串流服務的年齡與焦慮程度。下排三張長條圖:各串流服務的年齡分佈。

Julia 資料視覺化入門

一起來練習吧!

Julia 資料視覺化入門

Preparing Video For Download...