Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.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 geom_线未链接其应与ggplot中绘制的错误条_R_Ggplot2 - Fatal编程技术网

R geom_线未链接其应与ggplot中绘制的错误条

R geom_线未链接其应与ggplot中绘制的错误条,r,ggplot2,R,Ggplot2,我已经准备好了以下数据集来绘制错误条形图和线条图 > growth treatment class variable N value sd se ci 1 elevated Dominant RBAI2012 18 0.014127713 0.009739951 0.002295728 0.004843564 2 elevated Dominant RBAI2013 18 0.0218

我已经准备好了以下数据集来绘制错误条形图和线条图

> growth
   treatment       class variable  N       value          sd          se          ci
1   elevated    Dominant RBAI2012 18 0.014127713 0.009739951 0.002295728 0.004843564
2   elevated    Dominant RBAI2013 18 0.021869978 0.013578741 0.003200540 0.006752549
3   elevated  Codominant RBAI2012 40 0.011564725 0.013718591 0.002169100 0.004387418
4   elevated  Codominant RBAI2013 41 0.011471512 0.011091167 0.001732149 0.003500804
5   elevated Subordinate RBAI2012 24 0.004419784 0.009286883 0.001895677 0.003921507
6   elevated Subordinate RBAI2013 24 0.004397105 0.008704831 0.001776866 0.003675728
7    ambient    Dominant RBAI2012 13 0.025836265 0.011880315 0.003295007 0.007179203
8    ambient    Dominant RBAI2013 13 0.025992636 0.015162901 0.004205432 0.009162850
9    ambient  Codominant RBAI2012 26 0.018067329 0.011830940 0.002320238 0.004778620
10   ambient  Codominant RBAI2013 26 0.015595275 0.012467140 0.002445007 0.005035587
11   ambient Subordinate RBAI2012 33 0.006073904 0.008287442 0.001442658 0.002938599
12   ambient Subordinate RBAI2013 35 0.003239033 0.006846507 0.001157271 0.002351857
我尝试了以下代码,生成了此图:

p <- ggplot(growth,aes(class,value,colour=treatment,group=variable))
pd<-position_dodge(.9)
# se= standard error; ci=confidence interval
p + geom_errorbar(aes(ymin=value-se,ymax=value+se),width=.1,position=pd,colour="black") + geom_point(position=pd,size=4) + geom_line(position=pd) + 
  theme_bw() + theme(legend.position=c(1,1),legend.justification=c(1,1))

p一个选项是使用像这样的小平面图:

p <- ggplot(growth, aes(x = class, y = value, group = treatment, color = treatment))
p + geom_point(size = 4) + facet_grid(. ~ variable) + geom_errorbar(aes(ymin=value-se,ymax=value+se),width=.1,colour="black") + geom_line()

p一个选项是使用像这样的小平面图:

p <- ggplot(growth, aes(x = class, y = value, group = treatment, color = treatment))
p + geom_point(size = 4) + facet_grid(. ~ variable) + geom_errorbar(aes(ymin=value-se,ymax=value+se),width=.1,colour="black") + geom_line()

p您有太多的分组变量(
variable
treatment
),将它们包含在单个绘图中可能会有点混乱。您可能希望使用镶嵌面,如下所示:

p <- ggplot(growth,aes(class,value,colour=treatment,group=treatment))
pd<-position_dodge(.9)
p + 
  geom_errorbar(aes(ymin=value-se,ymax=value+se),width=.1,position=pd,colour="black") +
  geom_point(position=pd,size=4) + geom_line(position=pd) + 
  theme_bw() + theme(legend.position=c(1,1),legend.justification=c(1,1)) +
  facet_grid(variable~treatment)

p您有太多的分组变量(
variable
treatment
),将它们包含在单个绘图中可能会有点混乱。您可能希望使用镶嵌面,如下所示:

p <- ggplot(growth,aes(class,value,colour=treatment,group=treatment))
pd<-position_dodge(.9)
p + 
  geom_errorbar(aes(ymin=value-se,ymax=value+se),width=.1,position=pd,colour="black") +
  geom_point(position=pd,size=4) + geom_line(position=pd) + 
  theme_bw() + theme(legend.position=c(1,1),legend.justification=c(1,1)) +
  facet_grid(variable~treatment)

