2 votes

Suppression du cadre et de l'en-tête de rotation sur la sortie de plotreg()

J'utilise plotreg() de la texreg pour afficher les estimations de coefficients et d'IC, mais je constate que je n'ai pas été en mesure de reproduire une sortie graphique avec une mise en page similaire à celles réalisées par d'autres. Par exemple, en utilisant l'exemple de travail aquí :

# install.packages("texreg")
library(texreg)

# load example data
library(car)
prestige.dat <- data.frame(Prestige)

# standardizing the data
pres_mean <- mean(prestige.dat$prestige, na.rm = TRUE)
pres_sd <- sd(prestige.dat$prestige, na.rm = TRUE)
prestige.dat$prestige.std <- (prestige.dat$prestige - pres_mean) / pres_sd

inc_mean <- mean(prestige.dat$income, na.rm = TRUE)
inc_sd <- sd(prestige.dat$income, na.rm = TRUE)
prestige.dat$income.std <- (prestige.dat$income - inc_mean) / inc_sd

educ_mean <- mean(prestige.dat$education, na.rm = TRUE)
educ_sd <- sd(prestige.dat$education, na.rm = TRUE)
prestige.dat$education.std <- (prestige.dat$education - educ_mean) / educ_sd

# standardized regression
mod.std <- lm(prestige.std ~ income.std + education.std, data = prestige.dat)

# plot
plotreg(list(mod.std),
          custom.coef.names = c("Intercept", "Income", "Education"),
          custom.model.names = c("Model"),
          reorder.coef = c(2, 3, 1),
          lwd.vbars = 0)

En principe, je devrais produire quelque chose comme ça.

enter image description here

Mais j'ai eu ceci à la place enter image description here

Je me demande s'il y a un moyen de retirer le cadre extérieur de mon plotreg et mettre le titre ( Model ) sur le dessus du graphique (au lieu de le placer verticalement sur l'axe des y de gauche du graphique) ?

Il se peut aussi que les auteurs du paquet aient radicalement modifié le paramètre par défaut, de sorte que la disposition utilisée dans l'exemple de travail n'est plus disponible.

UPDATE

En suivant la recommandation de @IRTFM (changer le traçage theme() ), j'ai pu faire en sorte que la sortie graphique ressemble beaucoup à l'exemple de travail. Ainsi, le cadre a été supprimé et le titre principal se trouve maintenant au-dessus du graphique, mais je n'ai toujours pas pu définir la barre verticale de référence 0 comme une ligne solide (j'ai essayé d'utiliser la fonction [ref.line.par][4] argument dans coefplot() mais cela n'a pas fonctionné)

J'ai utilisé le code suivant :

plt <- plotreg(list(mod.std),
          custom.coef.names = c("Intercept", "Income", "Education"),
          custom.model.names = c("Model"),
          reorder.coef = c(2, 3, 1),
          lwd.vbars = 0)

library(ggplot2)
plt + ggtitle("Model") + 
      theme(panel.border=element_blank(),               strip.text=element_text(size=12, colour="transparent"), strip.background=element_rect(colour="transparent", fill="transparent"), plot.title = element_text(hjust = 0.5))

Le résultat ressemble à ceci

enter image description here

2voto

BondedDust Points 105234

Ça ressemble à une parcelle de treillis pour moi. Il existe trois grands paradigmes de traçage : base, lattice et ggplot. Si vous exécutez :

plt <- plotreg(  list(mod.std),
     custom.coef.names = c("Intercept", "Income", "Education"),
     custom.model.names = c(""),
     reorder.coef = c(2, 3, 1),
     lwd.vbars = 0)

str(plt)

... vous voyez à la toute fin du résultat

 # much above
 attr(*, "class")= chr [1:2] "gg" "ggplot"

Donc j'ai tort. C'est un ggplot, donc vous devez regarder les paramètres du thème et trouver comment a) se débarrasser de la boîte et de la grille, b) arrondir les barres de l'IC, et c) se débarrasser de la bande "Modèle" orientée vers l'y, alias étiquette "facette".

Recherche :

a) https://stackoverflow.com/questions/10861773/remove-grid-background-color-and-top-and-right-borders-from-ggplot2?r=SearchResults&s=1|84.3914

b) le changement $ lineend : chr "butt"` # à arrondir (Ne fonctionne pas)

$ theme      :List of 93
..$ line                      :List of 6
.. ..$ colour       : chr "black"
.. ..$ size         : num 0.5
.. ..$ linetype     : num 1
.. ..$ lineend      : chr "butt"

c) se débarrasser de l'étiquette de facette :

plt +theme(panel.border=element_blank(),
           strip.text=element_text(size=12, colour="transparent"),
           strip.background=element_rect(colour="transparent", 
                                         fill="transparent"))

J'ai donc piraté la plupart d'entre eux et je peux aller aussi loin :

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X