R ggplot2 : join two sections of a line graph together

标签 r ggplot2

我需要在 ggplot 中将折线图的两个部分连接在一起,但我不知道正确的代码。

数据集:

Life_stage2 Year    d15N2
A   2002.5  1
A   2002    2
A   2001.5  4
A   2001    6
A   2000.5  5
A   2000    NA
A   1999.5  9
A   1999    2
A   1998.5  3
A   1998    4
B   1997.5  7
B   1997    8
C   1996    5
C   1995    6
C   1994.5  7
C   1994    2

我的代码:

nmmaps<-read.csv("testing.csv", as.is=T)

ggplot(nmmaps, aes(Year, d15N2, colour=factor(Life_stage2), group=Life_stage2)) +
                   geom_point() +
                   geom_line()

enter image description here

基本上,我希望有

  1. 1999.5 和 2000.5 之间有差距,但 1996 和 1997 年以及 1997.5 和 1998 之间没有差距。
  2. 1996-97 间隙的线条颜色应与 1996 年之前的部分颜色相同,1997.5-98 间隙的线条颜色应与 1998 年之后的部分颜色相同。

我需要使用什么代码才能实现这一点?或者,我可以在数据表中添加一些内容以使 R 认为那里有数据吗?

数据

nmmaps <- 
structure(list(Life_stage2 = structure(c(1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 3L, 3L, 3L, 3L), .Label = c("A", 
"B", "C"), class = "factor"), Year = c(2002.5, 2002, 2001.5, 
2001, 2000.5, 2000, 1999.5, 1999, 1998.5, 1998, 1997.5, 1997, 
1996, 1995, 1994.5, 1994), d15N2 = c(1L, 2L, 4L, 6L, 5L, NA, 
9L, 2L, 3L, 4L, 7L, 8L, 5L, 6L, 7L, 2L)), .Names = c("Life_stage2", 
"Year", "d15N2"), class = "data.frame", row.names = c(NA, -16L
))

最佳答案

通常最好更改数据,以便更容易绘制。您可以保留现在的绘图命令,只需向数据添加两行即可。

df <- rbind(data.frame(Life_stage2 = c('C', 'A'), 
                       Year = c(1997, 1997.5), 
                       d15N2 = c(8, 7)), 
            nmmaps)

ggplot(df, aes(Year, d15N2, colour=Life_stage2)) +
  geom_point() +
  geom_line()

关于R ggplot2 : join two sections of a line graph together,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28059951/

相关文章:

ggplot2 - 使用 ggarrange 添加行和列标题

r - ggplot2:使用不同比例的构面进行构面时,箱线图宽度不正确

r - bquote轴标签ggplot2中的换行符和上标

r - 在 R 图中使用图像作为区域填充

r - 数据表 {DT} : How to format columns in PDF export?

r - ggplot2 用颜色非线性调整比例

r - 当 RStudio 绘图 Pane 处于事件状态时,ggsave() 中绘图的缩放比例不同

r - 如何在字符串中使用 Shiny 输入来实现 react 函数并作为观察事件的条件

r - 使用 tuber 包提取 youtube 数据

跨 NA 和 NULL 行回滚 xts