在R中的多个点之间的图中添加多个线段

时间:2018-02-28 08:56:22

标签: r plot ggplot2

我正在使用geom_segment在R中的绘图上添加线段。因为我需要添加许多线段(总共80个),所以我似乎无法使用“+”添加更多行。是否由于R中的层数有限?无论如何,我想知道是否有任何方法可以在图中添加这80个线段。

以下是我在剧情中使用的代码:

ggplot(df_var_g1,aes(Name,PrePost, fill=type)) + 
  geom_bar(colour="black", width=0.7, stat="identity",position=position_dodge(width=0.8)) + 
  scale_fill_manual(values=c("#F6D3D1","#C9CFE9")) + 
  geom_segment(aes(x = 0.8, y = 0.8525, xend = 1.2, yend = 0.8665, colour = 'b'),size=1) + 
  geom_segment(aes(x = 1.8, y = 0.8525, xend = 2.2, yend = 0.8665, colour = 'c'),size=1) + 
  geom_segment(aes(x = 2.8, y = 0.8525, xend = 3.2, yend = 0.8665, colour = 'c'),size=1) +
  geom_segment(aes(x = 3.8, y = 0.8525, xend = 4.2, yend = 0.8665, colour = 'c'),size=1) + 
  geom_segment(aes(x = 4.8, y = 0.8525, xend = 5.2, yend = 0.8665, colour = 'c'),size=1) + 
  geom_segment(aes(x = 5.8, y = 0.8525, xend = 6.2, yend = 0.8665, colour = 'c'),size=1) +
  ...(perhaps 80 geom_segment here...) + 
  scale_color_manual(values=c("#FF6666","#0000FF")) + 
  geom_errorbar(aes(ymin=SDmin, ymax=SDmax), width=.1, position=position_dodge(1)) + 
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(), axis.line = element_line(colour = "black"), axis.ticks.length=unit(-0.15, "cm"), axis.text.x = element_text(margin=margin(15,5,10,5,"pt")), axis.text.y = element_text(margin=margin(5,8,10,5,"pt"))) + 
  coord_cartesian(ylim=c(0.7,1.0))

情节如下: my plot

任何人都可以解决问题吗?或者只是摆脱geom_segment。我只想添加80行...非常感谢!

1 个答案:

答案 0 :(得分:0)

请勿使用geom_segment - 将geom_line与群体美学结合使用。您需要在数据框中使用一列来标识要配对的点; geom_line可以连接来自该列具有相同值的行的点

ggplot(df_var_g1, aes(Name,PrePost, fill=type)) + 
    geom_bar(colour="black", width=0.7, 
        stat="identity",position=position_dodge(width=0.8)) + 
    scale_fill_manual(values=c("#F6D3D1","#C9CFE9")) + 
    # draw lines connecting points with the same value in group_column
    geom_line(aes(group_by = group_column)) 
相关问题