inst/doc/rio.plot.R

## -----------------------------------------------------------------------------
library(rioplot)
data(Kenworthy99)
m1 <- lm(scale(dv) ~ scale(gdp) + scale(pov) + scale(tran) -1,data=Kenworthy99)
rp1 <- suppressMessages(rio.plot(m1,include.int="no"))
names(rp1)


## -----------------------------------------------------------------------------
rp1$gg.obj
library(ggplot2)
rp1$gg.obj + scale_x_continuous(limits=c(-.55,1.2))

## -----------------------------------------------------------------------------
rp2 <- rio.plot(m1,r1=1:15,case.names=paste(1:15),include.int="no")
rp2$gg.obj 

## -----------------------------------------------------------------------------
library(dplyr)
Kenworthy99 <- mutate(Kenworthy99,type=c("Liberal","Corp","Liberal",
                                         "SocDem","SocDem","Corp","Corp","Corp","Corp","Corp","SocDem","SocDem",
"Liberal","Liberal","Liberal"))
# Aggregate cases
rp3 <- rio.plot(m1,r1=1:15,group.cases=Kenworthy99$type,include.int="no")
rp3$gg.obj
rp3$gg.obj + scale_x_continuous(limits=c(-.7,1.3))

## -----------------------------------------------------------------------------
rp4 <- rio.plot(m1,r1=1:15,case.names=paste(1:15),include.int="no",
                col.names = paste(1:4))
rp4$gg.obj

## -----------------------------------------------------------------------------
suppressMessages(library(MASS))
data("Hilbe")
Hilbe[,2:ncol(Hilbe)]<-scale(Hilbe[,2:ncol(Hilbe)])

m2<-glm.nb(naffairs~avgmarr + hapavg + vryhap + smerel + vryrel + yrsmarr4 + 
             yrsmarr5 + yrsmarr6,data=Hilbe)
rp5 <- rio.plot(m2,model.type="nb",col.names =c("intercept",
                                                names(m2$model)[c(2:9,1)]))
rp5$gg.obj + scale_x_continuous(limits=c(-.7,.7))

## -----------------------------------------------------------------------------
data(Kenworthy99)
Kenworthy99 <- mutate(Kenworthy99,type=c("Liberal","Corp","Liberal",
                                         "SocDem","SocDem","Corp","Corp","Corp","Corp","Corp","SocDem",
                                         "SocDem","Liberal","Liberal","Liberal"))
m1 <- lm(scale(dv) ~ scale(gdp) + scale(pov) + scale(tran) -1,data=Kenworthy99)
rp6 <- rio.plot(m1,include.int="no",col.names = c("gdp","prepov","tran","POSTPOV"))
# no cases
rp6$gg.obj + 
  scale_x_continuous(limits=c(-2.45,3.25)) + 
  scale_y_continuous(limits=c(-2.2,1.6))
# create data to plot the cases
pdat <- data.frame(x=rp1$row.dimensions[,1],y=rp1$row.dimensions[,2],Kenworthy99)
rp6$gg.obj + 
  scale_x_continuous(limits=c(-2.45,3.25)) + 
  scale_y_continuous(limits=c(-2.2,1.6)) +
  geom_point(data=pdat,aes(x=x,y=y,shape=type,color=type)) + # add the cases
  theme(legend.position = "bottom") +
  labs(shape="")

## -----------------------------------------------------------------------------
data(Kenworthy99)
Kenworthy99 <- mutate(Kenworthy99,type=c("Liberal","Corp","Liberal",
                                         "SocDem","SocDem","Corp","Corp","Corp","Corp","Corp","SocDem",
                                         "SocDem","Liberal","Liberal","Liberal"))
rp7 <- rio.plot(m1,exclude.vars=1:3,include.int="no",col.names = "PRED.POV")
pdat1 <- data.frame(x=rp1$row.dimensions[,1],y=rp1$row.dimensions[,2],Kenworthy99)
# rp7 does not include dimensions for variables that are excluded from the plot
rp8 <- rio.plot(m1,include.int="no")
# can exclude row 4 since y-hat is already plotted
pdat2 <- data.frame(x=rp8$col.dimensions[1:3,1],
                    y=rp8$col.dimensions[1:3,2],
                    varnames=c("GDP","POV","TRAN"))

rp7$gg.obj + 
  scale_x_continuous(limits=c(-2.45,3.25)) + 
  scale_y_continuous(limits=c(-2.2,1.6)) +
  geom_point(data=pdat1,aes(x=x,y=y,shape=type,color=type)) + 
  theme(legend.position = "bottom") +
  labs(shape="") +
  geom_point(data=pdat2,aes(x=x,y=y)) +
  ggrepel::geom_text_repel(data=pdat1,aes(x=x,y=y,
                                          label=tolower(ISO3)),color="grey50") +
  ggrepel::geom_text_repel(data=pdat2,aes(x=x,y=y,label=varnames)) 
 

Try the rioplot package in your browser

Any scripts or data that you put into this service are public.

rioplot documentation built on June 22, 2024, 9:19 a.m.