次のような表があります。
> testsizes
size value replicate lane
361 16 6898 1 L1
362 17 10707 1 L1
363 18 1786 1 L1
364 19 1721 1 L1
365 20 2454 1 L1
421 16 8486 2 L1
422 17 26691 2 L1
423 18 3241 2 L1
424 19 5068 2 L1
425 20 7579 2 L1
481 16 4152 3 L1
482 17 4452 3 L1
483 18 899 3 L1
484 19 1973 3 L1
485 20 2595 3 L1
571 16 8284 1 L2
572 17 9045 1 L2
573 18 5041 1 L2
574 19 7160 1 L2
575 20 9730 1 L2
631 16 5639 2 L2
632 17 9773 2 L2
633 18 2433 2 L2
634 19 3017 2 L2
635 20 3864 2 L2
691 16 10161 3 L2
692 17 18609 3 L2
693 18 3760 3 L2
694 19 3543 3 L2
695 20 4257 3 L2
> dput(testsizes)
structure(list(size = c(16L, 17L, 18L, 19L, 20L, 16L, 17L, 18L,
19L, 20L, 16L, 17L, 18L, 19L, 20L, 16L, 17L, 18L, 19L, 20L, 16L,
17L, 18L, 19L, 20L, 16L, 17L, 18L, 19L, 20L), value = c(6898L,
10707L, 1786L, 1721L, 2454L, 8486L, 26691L, 3241L, 5068L, 7579L,
4152L, 4452L, 899L, 1973L, 2595L, 8284L, 9045L, 5041L, 7160L,
9730L, 5639L, 9773L, 2433L, 3017L, 3864L, 10161L, 18609L, 3760L,
3543L, 4257L), replicate = c("1", "1", "1", "1", "1", "2", "2",
"2", "2", "2", "3", "3", "3", "3", "3", "1", "1", "1", "1", "1",
"2", "2", "2", "2", "2", "3", "3", "3", "3", "3"), lane = c("L1",
"L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1",
"L1", "L1", "L1", "L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2",
"L2", "L2", "L2", "L2", "L2", "L2", "L2")), .Names = c("size",
"value", "replicate", "lane"), row.names = c(361L, 362L, 363L,
364L, 365L, 421L, 422L, 423L, 424L, 425L, 481L, 482L, 483L, 484L,
485L, 571L, 572L, 573L, 574L, 575L, 631L, 632L, 633L, 634L, 635L,
691L, 692L, 693L, 694L, 695L), class = "data.frame")
サイズごとの値の変化を示すggplotを使用してラインプロットを作成したいと思います。今私はこれを持っています、私が試した他の組み合わせの中で:
ggplot(testlengths, aes(size, value, group=replicate, colour=replicate))
+ geom_line()
両方のレーンを同じシリーズに組み込もうとしているようです。しかし、レーンをグループ化する別の要素として設定する方法が見つかりません。複製とレーンの両方のカテゴリに基づいてラインをグループ化したい。レーンは色付けする必要がありますが、複製物を互いに区別する必要はありません。
2つのグループを事前に1つのグループに連結することで、おそらくこれを実現できると思います。ただし、そのルートを下る前に、ggplotがファセットなしのラインプロットで複数のグループ化によってグループ化できるかどうか迷っています(後で別のグループ化のためにファセットを使用する必要があります)?できるようになった気がします。
2つの相互作用についての私のコメントに基づく:
ggplot(testsizes, aes(x = size, y = value,
group = interaction(replicate, lane),
colour = lane)) +
geom_line()
それは与える:
@joranが指摘したように、ggplotがこれを実行できる場合は、とにかく2つのグループを連結するだけです。したがって、2つのグループを自分で連結するのが正しい方法であり、望ましい結果が得られます。
> testlengths$replane <- paste(testlengths$replicate, testlengths$lane, sep="_")
> testlengths
size value replicate lane replane
361 16 6898 1 L1 1_L1
362 17 10707 1 L1 1_L1
363 18 1786 1 L1 1_L1
364 19 1721 1 L1 1_L1
365 20 2454 1 L1 1_L1
421 16 8486 2 L1 2_L1
422 17 26691 2 L1 2_L1
423 18 3241 2 L1 2_L1
424 19 5068 2 L1 2_L1
425 20 7579 2 L1 2_L1
481 16 4152 3 L1 3_L1
482 17 4452 3 L1 3_L1
483 18 899 3 L1 3_L1
484 19 1973 3 L1 3_L1
485 20 2595 3 L1 3_L1
571 16 8284 1 L2 1_L2
572 17 9045 1 L2 1_L2
573 18 5041 1 L2 1_L2
574 19 7160 1 L2 1_L2
575 20 9730 1 L2 1_L2
631 16 5639 2 L2 2_L2
632 17 9773 2 L2 2_L2
633 18 2433 2 L2 2_L2
634 19 3017 2 L2 2_L2
635 20 3864 2 L2 2_L2
691 16 10161 3 L2 3_L2
692 17 18609 3 L2 3_L2
693 18 3760 3 L2 3_L2
694 19 3543 3 L2 3_L2
695 20 4257 3 L2 3_L2
> ggplot(testlengths, aes(size, value, group=replane, colour=lane))
+ geom_line()
ここでの教訓は、テーブルをggplotに渡す前に、できる限り多くの前処理を行うことです。