ggplot2でforループを使用して、データフレーム内に複数のグラフをプロットする

user9317212

誰かがggplot2を使用してforループでRで発生している問題を解決できるかどうか疑問に思っていました。時間の経過とともに変化するデータのパターンを見つけるために、いくつかのクラスタリングを実行しました。全部で38のパターンのグラフで様々なパターンがあります。クラスタリングの出力は、視覚化に適した38個のグラフすべてを並べて配置することです。

しかし、私は個々のグラフにズームインして、プレゼンテーションとパターンのクリアビューのためにそれらにズームインしたいと思います。これは手動で簡単ですが、同じスクリプトの38バージョンを作成しますが、それぞれに異なるクラスターを使用するのは非常に面倒なので、クイックコードの1つのチャンクで実現するためにforループを作成したいと思います。私はこのコードを実行しましたが(オンラインでもいくつかの助けを借りて)、個々の38個のグラフの出力を取得できません。コード自体は、特定のクラスターの出力を提供する1つのクラスターを指定できるので機能しますが、38の異なるクラスターすべてを作成するコードを作成したいと思います。

私が使用しているコードは次のとおりです。

データフレームはdfllgcと呼ばれ、その中にdfllgc $ clusterには個々のクラスターに関する情報が含まれています。私が試みているforループは次のとおりですが、機能しません。どんな助けでも本当にありがたいです!

    for(cluster in dfllgc$cluster){
  df<-subset(dataframAMIRllgc,cluster == 1:38)
  df$Time_point<-factor(df.s$Time_point, levels = c("p3", "p15", "p30","p60"))
  g<-ggplot(df, aes(x=Time_point, y=abundance, group=llgc, colour=llgc))+
  geom_line(size=1.5)+
  geom_point(size=4)+
  ggtitle("Cluster 29: Patterns over time (5 genes) \n") +
  xlab("\nAge") + ylab("Expression(CPM)\n")
  print(g) }

df <-subset(dataframAMIRllgc、cluster == 1:38)を== 1、15などに変更するか、他のクラスターを変更すると、実際にその1つのクラスターが生成されますが、すべての38が1:38になるわけではありません。

最後に、タイトル(ggtitle)を使用して、テンプレートを作成できるようにタイトルも自動化する方法はありますが、クラスター番号と遺伝子数が正しいクラスターに自動的に適用されますか?

どうもありがとうございます!どんな助けでも大歓迎です:)

サンプルデータ

    merge   cluster Time_point  llgc    abundance
1   High[26-50%]p15 1   p15 High[26-50%]    166.5400335
38  High[26-50%]p3  1   p3  High[26-50%]    255.5007952
75  High[26-50%]p30 1   p30 High[26-50%]    122.1110473
112 High[26-50%]p60 1   p60 High[26-50%]    78.84340532
149 Low[0-10%]p15   1   p15 Low[0-10%]  86.40962037
186 Low[0-10%]p3    1   p3  Low[0-10%]  205.9750297
223 Low[0-10%]p30   1   p30 Low[0-10%]  60.23843127
260 Low[0-10%]p60   1   p60 Low[0-10%]  56.64259547
297 Medium[11-25%]p15   1   p15 Medium[11-25%]  165.2372227
334 Medium[11-25%]p3    1   p3  Medium[11-25%]  223.3891249
371 Medium[11-25%]p30   1   p30 Medium[11-25%]  155.1325448
408 Medium[11-25%]p60   1   p60 Medium[11-25%]  176.8285175
2   High[26-50%]p15 2   p15 High[26-50%]    85.21789981
39  High[26-50%]p3  2   p3  High[26-50%]    211.5359752
76  High[26-50%]p30 2   p30 High[26-50%]    35.7475454
113 High[26-50%]p60 2   p60 High[26-50%]    12.87995477
150 Low[0-10%]p15   2   p15 Low[0-10%]  77.20608808
187 Low[0-10%]p3    2   p3  Low[0-10%]  43.04550979
224 Low[0-10%]p30   2   p30 Low[0-10%]  34.88976766
261 Low[0-10%]p60   2   p60 Low[0-10%]  9.791146582
298 Medium[11-25%]p15   2   p15 Medium[11-25%]  46.21377697
335 Medium[11-25%]p3    2   p3  Medium[11-25%]  34.89603178
372 Medium[11-25%]p30   2   p30 Medium[11-25%]  14.18668175
409 Medium[11-25%]p60   2   p60 Medium[11-25%]  7.360330065
3   High[26-50%]p15 3   p15 High[26-50%]    47.75793997
40  High[26-50%]p3  3   p3  High[26-50%]    62.3529071
77  High[26-50%]p30 3   p30 High[26-50%]    17.8348889
114 High[26-50%]p60 3   p60 High[26-50%]    14.26366778
151 Low[0-10%]p15   3   p15 Low[0-10%]  138.1451371
188 Low[0-10%]p3    3   p3  Low[0-10%]  185.1184602
225 Low[0-10%]p30   3   p30 Low[0-10%]  63.52332626
262 Low[0-10%]p60   3   p60 Low[0-10%]  39.40566363
299 Medium[11-25%]p15   3   p15 Medium[11-25%]  26.32551336
336 Medium[11-25%]p3    3   p3  Medium[11-25%]  49.72067928
373 Medium[11-25%]p30   3   p30 Medium[11-25%]  8.288553629
410 Medium[11-25%]p60   3   p60 Medium[11-25%]  5.385031193
ウィルホア-レイシー

