在ggplot2中旋转和分隔轴标签

我有一个情节,其中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, hjust = 1))

默认情况下,即使在旋转的情况下,轴也会在文本的中心对齐。 当你旋转+/- 90度时,你通常希望它在边缘对齐:

上面的图片来自这篇博客文章。


要使刻度标签上的文本完全可见并以与y轴标签相同的方向读取,请将最后一行更改为

q + theme(axis.text.x=element_text(angle=90, hjust=1))

使用+ coord_flip()

在“R for Data Science”中,Wickham和Grolemund谈到了这个确切的问题。 在第3.8章“位置调整”中,他们写道:

coord_flip()切换x和y轴。 这很有用(例如),如果你想要水平箱形图。 这对长标签也很有用:很难让它们在x轴上不重叠的情况下适合。

将这个应用于你的情节,我们只需+ coord_flip()添加到ggplot中:

data(diamonds)
diamonds$cut <- paste("Super Dee-Duper",as.character(diamonds$cut))

qplot(cut,carat,data = diamonds, geom = "boxplot") +
  coord_flip()

在这里输入图像描述

现在超长的标题横向分布并且非常容易阅读!

链接地址: http://www.djcxy.com/p/30841.html

上一篇: Rotating and spacing axis labels in ggplot2

下一篇: r