我想在使用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)

在第二个图中,lwd=0.2更改了框中线条的粗细,但晶须保持不变。

r - 如何使用stat_boxplot(geom =  “errorbar”)更改晶须的线宽-LMLPHP r - 如何使用stat_boxplot(geom =  “errorbar”)更改晶须的线宽-LMLPHP

更新

谢谢@ eipi10,
ggplot(df, aes(x=cond, y=value)) + stat_boxplot(geom = "errorbar",
    width = 0.5, size=0.2) + geom_boxplot(lwd=0.2)

您的解决方案更改了晶须线的粗细,但使其末端的水平线与框一样宽,而不是框的一半(宽度= 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)

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

则晶须的宽度是预期的框的一半,但其线粗是默认的,比框的线粗。

换句话说,我不能同时更改线条的粗细和晶须的宽度。

更新两个

使用这两段代码,我得到的结果相同(都没有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)

r - 如何使用stat_boxplot(geom =  “errorbar”)更改晶须的线宽-LMLPHP r - 如何使用stat_boxplot(geom =  “errorbar”)更改晶须的线宽-LMLPHP

约瑟

最佳答案

如果我了解您的问题,我认为这是您要寻找的内容:

ggplot(df, aes(x=cond, y=value)) +
  stat_boxplot(geom = "errorbar", width=0.5, size=5) +
  geom_boxplot(lwd=0.2)

这是使用两种不同的width设置的结果:

r - 如何使用stat_boxplot(geom =  “errorbar”)更改晶须的线宽-LMLPHP

关于r - 如何使用stat_boxplot(geom = “errorbar”)更改晶须的线宽,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32550204/

10-10 15:06