18

我创建了一个箱线图,左边的数据是连续变量,右边的数据有大约 10 个唯一选项。当我创建箱线图时,我看不到标签。如何让它显示所有标签,可能是垂直的?

boxplot(data$Rate ~ as.factor(data$Purpose))

我环顾四周,无法弄清楚我想要遵循什么。

4

3 回答 3

44

您可以las=2向函数添加参数以boxplot()使所有标签垂直于轴。

df<-data.frame(Rate=rnorm(100),Purpose=rep(letters[1:10],each=10))
boxplot(df$Rate~df$Purpose,las=2)

如果您的标签名称很长,那么您还应该调整绘图边距。

par(mar=c(7,5,1,1))
boxplot(df$Rate~df$Purpose,las=2)
于 2013-02-14T10:40:15.213 回答
8

当您想要精确指定轴标签时,我使用的策略如下:

##Generate a boxplot without axes
boxplot(count ~ spray, data = InsectSprays, axes=FALSE)

##Add in a y-axis
axis(2, seq(0,25, 5), seq(0, 25, 5))

##Add in an x-axis
##las=2 changes the orientation
axis(1, 1:6, paste("Big Label", 1:6), las=2)
于 2013-02-14T10:40:24.597 回答
4

R FAQ 中有一个关于如何在基本图形中旋转轴标签的条目:

http://cran.r-project.org/doc/FAQ/R-FAQ.html#How-can-I-create-rotated-axis-labels_003f

但我个人更喜欢使用ggplot2,这使得它更容易:

data <- data.frame(Rate=rnorm(1:1000),Purpose=sample(c("foo","bar","baz"),1000,replace=TRUE))
ggplot(data, aes(x=factor(Purpose), y=Rate)) + geom_boxplot() + theme(axis.text.x  = element_text(angle=90, vjust=0.5))

在此处输入图像描述

于 2013-02-14T10:40:49.647 回答