Nel follow-up della discussione sulla stackexchange ho cercato di implementare il seguente graficoCome per tracciare valori assoluti e le differenze tra gli intervalli di confidenza
da
Cumming, G., & Finch, S. (2005). [Inferenza dell'occhio: intervalli di confidenza e come leggere le immagini dei dati] [5]. Psicologo americano, 60 (2), 170-180. doi: 10.1037/0003-066X.60.2.170
Condivido l'antipatia di alcune persone del doppio asse, ma penso che sia un uso corretto.
Sotto il mio tentativo parziale, manca ancora il secondo asse. Sto cercando alternative più eleganti, sono benvenute variazioni intelligenti.
library(lattice)
library(latticeExtra)
d = data.frame(what=c("A","B","Difference"),
mean=c(75,105,30),
lower=c(50,80,-3),
upper = c(100,130,63))
# Convert Differences to left scale
d1 = d
d1[d1$what=="Difference",-1] = d1[d1$what=="Difference",-1]+d1[d1=="A","mean"]
segplot(what~lower+upper,centers=mean,data=d1,horizontal=FALSE,draw.bands=FALSE,
lwd=3,cex=3,ylim=c(0,NA),pch=c(16,16,17),
panel = function (x,y,z,...){
centers = list(...)$centers
panel.segplot(x,y,z,...)
panel.abline(h=centers[1:2],lty=3)
})
## How to add the right scale, close to the last bar?
Nel codice, penso che sia necessario caricare il pacchetto 'latticeExtra' per ottenere la funzione' segplot() '. – smillig
Grazie, corretto. –