R ggplot2:将折线图的两个部分连接在一起
R ggplot2: join two sections of a line graph together
我需要在 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()
基本上,我希望有
- 1999.5 和 2000.5 之间存在差距,但 1996 和 1997 以及 1997.5 和 1998 之间没有差距。
- 1996-97 年差距线的颜色应与 1996 年之前的部分颜色相同,1997.5-98 年差距线的颜色应与 1998 年之后的部分颜色相同。
我需要使用什么代码才能做到这一点?或者,我可以在数据 sheet 中添加一些内容,让 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()
我需要在 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()
基本上,我希望有
- 1999.5 和 2000.5 之间存在差距,但 1996 和 1997 以及 1997.5 和 1998 之间没有差距。
- 1996-97 年差距线的颜色应与 1996 年之前的部分颜色相同,1997.5-98 年差距线的颜色应与 1998 年之后的部分颜色相同。
我需要使用什么代码才能做到这一点?或者,我可以在数据 sheet 中添加一些内容,让 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()