IniziaInizia gratis

Ordinare lo stack per leggibilità

Nell’ultimo grafico, dato che abbiamo raggruppato tutte le malattie che non sono morbillo e parotite in una categoria a parte, è ragionevole supporre che ci interessi meno l’andamento della categoria "other" rispetto a quello di morbillo e parotite.

Per questo, il grafico che abbiamo creato ha un problema. Il modo in cui le barre sono impilate — con morbillo in alto, parotite in mezzo e other in basso — rende difficile intuire bene il comportamento della parotite nel tempo, perché la sua linea di base non è costante a causa delle variazioni nelle proporzioni del morbillo.

Ggplot ordina le barre e la legenda in base all’ordine con cui vede le variabili nel dataset. Per superare questo comportamento, trasforma la colonna disease in un fattore impostando i levels nell’ordine che vogliamo usare nel grafico.

Questo esercizio fa parte del corso

Buone pratiche di visualizzazione in R

Visualizza il corso

Istruzioni dell'esercizio

  • Modifica la funzione mutate nella pipeline di manipolazione dati per trasformare disease in un fattore con levels = c('measles', 'other', 'mumps').
  • Riesegui il grafico usando lo stesso codice dell’esercizio precedente.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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')
Modifica ed esegui il codice