我想创建一个只有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轴画一条完整的线?
答案 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())
特别是,axis.ticks.x = element_blank()
删除了刻度线。其他主题元素不是回答您的问题所必需的,它们只是近似于基本R boxplot()
函数的纯白色背景和黑色边框。
在您的情况下,请使用data = deckung_BS1
,然后指定您的x
和y
变量在您的数据中的任何内容。
有关详细信息,请参阅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)
关键是在实际数据的左右两侧添加空标签。
在评论后修改
如果没有另外指定,则计算轴。请阅读?barplot
了解详情。如果您希望y-axis
以x-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
左右。