Vorrei mettere le linee perpendicolari alle estremità dei baffi come la funzione boxplot
dà automaticamente.Mettere le estremità del baffo sul boxplot
risposta
Potrebbe essere possibile utilizzare stat_boxplot
per calcolare le estremità del baffo, ma non sono abbastanza una procedura guidata ggplot2
, quindi per tale motivo utilizzo la funzione di base.
set.seed(42)
df <- data.frame(cond = factor(rep(c("A","B"), each=500)),
value = c(rnorm(500,mean=1,sd=0.2),rnorm(500, mean=1.5,sd=0.1)))
whisk <- function(df,cond_col=1,val_col=2) {
require(reshape2)
condname <- names(df)[cond_col]
names(df)[cond_col] <- "cond"
names(df)[val_col] <- "value"
b <- boxplot(value~cond,data=df,plot=FALSE)
df2 <- cbind(as.data.frame(b$stats),c("min","lq","m","uq","max"))
names(df2) <- c(levels(df$cond),"pos")
df2 <- melt(df2,id="pos",variable.name="cond")
df2 <- dcast(df2,cond~pos)
names(df2)[1] <- condname
df2
}
library(ggplot2)
plot1 <- ggplot(df, aes(x=cond))
plot1 <- plot1 + geom_errorbar(aes(ymin=min,ymax=max),data=whisk(df),width = 0.5)
plot1 <- plot1 + geom_boxplot(aes(y=value))
plot1
Come accennato ma non eseguite dalle @Roland, è possibile utilizzare stat_boxplot
per implementare questo. Il trucco chiama il numero _boxplot
due volte e consente di impostare geom
su errorbar
per una delle chiamate.
Si noti che come R
utilizza un approccio carta e penna, è consigliabile implementare le barre di errore prima di estrarre il tradizionale grafico a scatole sopra la parte superiore.
Utilizzando @ dati fittizi di Roland df
ggplot(df, aes(x=cond, y = value)) +
stat_boxplot(geom ='errorbar') +
geom_boxplot() # shorthand for stat_boxplot(geom='boxplot')
L'aiuto per la stat_boxplot
(?stat_boxplot
) dettaglio i vari valori calcolati e salvati in un data.frame
Grazie per aver dedicato del tempo per spiegare questo! :) – gaelgarcia
come posso ridimensionare queste linee di baffatura se uso 'geom_boxplot (width = .2)'? – Produnis
@ Produnis Per ridimensionare le linee dei baffi aggiungere l'argomento 'stat_params = list (width = 0.5)' all'interno della funzione: 'stat_boxplot'. Vedi il risultato nella mia risposta. – mpalanco
Per ridimensionare i baffi linee che possiamo utilizzare l'argomento width = 0.5
all'interno della funzione: stat_boxplot
set.seed(42)
df <- data.frame(cond = factor(rep(c("A", "B"), each = 500)),
value = c(rnorm(500, mean = 1, sd = 0.2),
rnorm(500, mean = 1.5, sd = 0.1)))
library(ggplot2)
ggplot(df, aes(x = cond, y = value)) +
stat_boxplot(geom = "errorbar", width = 0.5) +
geom_boxplot()
Questo non sembra funzionare per me; Ricevo 'Errore: Parametri sconosciuti: stat_params'. Quale versione di R stai usando? – Will
@Will ho modificato la risposta. La nuova versione di ggplo2 2.0.0 non accetta quell'argomento 'stat_params'. Ora dovrebbe funzionare. – mpalanco
Ottimo, ha funzionato! Grazie! – Will
- 1. websocket + vuejs: sfarfallio dello schermo, codice visibile del baffo
- 2. Devo chiudere le prese da entrambe le estremità?
- 3. Ordinamento di un boxplot basato sul valore mediano
- 4. Boxplot Matplotlib utilizzando le statistiche precalcolate (sommario)
- 5. Come visualizzare tutte le etichette di boxplot
- 6. come mettere DisplayName sul formato ErrorMessage
- 7. Dove mettere le risorse?
- 8. Come confrontare le estremità delle stringhe in C?
- 9. Diagrammi ferroviari: cosa significano le doppie barre alle estremità?
- 10. Dove mettere le classi interne?
- 11. matplotlib: Boxplot di gruppo
- 12. dove mettere le regole del formato dell'ora in Rails 3?
- 13. Aumentare le dimensioni dei nomi di boxplot in R
- 14. Disegno UIBezierPath che sfuma alle estremità (gradiente)
- 15. Boxplot per gruppi?
- 16. Dot-boxplot da DataFrames
- 17. Le estremità dei gradienti sono sfocate quando si utilizzano le misure dei pixel
- 18. panda - problemi di impostazione del colore mediano boxplot
- 19. Highcharts: Visualizza le etichette (min, max, mediana ecc.) Nel boxplot
- 20. Posso ottenere le tacche di boxplot in ggplot2?
- 21. Che cosa significa mettere DataMemberAttribute sul membro dell'interfaccia?
- 22. Rimozione del frame dalla funzione Boxplot() in R
- 23. Boxplot con gruppo di Panda
- 24. Rendering di un baffo parziali più volte con dati diversi
- 25. Come disegnare il boxplot con un livello significativo?
- 26. Boxplot di tabella utilizzando ggplot2
- 27. come mettere le asserzioni nel codice rubino
- 28. Mettere le guide su un database esistente
- 29. Prisma WPF - Dove mettere le risorse?
- 30. ember-cli dove mettere le immagini
si può fare questo calcolando il quantile dove ggplot disegna le linee e disegnare il proprio 'geom_segment' o' geom_crossbar'. vedi [questa domanda] (http://stats.stackexchange.com/questions/8137/how-to-add-horizontal-lines-to-ggplot2-boxplot) – Justin
C'è qualche ragione per cui questo deve essere fatto in ggplot2, e non usare 'boxplot' che fa già quello che vuoi, o è questa domanda di interesse puramente accademico ...? –
@Justin Grazie, ho controllato quella domanda ma è troppo avanzato per me e continuo a ricevere errori, non so quali bit sostituire con cosa, mi dispiace:/ – user1762299