具有发展轨迹的散点图

2024-01-22

我想在下面的图中画出发展轨迹,即点2009和2010应该用带箭头的线连接(指向2010),点2010和2011应该用带箭头的线连接(指向2011) ) 等等 ...

这应该适用于两组。

这是我到目前为止所做的:

library(ggplot2)

x <- c(100, 200, 300, 200, 500, 320, 300, 50)
y <- c(100, 250, 600, 700, 60, 120, 200, 360)
t <- rep(seq(2009,2012),2)
z <- rep(c("A","B"),each=4)

d <- as.data.frame(cbind(z,t,x,y))
d <- d[order(d$z, d$t),]

ggplot(data = d, aes(x = x, y = y, colour = z, label=t)) + 
  geom_line(aes(group = z)) +
  geom_point() +
  geom_text()

我的两个问题是:(1)“错误”的点已连接,(2)箭头丢失。


我必须添加一个额外的列z2 to get ggplot2将每一行视为一个单独的段。否则,仅在每组线段的末尾绘制箭头。代码解释得最好:

library(grid)
library(ggplot2)

x <- c(100, 200, 300, 200, 500, 320, 300, 50)
y <- c(100, 250, 600, 700, 60, 120, 200, 360)
t <- rep(seq(2009,2012),2)
z <- rep(c("A","B"),each=4)
z2 <- LETTERS[1:length(z)]

d <- as.data.frame(cbind(z,z2,t,x,y))
d <- d[order(d$z, d$t),]

ggplot(data = d, aes(x = x, y = y, colour = z2, label=t)) + 
  geom_path(aes(group = z), arrow = arrow(ends = "last")) +
  geom_point() +
  geom_text()

...以及结果

现在你只需要稍微调整一下色阶,或者使用不同的美学z2.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有发展轨迹的散点图 的相关文章

随机推荐