特定の列の値に基づいてggplot内のポイントを接続する

私は t という以下のデータセットを持っています:

n <- 12
t <- data.frame(
  V1    = runif(n, 0.12, 0.35),
  V2    = runif(n, 0.25, 0.39),
  group = gl(3, 4, labels = c("a1", "a2", "a3")),
  x     = seq_len(n),
  color = rep(rep.int(c("R", "G"), 2), c(3, 4, 3, 2))
)

このデータから次のプロットを作成しました。

p <- ggplot(t, aes(x, colour = color)) +  
  geom_point(aes(y = V1, size = 10)) + 
  geom_point(aes(y = V2, size = 10))

ここでやりたいのは、グループの列に応じてポイントを接続することです(たとえば、グループ a1 のポイントは青い線で接続され、グループ a2 のポイントは{code> V1 の場合は破線)、 V1 の場合は V2 V2 の法線)を入力します。

どのようにこれを行うことができますか?

0
@リッチーコットン:ありがとう
追加された 著者 ifreak,
ようこそ。他の人が再現しやすくするために、データセットを修正しました。
追加された 著者 Richie Cotton,

2 答え

まず第一に、データセット "t"の命名は良い考えではありません。なぜなら、関数t()も同様に混乱しているからです。

最も簡単な方法は、まずデータセットをmelt()することです

Molten <- melt(t, id.vars = c("group", "x", "color"))
ggplot(Molten, aes(x = x, y = value, colour = group, linetype = variable)) + geom_line()

色をカスタマイズする方法については、ggplot2のWebサイトをご覧ください。

2
追加された
:ありがとう、しかし、あなたが書いたものは、合計4行を与えるが、私は3つのグループと2色があります。そのため、6行が必要です。各グループは2行(V1とV2)
追加された 著者 ifreak,
ありがとう、それは今働いた。
追加された 著者 ifreak,
コードを更新しました。将来はあまり混乱しない名前を使用してください。あなたは 'color'という名前の変数を持っていますが、変数 'group'で色を使いたいとします。
追加された 著者 Thierry,

melt()を使わずにグラフをプロットしたい場合は:

p <-ggplot(t) + geom_line(aes(x,V2,color=group)) + geom_line(aes(x,V1,color=group), linetype = "dashed")
0
追加された