あなたが何をしようとしているのかを100%理解しているかどうかはわかりませんが、サブセットに問題があると思います。最後に保存機能を追加する必要があります。うまくいけば、これはあなたが望むことをします:

dfllgc$Time_point<-factor(dfllgc$Time_point, levels = c("p3", "p15", "p30","p60"))

for(cluster in unique(dfllgc$cluster)) {

    g<-ggplot( dfllgc[ dfllgc$cluster == cluster, ], 
              aes(x=Time_point, y=abundance, group=llgc, colour=llgc)) +
        geom_line(size=1.5) +
        geom_point(size=4) +
        ggtitle( paste0("Cluster ", cluster,": Patterns over time (5 genes)") ) +
        xlab("Age") + ylab("Expression(CPM)")

    ggsave(paste0("Cluster_", cluster,".png"), g) 

}

行われた変更:

  • サブセット行を削除し、クラスターサブセット/フィルターをggplot行に追加しましたが、同じように簡単に分離できます。
  • factor変換をforループの外に移動したため、一度だけ適用する必要があります。
  • クラスタごとに変更するタイトルとファイル名を設定します

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ループを使用してRのggplot2を使用し、同じプロット内の同じデータフレームから複数のxyプロットを生成し、対応する凡例を表示します

分類Dev

データフレームの列をループして、ggplot2でプロットを作成します

分類Dev

ループを使用してプロット[ggplot2]を作成する:エラー `data`はデータフレームである必要があります

分類Dev

ggplot2を使用して1つのプロットに複数のデータフレームを組み合わせる

分類Dev

データフレーム内の日付を表す複数の変数を使用して時系列グラフをプロットする

分類Dev

異なる色のggplotを使用して複数のデータフレームをプロットする

分類Dev

ggplotを使用してデータフレームの2列を表す2点間に複数の線をプロットする方法

分類Dev

dataframe2delta:ggplot2を使用してデータフレームから直接デルタ関数をプロットする方法

分類Dev

データフレームからforループを使用して複数のプロットを作成する

分類Dev

ggplot2を使用して、指定されたx値でデータフレームの行ごとに線をプロットする

分類Dev

ggplot2を使用して、データをサブセット化し、折れ線グラフに2つの変数をプロットします。

分類Dev

新しいデータフレームを作成せずに、Rのggplot2を使用して、異なるデータフレームからの2つの系列を互いにプロットするにはどうすればよいですか?

分類Dev

ループまたは関数内で Julia を使用して複数のグラフをプロットする

分類Dev

ggplot2を使用して、複数のstat_binレイヤーを持つヒストグラムプロットに凡例を追加する

分類Dev

2つの列を使用してデータフレームを個別の複数のグループに分割し、各グループでPCAを実行し、PCAの数値をプロットします

分類Dev

ggplot2を使用してプロットするための関数を作成し、関数にデータフレーム、x、およびyを提供します。軸を正しい方法で参照するにはどうすればよいですか?

分類Dev

ggplot2は、グループ化されたデータフレームから最後の変数のみをプロットします

分類Dev

Pythonで2列のデータフレームをグループ化してプロットする方法

分類Dev

Seabornを使用してパンダデータフレームの列の複数のグループを並べてプロットする方法

分類Dev

ループを使用してデータフレームを他の複数のデータフレームにサブセット化する

分類Dev

異なるグラフを使用して、2つのデータフレームのデータを1つのプロットに結合します

分類Dev

1つのグラフに複数のパンダデータフレームをプロットする

分類Dev

データフレームとは別の軸に複数のグラフをプロットする

分類Dev

複数のパンダデータフレームを1つのグラフにプロットするpythonplotly

分類Dev

因子に対して複数の頻度でデータフレームをプロットする方法は?

分類Dev

R ggplot2:線の長さが異なる複数のROCプロットのデータフレームを作成します

分類Dev

seabornを使用してデータフレーム内の複数の列に対して1つの線形回帰散布図をプロットする方法は?

分類Dev

データフレームの異なる列を使用して、1つのプロットに複数のグラフをプロットするにはどうすればよいですか?

分類Dev

1つのx軸を使用して1つのデータフレームから複数のグラフをプロットする-Python

Related 関連記事

  1. 1

    ループを使用してRのggplot2を使用し、同じプロット内の同じデータフレームから複数のxyプロットを生成し、対応する凡例を表示します

  2. 2

    データフレームの列をループして、ggplot2でプロットを作成します

  3. 3

    ループを使用してプロット[ggplot2]を作成する:エラー `data`はデータフレームである必要があります

  4. 4

    ggplot2を使用して1つのプロットに複数のデータフレームを組み合わせる

  5. 5

    データフレーム内の日付を表す複数の変数を使用して時系列グラフをプロットする

  6. 6

    異なる色のggplotを使用して複数のデータフレームをプロットする

  7. 7

    ggplotを使用してデータフレームの2列を表す2点間に複数の線をプロットする方法

  8. 8

    dataframe2delta:ggplot2を使用してデータフレームから直接デルタ関数をプロットする方法

  9. 9

    データフレームからforループを使用して複数のプロットを作成する

  10. 10

    ggplot2を使用して、指定されたx値でデータフレームの行ごとに線をプロットする

  11. 11

    ggplot2を使用して、データをサブセット化し、折れ線グラフに2つの変数をプロットします。

  12. 12

    新しいデータフレームを作成せずに、Rのggplot2を使用して、異なるデータフレームからの2つの系列を互いにプロットするにはどうすればよいですか?

  13. 13

    ループまたは関数内で Julia を使用して複数のグラフをプロットする

  14. 14

    ggplot2を使用して、複数のstat_binレイヤーを持つヒストグラムプロットに凡例を追加する

  15. 15

    2つの列を使用してデータフレームを個別の複数のグループに分割し、各グループでPCAを実行し、PCAの数値をプロットします

  16. 16

    ggplot2を使用してプロットするための関数を作成し、関数にデータフレーム、x、およびyを提供します。軸を正しい方法で参照するにはどうすればよいですか?

  17. 17

    ggplot2は、グループ化されたデータフレームから最後の変数のみをプロットします

  18. 18

    Pythonで2列のデータフレームをグループ化してプロットする方法

  19. 19

    Seabornを使用してパンダデータフレームの列の複数のグループを並べてプロットする方法

  20. 20

    ループを使用してデータフレームを他の複数のデータフレームにサブセット化する

  21. 21

    異なるグラフを使用して、2つのデータフレームのデータを1つのプロットに結合します

  22. 22

    1つのグラフに複数のパンダデータフレームをプロットする

  23. 23

    データフレームとは別の軸に複数のグラフをプロットする

  24. 24

    複数のパンダデータフレームを1つのグラフにプロットするpythonplotly

  25. 25

    因子に対して複数の頻度でデータフレームをプロットする方法は?

  26. 26

    R ggplot2:線の長さが異なる複数のROCプロットのデータフレームを作成します

  27. 27

    seabornを使用してデータフレーム内の複数の列に対して1つの線形回帰散布図をプロットする方法は?

  28. 28

    データフレームの異なる列を使用して、1つのプロットに複数のグラフをプロットするにはどうすればよいですか?

  29. 29

    1つのx軸を使用して1つのデータフレームから複数のグラフをプロットする-Python

ホットタグ

アーカイブ