我有一个图,其中 x 轴是标签长的一个因素。虽然可能不是理想的可视化效果,但现在我想简单地将这些标签旋转为垂直。我已经用下面的代码弄清楚了这部分,但是正如您所看到的,标签并不完全可见。
data(diamonds)
diamonds$cut <- paste("Super Dee-Duper",as.character(diamonds$cut))
q <- qplot(cut,carat,data=diamonds,geom="boxplot")
q + opts(axis.text.x=theme_text(angle=-90))
将最后一行更改为
q + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
默认情况下,即使旋转,轴也将在文本的中心对齐。当您旋转 +/- 90 度时,通常希望它在边缘对齐:
上面的图片来自此博客文章。
coord_flip()
data(diamonds)
diamonds$cut <- paste("Super Dee-Duper",as.character(diamonds$cut))
qplot(cut, carat, data = diamonds, geom = "boxplot") +
coord_flip()
str_wrap()
# wrap text to no more than 15 spaces
library(stringr)
diamonds$cut2 <- str_wrap(diamonds$cut, width = 15)
qplot(cut2, carat, data = diamonds, geom = "boxplot") +
coord_flip()
在数据科学 R 的第 3.9 章中,Wickham 和 Grolemund 谈到了这个确切的问题:
coord_flip()
切换 x 和 y 轴。如果要水平框线图,这很有用(例如)。这对于长标签也很有用:在不重叠 x 轴的情况下很难使它们适应。
要使刻度标签上的文本完全可见并以与 y 轴标签相同的方向读取,请将最后一行更改为
q + theme(axis.text.x=element_text(angle=90, hjust=1))