p这是可能的,但是你需要破解它,因为你基本上是在不同的分组(变量+处理)上绘制
geom_线()
,而不是在
geom_点()
geom_errorbar()调用上绘制

您需要使用
ggplot\u build()
获取渲染数据,并根据现有点数据绘制一条
geom\u线()
,按颜色分组:

p <- ggplot(growth)          # move the aes() into the individual charts
pd<-position_dodge(.9)       # leave dodge as is
se<-0.01                     # faked this

p <- p + 
  geom_point(aes(x=factor(class),y=value,colour=treatment,group=variable),position=pd,size=4) +
  theme_bw() + theme(legend.position=c(1,1),legend.justification=c(1,1)) +
  geom_errorbar(aes(x=factor(class),ymin=value-se,ymax=value+se,colour=treatment,group=variable),position=pd,width=.1,colour="black")

b<-ggplot_build(p)$data[[1]]  # get the ggpolt rendered data for this panel

p + geom_line(data=b,aes(x,y,group=colour), color=b$colour) # plot the lines

p这是可能的,但是你需要破解它,因为你基本上是在不同的分组(变量+处理)上绘制
geom_线()
,而不是在
geom_点()
geom_errorbar()调用上绘制

您需要使用
ggplot\u build()
获取渲染数据,并根据现有点数据绘制一条
geom\u线()
,按颜色分组:

p <- ggplot(growth)          # move the aes() into the individual charts
pd<-position_dodge(.9)       # leave dodge as is
se<-0.01                     # faked this

p <- p + 
  geom_point(aes(x=factor(class),y=value,colour=treatment,group=variable),position=pd,size=4) +
  theme_bw() + theme(legend.position=c(1,1),legend.justification=c(1,1)) +
  geom_errorbar(aes(x=factor(class),ymin=value-se,ymax=value+se,colour=treatment,group=variable),position=pd,width=.1,colour="black")

b<-ggplot_build(p)$data[[1]]  # get the ggpolt rendered data for this panel

p + geom_line(data=b,aes(x,y,group=colour), color=b$colour) # plot the lines

p为了区分不同级别的“变量”,您可以引入第四个
aes
stetic:
shape
。首先定义一个新的分组变量,“治疗”和“变量”的组合,它有四个级别。将组、颜色和形状映射到此变量。然后使用
scale\u color\u manual
scale\u shape\u manual
设置两级颜色,对应于两级“治疗”。同样,定义两个“可变”形状

growth$grp <- paste0(growth$treatment, growth$variable)

ggplot(data = growth, aes(x = class, y = value, group = grp,
                      colour = grp, shape = grp)) +
  geom_point(size = 4, position = pd) +
  geom_line(position = pd) +
  geom_errorbar(aes(ymin = value - se, ymax = value + se), colour = "black",
                position = pd, width = 0.1) +
  scale_colour_manual(name = "Treatment:Variable",
                      values = c("red", "red","blue", "blue")) +
  scale_shape_manual(name = "Treatment:Variable",
                     values = c(19, 17, 19, 17))
  theme_bw() +
  theme(legend.position = c(1,1), legend.justification = c(1,1))

growth$grp为了区分不同级别的“变量”,您可以引入第四个
aes
stetic:
shape
。首先定义一个新的分组变量,“治疗”和“变量”的组合,它有四个级别。将组、颜色和形状映射到此变量。然后使用
scale\u color\u manual
scale\u shape\u manual
设置两级颜色,对应于两级“治疗”。同样,定义两个“可变”形状

growth$grp <- paste0(growth$treatment, growth$variable)

ggplot(data = growth, aes(x = class, y = value, group = grp,
                      colour = grp, shape = grp)) +
  geom_point(size = 4, position = pd) +
  geom_line(position = pd) +
  geom_errorbar(aes(ymin = value - se, ymax = value + se), colour = "black",
                position = pd, width = 0.1) +
  scale_colour_manual(name = "Treatment:Variable",
                      values = c("red", "red","blue", "blue")) +
  scale_shape_manual(name = "Treatment:Variable",
                     values = c(19, 17, 19, 17))
  theme_bw() +
  theme(legend.position = c(1,1), legend.justification = c(1,1))
growth$grp