如何显示所有箱线图标签

19

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

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

我已经搜索了一圈,但仍不能理解我想要跟随的内容。

3个回答

47

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

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)

4
"las" 策略仅限于4个角度。FAQ中的"text( ... , srt= |angle|, xpd=TRUE)"策略可提供360个可能的角度。 - IRTFM

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)

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))

enter image description here


2
为什么这个答案会排在第一位?它的票数最少,也不是被采纳的答案,而且推荐了一个完全不同的绘图工具,对于只想“最小化”解决所描述问题的未来读者来说并没有帮助。 - jessexknight

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接