Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 我的组合横杆不';我不会闪避,而我的方块图会闪避_R_Ggplot2 - Fatal编程技术网

R 我的组合横杆不';我不会闪避,而我的方块图会闪避

R 我的组合横杆不';我不会闪避,而我的方块图会闪避,r,ggplot2,R,Ggplot2,我希望我的横杆也能闪避,就像我的箱线图一样,在我的示例中它不起作用,任何人都可以解释我做错了什么,或者修复我的代码?我以mtcars为例,并将结果作为一张我的横杆不会闪避的图片 library(ggplot2) mtcars$am = factor(mtcars$am) mtcars$vs = factor(mtcars$vs) cleanup = theme( panel.grid.major = element_blank(), panel.grid.minor = elemen

我希望我的横杆也能闪避,就像我的箱线图一样,在我的示例中它不起作用,任何人都可以解释我做错了什么,或者修复我的代码?我以mtcars为例,并将结果作为一张我的横杆不会闪避的图片

library(ggplot2)

mtcars$am = factor(mtcars$am)
mtcars$vs = factor(mtcars$vs)

cleanup = theme(
  panel.grid.major = element_blank(),
  panel.grid.minor = element_blank(),
  panel.background = element_blank(),
  axis.line = element_line(colour = "black"),
  legend.key = element_rect(fill = "white"),
  text = element_text(size = 10))


p = ggplot(data = mtcars, aes(x = am  , y = mpg, colour = vs)) +
    geom_boxplot(aes(colour = vs)) +
    stat_summary(aes(colour = vs),
                 fun.data = "mean_cl_normal",
                 geom = "crossbar",
                 position = position_dodge(width = 0.90),
                 width = .2,
                 col = "red")

p + 
  cleanup +
  xlab("AM") +
  ylab("Miles per Gallon") +
  scale_colour_manual(name = "VS",
                      values = c("Light Gray", 
                                 "Dark Grey"))
这给了我这个图表:


原因很简单:指定
col=“red”
将覆盖到颜色的
aes
映射。实际上只有一组横杆,因此没有什么可以躲闪的

通过映射到
,可以解决此问题:

  ggplot(mtcars, aes(x = am  , y = mpg, colour = vs)) +
  #geom_boxplot() +
  stat_summary(aes(group = vs),
               fun.data = "mean_cl_normal",
               geom = "crossbar",
               position = position_dodge(width = 0.9),
               width = .2,
               col = "red") 

但是,仅为横杆放弃色标显然不会产生良好的绘图。

对于您的示例来说,一根管道(以及加载dplyr)绝对不是必需的。信不信由你,但仍然有人不使用dplyr。谢谢你的提醒!我的习惯..太好了,你是说我应该用两种不同的颜色做横杆?我尝试了“col=c(“橙色”、“红色”)”,但没有这样做。您需要第二个颜色变量,例如,
aes(color=paste0(vs,1))
,然后在
scale\u color\u手册
中指定其他颜色。