R - Boxplot x轴没有刻度和完整

时间:2018-05-26 17:01:00

标签: r boxplot

我想创建一个只有x轴没有刻度的箱线图,并且完全像这个例子那样绘制: target

到目前为止,我可以创建这样的东西: current situation

电话看起来像这样:

#load data
deckung_BS1 <- read.csv(file.choose(), header=T, sep=';', check.names = FALSE)

#draw boxplot without x-axis
boxplot(deckung_BS1, main="Deckung Baumschicht 1", ylab="Deckung [%]", boxwex=.5, xaxt='n', frame=FALSE)

#put x-axis without ticks
axis(side = 1,at = 1:3,labels=c("1960 (n=19)", "2002 (n=19)", "2012 (n=19)"),lwd.ticks = FALSE)

所以问题是如何在没有刻度的情况下为x轴画一条完整的线?

2 个答案:

答案 0 :(得分:1)

这是一个ggplot解决方案:

library(ggplot2) 

ggplot(data = mpg, aes(x = class, y = hwy)) + 
  geom_boxplot() +
  theme(panel.grid = element_blank(),
        panel.background = element_blank(),
        panel.border = element_rect(colour = "black", fill=NA, size=1),
        axis.ticks.x = element_blank())

boxplot

特别是,axis.ticks.x = element_blank()删除了刻度线。其他主题元素不是回答您的问题所必需的,它们只是近似于基本R boxplot()函数的纯白色背景和黑色边框。

在您的情况下,请使用data = deckung_BS1,然后指定您的xy变量在您的数据中的任何内容。

有关详细信息,请参阅geom_boxplot()文档。

答案 1 :(得分:1)

这是一个base R解决方案:

boxplot(data.frame(a = rnorm(10), b = rnorm(10), c = rnorm(10)), xaxt='n', frame=FALSE)
axis(side = 1,at = 0:4,labels=c("", "a", "b", "c", ""),lwd.ticks = FALSE)

enter image description here

关键是在实际数据的左右两侧添加空标签。

在评论后修改

如果没有另外指定,则计算轴。请阅读?barplot了解详情。如果您希望y-axisx-axis结尾,则必须指定比x-axis“更低”的范围。

set.seed(2)
boxplot(data.frame(a = rnorm(10), b = rnorm(10), c = rnorm(10)), xaxt='n', yaxt='n', frame=FALSE)
axis(side = 1,at = 0:4,labels=c("", "a", "b", "c", ""),lwd.ticks = FALSE)
axis(side = 2,at = -3:2)

请注意,y-axis的“范围”设置为-3:2,而数据(以及绘图区域的结尾位于-2左右。

enter image description here

相关问题