Rotation de la grille pour tracer les barres d'erreurs horizontales avec hmisc :: xypllot en r

StackOverflow https://stackoverflow.com/questions/6392266

  •  29-10-2019
  •  | 
  •  

Question

J'utilise XYPLOT pour tracer mes résultats de régressions avec des barres d'erreur. Cependant, XYPLOT ne trace que des barres d'erreur horizontales, et j'ai besoin de barres d'erreur verticales. En cherchant une solution, j'ai trouvé ce fil où quelqu'un a posé à peu près la même question. Après quelques messages, l'utilisateur qui a posé la question indique que "je viens de découvrir que l'utilisation du XYPLOT (HMISC) et la rotation de la fenêtre de grille (et les étiquettes, etc.) me donnaient exactement ce dont j'ai besoin".

J'ai donc regardé comment faire pivoter la grille et j'ai trouvé que l'utilisation de la bibliothèque de la grille et de pushViewport, etc. Vous pouvez faire pivoter la grille. Cependant, mon code ne fonctionne pas. Voici ce que j'ai essayé jusqu'à présent:

estimate=structure(list(coefi = c(-5.08608456607495, -4.17906898422091, 
-2.85696514398422, -3.06968196245069, -2.73660002514793, -1.0017403629931, 
-1.66291850690335, 0.431265159072978, -0.472895611533531, 0.845421348865878, 
-0.437434919008876, 0.269041451577909, -0.233066564595661, 0.0137190330621302, 
-2.94808159763314, 1.9166875739645), lower = c(-8.1895, -6.8485, 
-5.214125, -5.532875, -5.106625, -3.271625, -3.97375, -0.09773, 
-1.340625, 0.415125, -0.86615, 0.02665125, -0.5861, -2.079, -5.626625, 
0.8115125), upper = c(-2.11475, -1.611125, -0.5602375, -0.7309625, 
-0.3721375, 1.259875, 0.7167875, 0.9672875, 0.39035, 1.30025, 
-0.05634125, 0.5115, 0.07237875, 2.14275, -0.3653, 4.202625), 
x = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 
16)), .Names = c("coefi", "lower", "upper", "x"), row.names = c("alpha.1.", 
"alpha.2.", "alpha.3.", "alpha.4.", "alpha.5.", "alpha.6.", "alpha.7.", 
"b.income", "b.democracy", "b.ginete", "b.educ", "b.patent", 
"b.fdi", "b.0", "mu.alpha", "sigma.alpha"), class = "data.frame")

legenda=c(as.character(seq(1970,2000,5)),"PIB_pc", "democ",  "legis", "educ", "patent", "FDI",  "b.0", "mu.ano", "var.ano" )

grid.newpage()
pushViewport(viewport(angle = 90, name = "VP"))
upViewport() 
xYplot(Cbind(coefi,lower, upper) ~x, data=estimate, , varwidth = TRUE, ylab="Betas",
xlab="Inclinação das Covariáveis com respectivos 95% intervalos de credibilidade \n N=409",
ylim=with(estimate,c(min(lower)-.5, max(upper)+.5)),  scales=list(cex=1.2, x = list(at=seq(1,16,     by=1), labels = legenda)) ,abline=c(list(h=0), lty="dotted", col= "grey69"), xlab.top="Adesão ao Tratado de Cooperação de Patentes, 1970-2000", draw.in = "VP")

J'appréciais toute aide.

MISE À JOUR: Il y avait des commentaires soulignant que le code était correct. Alors je me demande si je ne peux pas communiquer ce que je veux ou si c'est un bug ... donc je publierai une image de la sortie de mon code en ce moment et vous me dites si le code de votre ordinateur Donne la même sortie ou une autre:

enter image description here

Était-ce utile?

La solution

Vous devez appeler directement print Sur l'objet réseau (il est mentionné dans la documentation de la grille RShowDoc("grid", package="grid") - "Ajouter du réseau à la grille"):

require(grid)
grid.newpage()
pushViewport(viewport(angle = 90, name = "VP"))

print(
    xYplot(Cbind(coefi,lower, upper)~x, data=estimate, , varwidth = TRUE,
        ylab="Betas", xlab="Inclinaçao das Covariáveis com respectivos 95% intervalos de credibilidade \n N=409",
        ylim=with(estimate,c(min(lower)-.5, max(upper)+.5)),
        scales=list(cex=1.2, x = list(at=seq(1,16,by=1), labels = legenda)),
        abline=c(list(h=0), lty="dotted", col= "grey69"),
        xlab.top="Adesao ao Tratado de Cooperaçao de Patentes, 1970-2000",
        draw.in = "VP"
    ),
    newpage=FALSE
)

Rotated xYplot

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top