我想在使用时改变胡须的线条粗细stat_boxplot(geom = "errorbar"):
set.seed(42)
df <- data.frame(cond = factor( rep(c("A","B"), each=500) ),
value = c(rnorm(500,mean=1,sd=0.2),rnorm(500, mean=1.5,sd=0.1)))
ggplot(df, aes(x=cond, y=value)) + geom_boxplot(lwd=0.2)
ggplot(df, aes(x=cond, y=value)) +
stat_boxplot(geom = "errorbar",
stat_params = list(width = 0.5,size = 5.0)) +
geom_boxplot(lwd=0.2)
Run Code Online (Sandbox Code Playgroud)
在第二个图中lwd=0.2改变了框中线条的粗细,但是胡须保持不变.
谢谢@ eipi10,
ggplot(df, aes(x=cond, y=value)) + stat_boxplot(geom = "errorbar",
width = 0.5, size=0.2) + geom_boxplot(lwd=0.2)
Run Code Online (Sandbox Code Playgroud)
你的解决方案会改变晶须线的粗细,但它会使端部的水平线与盒子一样宽,而不是一半(宽度= 0.5).
但是使用
ggplot(df, aes(x=cond, y=value)) + stat_boxplot(geom ="errorbar",
stat_params = list(width = 0.5), size=0.2) + geom_boxplot(lwd=0.2)
Run Code Online (Sandbox Code Playgroud)
要么
ggplot(df, aes(x=cond, y=value)) + stat_boxplot(geom = "errorbar",
stat_params = list(width = 0.5, size=0.2)) + geom_boxplot(lwd=0.2)
Run Code Online (Sandbox Code Playgroud)
那么胡须的宽度是盒子的一半,但它们的线条粗细是默认的厚度比盒子的线条宽.
换句话说,我不能同时改变线条的粗细和胡须的宽度.
我用这两段代码得到了相同的结果(两者都没有stat_params)
ggplot(df, aes(x=cond, y=value)) + stat_boxplot(geom = "errorbar",
width=0.5, size=5) + geom_boxplot(lwd=0.2)
ggplot(df, aes(x=cond, y=value)) + stat_boxplot(geom = "errorbar",
width=0.2, size=5) + geom_boxplot(lwd=0.2)
Run Code Online (Sandbox Code Playgroud)
何塞
如果我理解你的问题,我认为这就是你要找的:
ggplot(df, aes(x=cond, y=value)) +
stat_boxplot(geom = "errorbar", width=0.5, size=5) +
geom_boxplot(lwd=0.2)
Run Code Online (Sandbox Code Playgroud)
这是两个不同width设置的结果: