36

私は次のようなテーブルを持っています:

> 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がファセットのない折れ線グラフで複数のグループ化によってグループ化できるかどうかを迷っています(後で別のグループ化のためにファセットを使用する必要があります)?できるはずなのに。

4

2 に答える 2

82

Based off my comment about interacting the two:

ggplot(testsizes, aes(x = size, y = value,
                      group = interaction(replicate, lane),
                      colour = lane)) +
 geom_line()

Which gives:

enter image description here

于 2012-08-29T15:58:00.753 に答える
8

@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に渡す前に、できるだけ多くの前処理を行うことだと思います。

于 2012-08-29T15:22:07.353 に答える