重點回顧:連動視圖與選擇器小工具

R 的 plotly 互動式資料視覺化:中級

Adam Loy

Statistician, Carleton College

連動視圖

第 4 章第 3 段連動回顧動畫

R 的 plotly 互動式資料視覺化:中級

SharedData

shared_launches <- SharedData$new(launches, key = ~agency_type)

line_chart <- shared_launches %>% plot_ly() %>% group_by(launch_year, agency_type) %>% summarize(n = n()) %>% ungroup(launch_year) %>% add_lines(x = ~launch_year, y = ~n, color = ~agency_type) bar_chart <- shared_launches %>% plot_ly() %>% group_by(agency_type) %>% summarize(n = n()) %>% add_bars(y = ~fct_reorder(agency_type, n), x = ~n, color = ~agency_type) %>% layout(barmode = "overlay", yaxis = list(title = ""))
R 的 plotly 互動式資料視覺化:中級

用 subplot() 連動視圖

subplot(bar_chart, line_chart) %>% 
  hide_legend() %>% 
  highlight()

依機構類型的長條圖

R 的 plotly 互動式資料視覺化:中級

用 bscols() 連動視圖

bscols(
  widths = c(4, NA),
  bar_chart %>% highlight(),
  line_chart %>% highlight()
)

依機構類型的長條圖(bscols)

R 的 plotly 互動式資料視覺化:中級

highlight() 選項

參數 說明
on 選取事件:'plotly_click''plotly_hover''plotly_selected'
off 取消選取事件:'plotly_doubleclick''plotly_deselect''plotly_relayout'
persistent 是否保留選取狀態?TRUEFALSE
dynamic 是否加入可變色的小工具?TRUEFALSE
color 用於反白選取的色彩字串
selectize 是否加入 selectize.js 小工具以依鍵選取?TRUEFALSE
R 的 plotly 互動式資料視覺化:中級

選擇器小工具

bscols(widths = c(2, NA),
  list(filter_checkbox(id = "agency", label = "Agency type", shared_launches, ~agency_type),
       filter_select(id = "agency2", label = "Agency type dropdown", shared_launches, ~agency_type)),
  line_chart %>% highlight(on = "plotly_selected", off = "plotly_deselect")
)

機構類型選擇器

R 的 plotly 互動式資料視覺化:中級

運載火箭

glimpse(lv)
Rows: 1,578
Columns: 17
$ name         <chr> "?", "Unknown", "N-1 11A52", "Saturn V", "S…
$ family       <chr> "Unknown", "Unknown", "N-1", "SaturnV", "Sa…
$ sfamily      <chr> NA, NA, "OKB1", "MSFC", "MSFC", "SPX", "SPX…
$ manufacturer <chr> NA, NA, NA, NA, "2", NA, NA, NA, NA, NA, NA…
$ variant      <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
$ alias        <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1…
$ min_stage    <dbl> 1, 1, 3, 4, 3, 1, 2, 3, 1, 1, 2, 3, 6, 3, 6…
$ max_stage    <chr> "0.0  0.00", "0.0  0.00", "105.3 14.00", "1…
$ length       <chr> "0.0", "0.0", "2788.0", "2913.0", "2822.0",…
$ diameter     <dbl> 0, 0, 70000, 118000, 75000, 0, 150000, 2440…
$ launch_mass  <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
$ leo_capacity <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4350, 0…
$ gto_capacity <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
$ to_thrust    <dbl> 0, 0, 45300, 34030, 34030, 12000, 72500, 28…
$ class        <chr> "R", "R", "O", "O", "O", "R", "O", "O", "O"…
$ apogee       <dbl> 0, 0, 200, 400000, 500, 20, 200, 600, 250, …
$ range        <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
R 的 plotly 互動式資料視覺化:中級

一起來練習吧!

R 的 plotly 互動式資料視覺化:中級

Preparing Video For Download...