開始使用免費開始

為了可讀性調整堆疊順序

在上一張圖中,因為我們把所有不是麻疹(measles)或腮腺炎(mumps)的疾病都歸到同一個類別,所以可以合理假設你對「other」這個類別的走勢關注較少,重點在麻疹與腮腺炎。

但因此產生了一個問題。現在長條的堆疊順序是麻疹在最上層、腮腺炎在中間、other 在最底層。這會讓你很難直觀判讀腮腺炎隨時間的變化,因為它的基準線並不固定,會受到麻疹比例變動的影響。

Ggplot 會依它在資料集中看到變數的順序來決定長條與圖例的順序。要覆寫這個行為,請把 disease 欄位轉成因子,並將 levels 設為我們想在圖上使用的順序。

本練習屬於課程

R 視覺化最佳實務

檢視課程

練習說明

  • 修改資料處理管線中的 mutate,把 disease 轉成因子,並設定 levels = c('measles', 'other', 'mumps')
  • 使用和上一個練習相同的程式碼重新繪圖。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

disease_counts <- who_disease %>%
	mutate(
		disease = ifelse(disease %in% c('measles', 'mumps'), disease, 'other') %>% 
		factor(___) # change factor levels to desired ordering
	) %>%
	group_by(disease, year) %>%
	summarise(total_cases = sum(cases)) 

# plot
ggplot(disease_counts, aes(x = year, y = total_cases, fill = disease)) +
	geom_col(position = 'fill')
編輯並執行程式碼