# Flip the script, or, the joys of coord_flip()

**Minding the Brain**, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

I hate it when the labels on the x-axis overlap, but this can be hard to avoid. I can stretch the figure out, but then the data become farther apart and the space where I want to put the figure (either in a talk or a paper) may not accommodate that. I’ve never liked turning the labels diagonally, so recently I’ve started using coord_flip() to switch the x- and y-axes:

ggplot(chickwts, aes(feed, weight)) + stat_summary(fun.data=mean_se, geom=”pointrange”) + coord_flip()

It took a little getting used to, but I think this works well. It’s especially good for factor analyses (where you have many labeled items):

library(psych)

pc <- principal(Harman74.cor$cov, 4, rotate="varimax")

loadings <- as.data.frame(pc$loadings[, 1:ncol(pc$loadings)])

loadings$Test <- rownames(loadings)

ggplot(loadings, aes(Test, RC1)) + geom_bar() + coord_flip() + theme_bw(base_size=10)

It also works well if you want to plot parameter estimates from a regression model (where the parameter names can get long):

library(lme4)

m <- lmer(weight ~ Time * Diet + (Time | Chick), data=ChickWeight, REML=F)

coefs <- as.data.frame(coef(summary(m)))

colnames(coefs) <- c("Estimate", "SE", "tval")

coefs$Label <- rownames(coefs)

ggplot(coefs, aes(Label, Estimate)) + geom_pointrange(aes(ymin = Estimate – SE, ymax = Estimate + SE)) + geom_hline(yintercept=0) + coord_flip() + theme_bw(base_size=10)

**leave a comment**for the author, please follow the link and comment on their blog:

**Minding the Brain**.

R-bloggers.com offers

**daily e-mail updates**about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.