L'asse x è il tempo suddiviso in intervalli di tempo. C'è una colonna intervallo nella cornice dati che specifica il tempo per ogni riga. La colonna è un fattore, in cui ogni intervallo è un livello di fattore diverso.Qual è il metodo più semplice per riempire l'area sotto una linea geom_freqpoly?
Tracciare un istogramma o una linea utilizzando geom_histogram e geom_freqpoly funziona in modo ottimale, ma mi piacerebbe avere una linea, come quella fornita da geom_freqpoly, con l'area riempita.
Attualmente sto usando geom_freqpoly come questo:
ggplot(quake.data, aes(interval, fill=tweet.type)) + geom_freqpoly(aes(group = tweet.type, colour = tweet.type)) + opts(axis.text.x=theme_text(angle=-60, hjust=0, size = 6))
io preferirei avere una zona riempita, come ad esempio fornito da geom_density
, ma senza lisciatura la linea:
Il geom_area
è stato suggerito, esiste un modo per usa una statistica generata da ggplot2, come ..count .., per i valori y della geom_area? Oppure, l'aggregazione del conteggio deve verificarsi prima di utilizzare ggplot2?
Come indicato nella risposta, geom_area (..., stat = "bin") è la soluzione:
ggplot(quake.data, aes(interval)) + geom_area(aes(y = ..count.., fill = tweet.type, group = tweet.type), stat = "bin") + opts(axis.text.x=theme_text(angle=-60, hjust=0, size = 6))
produce:
se stai già facendo intervalli sei sicuro di volere una curva uniforme? – Dan
No, stavo solo esplorando le geoms ggplot2 che avrebbero prodotto l'area riempita.Preferirei il geom_freqpoly, ma con un'area piena. Suppongo che geom_area lo ottenga, ma dovrò aggregare manualmente il conteggio delle frequenze. – mattrepl
In realtà, esiste un motivo per cui stai utilizzando un fattore anziché una variabile di data e ora? – hadley