2

以下のプロットで発達の軌跡を描きたいと思います。つまり、点 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()

ここに画像の説明を入力

私の2つの問題は、(1)「間違った」ポイントが接続されていることと(2)矢印の頭が欠落していることです。

4

1 に答える 1

4

各行を個別のセグメントとして表示するには、列z2を追加する必要がありました。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ます。

于 2013-04-24T20:15:55.063 に答える