行列をループしてRでプロットする

マヒーン・シディキ

Rに2つの行列がlag_matありr_mat、両方に次元があり16x16x3x2x2ます。

これらをRでプロットするために使用する次のコードがあります。

library(R.matlab) 
library("wesanderson")  
library("ggplot2")
library("ggsci") 
library(corrplot)
library(plotly)
library(viridis) 

#CCO left and right stimulation time window 2
lag_mat = matrix(CCO_lag[, , 1,2], 16)
r_mat = matrix(CCO[, , 1,2], 16)
row = c(row(lag_mat))
col = c(col(lag_mat)) 
dd = data.frame( lag = c(lag_mat), r = c(r_mat), row, col ) 

p1 <- ggplot(dd, aes(x = row, y = col, size = lag, color = r)) +
  geom_point(  alpha = 1.5, stroke = 2.5) +
  ggtitle("CCO, RIGHT Stimulation") +
  theme(plot.title = element_text(size=10, face="bold"), 
        legend.position = "none",
        axis.title.x=element_blank(),
        axis.title.y=element_blank(),
        panel.grid.major = element_line(size = 0.5, linetype = 'solid',
                                        colour = "white"), 
        panel.grid.minor = element_line(size = 0.5, linetype = 'solid',
                                        colour = "white"),axis.text.x = element_text(size=8)) + 
  # scale_color_viridis( begin = 0.2 , end = 1, direction = 1 )+  
  scale_color_gradient2(low = "#4169E1"  , mid =  "#ffffbf" , high =   "#FF8C00", limits=c(-1 ,1)) +
  #  scale_y_reverse() +
  #  scale_size_area(trans = "reverse")+
  scale_size_continuous(range = c(5,0),limits=c(-12,0))+
  scale_x_discrete(limits=c("CP1","P7","P3","Pz","PO3","T1", "M1","Oz","M2","T2","PO4","P4","P8", "CP2","Cz","Fz")) +
  scale_y_continuous(limits = c(1,16),breaks=seq(1,16,1)) 

私が抱えている問題は、最後の次元をループする必要があるということです。さらにいくつかの分析を実行しましたが、行列の最後の次元がである代わりに、2現在は21です。以前は2つのスクリプトを使用していましたが、1つはプロットしたものです(つまり、異なるスクリプトの各次元-あまり効率的ではありません)。

r_mat = matrix(CCO[, , 1,1], 16)

と他の

r_mat = matrix(CCO[, , 1,2], 16)

しかし、今はもちろん21個のスクリプトを作成することはできませんが、Rでループしてプロットする方法がわかりません。

誰かがこれで私を助けることができますか?それで、最後の次元をループして、ggplotを使用して21の図をプロットできますか?

ありがとう!

これがデータ16x16x1x2です。両方の行列が次元にならないように、より小さな行列を再現しました

CCO<-structure(c(-0.492578655481339, NaN, NaN, NaN, -0.492525190114975, 
-0.492525696754456, NaN, -0.492627799510956, -0.492677986621857, 
-0.492468953132629, NaN, NaN, NaN, -0.49228835105896, -0.492546766996384, 
-0.492437690496445, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, -0.521651923656464, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
0.473261743783951, NaN, 0.472789525985718, -0.600778460502625, 
NaN, NaN, -0.600829541683197, -0.6008580327034, -0.601057589054108, 
NaN, -0.600822031497955, -0.600911736488342, -0.600730240345001, 
NaN, NaN, NaN, -0.600953936576843, -0.600802004337311, -0.600861430168152, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, -0.521026790142059, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, -0.577225089073181, NaN, NaN, -0.577208399772644, 
-0.577145278453827, -0.577321112155914, NaN, -0.577184557914734, 
-0.577165722846985, -0.577133357524872, NaN, NaN, NaN, -0.577190637588501, 
-0.577230930328369, -0.577144026756287, -0.41020467877388, NaN, 
NaN, NaN, -0.410186648368835, -0.410334318876266, NaN, -0.410211980342865, 
-0.410197377204895, -0.410110324621201, NaN, NaN, NaN, -0.410272806882858, 
NaN, NaN, -0.733388960361481, NaN, NaN, NaN, NaN, -0.733434438705444, 
NaN, -0.733347833156586, -0.733303666114807, -0.733347356319427, 
NaN, NaN, NaN, NaN, -0.733397245407104, -0.73332667350769, -0.702324509620667, 
NaN, NaN, NaN, NaN, NaN, NaN, -0.702237844467163, -0.702238082885742, 
-0.702193081378937, NaN, NaN, NaN, -0.702261865139008, -0.702301025390625, 
NaN, -0.80294394493103, NaN, NaN, -0.802956938743591, -0.802938997745514, 
-0.803096830844879, NaN, -0.802961885929108, -0.802923500537872, 
-0.802861630916595, NaN, NaN, NaN, -0.803063333034515, -0.802979350090027, 
-0.802873134613037, -0.684592604637146, NaN, NaN, -0.684580564498901, 
-0.684580743312836, -0.684802889823914, NaN, -0.684630811214447, 
-0.684578239917755, -0.684465110301971, NaN, NaN, NaN, -0.684730887413025, 
-0.684608578681946, -0.684436023235321, -0.606923937797546, NaN, 
NaN, NaN, -0.606987476348877, NaN, NaN, -0.606982827186584, NaN, 
NaN, NaN, NaN, NaN, -0.606993675231934, NaN, NaN, -0.746234655380249, 
NaN, NaN, -0.7463099360466, -0.746258854866028, -0.746564209461212, 
NaN, -0.746362566947937, -0.746387183666229, -0.746385276317596, 
NaN, NaN, NaN, -0.746756434440613, -0.746286571025848, -0.746472299098969, 
NaN, NaN, NaN, NaN, -0.526792407035828, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, -0.526629209518433, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, -0.402197241783142, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, -0.515719473361969, NaN, NaN, NaN, -0.515782594680786, 
-0.516006171703339, NaN, -0.515946447849274, -0.515853404998779, 
-0.515883803367615, NaN, NaN, NaN, -0.515994668006897, -0.515867114067078, 
-0.515911042690277, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, -0.4820496737957, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
0.535082995891571, NaN, 0.534462213516235, -0.567049205303192, 
NaN, NaN, -0.567097425460815, -0.567124307155609, -0.567312657833099, 
NaN, -0.567090332508087, -0.567174971103668, -0.567003667354584, 
NaN, NaN, NaN, -0.567214787006378, -0.567071437835693, -0.567127525806427, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, -0.437827885150909, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, -0.496517241001129, NaN, NaN, -0.496502816677094, 
-0.496448516845703, -0.496599793434143, NaN, -0.496482282876968, 
-0.496466100215912, -0.496438264846802, NaN, NaN, NaN, -0.496487557888031, 
-0.496522217988968, -0.496447324752808, 0.43168780207634, NaN, 
NaN, NaN, 0.43162015080452, 0.431624948978424, NaN, 0.43173423409462, 
0.431787043809891, 0.431506514549255, NaN, NaN, NaN, 0.431388199329376, 
NaN, NaN, -0.673626005649567, NaN, NaN, NaN, NaN, -0.673667669296265, 
NaN, -0.67358809709549, -0.673547565937042, -0.673587679862976, 
NaN, NaN, NaN, NaN, -0.673633456230164, -0.673568665981293, -0.657320320606232, 
NaN, NaN, NaN, NaN, NaN, NaN, -0.65728884935379, -0.657253861427307, 
-0.657285273075104, NaN, NaN, NaN, -0.657291948795319, -0.657335460186005, 
NaN, -0.793729186058044, NaN, NaN, -0.793741881847382, -0.793724238872528, 
-0.793880224227905, NaN, -0.793746829032898, -0.793708860874176, 
-0.793647706508636, NaN, NaN, NaN, -0.793846964836121, -0.793764173984528, 
-0.793659150600433, -0.639408528804779, NaN, NaN, -0.639397382736206, 
-0.63939756155014, -0.639605164527893, NaN, -0.639444351196289, 
-0.63939505815506, -0.639289438724518, NaN, NaN, NaN, -0.639537692070007, 
-0.639423429965973, -0.63926237821579, -0.567462205886841, NaN, 
NaN, NaN, -0.567524492740631, NaN, NaN, -0.567518472671509, NaN, 
NaN, NaN, NaN, NaN, -0.567527711391449, NaN, NaN, -0.76900988817215, 
NaN, NaN, -0.769101619720459, -0.769054174423218, -0.769321501255035, 
NaN, -0.769179046154022, -0.769175291061401, -0.769182145595551, 
NaN, NaN, NaN, -0.769531965255737, -0.769078016281128, -0.769262313842773, 
NaN, NaN, NaN, NaN, -0.0669489949941635, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, -0.0665916055440903, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, 0.425303876399994, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN), .Dim = c(16L, 16L, 2L))
CCO_lag<-structure(c(0, NaN, NaN, NaN, 0, 0, NaN, 0, 1, 0, NaN, NaN, NaN, 
1, 0, 0, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, -3, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 5, NaN, 5, -3, NaN, NaN, 
-3, -3, -3, NaN, -3, -3, -3, NaN, NaN, NaN, -3, -3, -3, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, -1, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, -3, NaN, NaN, -3, -3, -3, NaN, -3, -3, -3, NaN, NaN, 
NaN, -3, -3, -3, -4, NaN, NaN, NaN, -4, -4, NaN, -4, -4, -4, 
NaN, NaN, NaN, -4, NaN, NaN, 0, NaN, NaN, NaN, NaN, 0, NaN, 0, 
0, 0, NaN, NaN, NaN, NaN, 0, 0, 0, NaN, NaN, NaN, NaN, NaN, NaN, 
0, 0, 0, NaN, NaN, NaN, 0, 0, NaN, 0, NaN, NaN, 1, 0, 1, NaN, 
0, 1, 1, NaN, NaN, NaN, 1, 0, 1, -2, NaN, NaN, -2, -2, -2, NaN, 
-2, -2, -1, NaN, NaN, NaN, -2, -2, -2, 0, NaN, NaN, NaN, 0.5, 
NaN, NaN, 0.5, NaN, NaN, NaN, NaN, NaN, 0.5, NaN, NaN, 1, NaN, 
NaN, 1, 1, 1, NaN, 1, 1, 1, NaN, NaN, NaN, 1, 1, 1, NaN, NaN, 
NaN, NaN, 0, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
0, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 0.5, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, 0, NaN, NaN, NaN, 0, 0, NaN, 0, 0, 0, NaN, 
NaN, NaN, 0, 0, 0, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, -4, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 5, NaN, 5, 
-2, NaN, NaN, -2, -2, -2, NaN, -2, -2, -2, NaN, NaN, NaN, -2, 
-2, -2, NaN, NaN, NaN, NaN, NaN, NaN, NaN, -2, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, -2, NaN, NaN, -2, -2, -2, NaN, -2, -2, 
-2, NaN, NaN, NaN, -2, -2, -2, -2, NaN, NaN, NaN, -2, -2, NaN, 
-2, -2, -2, NaN, NaN, NaN, -2, NaN, NaN, -1, NaN, NaN, NaN, NaN, 
-1, NaN, -1, -1, -1, NaN, NaN, NaN, NaN, -1, -1, -1, NaN, NaN, 
NaN, NaN, NaN, NaN, -1, -1, -1, NaN, NaN, NaN, -1, -1, NaN, 0, 
NaN, NaN, 0, 0, 0, NaN, 0, 0, 0, NaN, NaN, NaN, 0, 0, 0, -3, 
NaN, NaN, -3, -3, -3, NaN, -3, -3, -2, NaN, NaN, NaN, -3, -3, 
-3, 0, NaN, NaN, NaN, 0, NaN, NaN, 0, NaN, NaN, NaN, NaN, NaN, 
0, NaN, NaN, 0, NaN, NaN, 0, 0, 0, NaN, 0, 0, 0, NaN, NaN, NaN, 
0, 0, 0, NaN, NaN, NaN, NaN, 0, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, 0, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
0, NaN, NaN, NaN, NaN, NaN, NaN, NaN), .Dim = c(16L, 16L, 2L))

画像出力

teunbrand

を使用してlapply(seq_len(dim(my_array)[n]), ...)配列の目的の次元に沿ってループすることができますnここで、は対象の次元です。

あなたが使用した場合function(i) {...}の内側lapply()と入れiサブセットの操作で正しい場所で、それが適切なデータを取り出す必要があります。

関数の最後の行がggplotオブジェクトを出力する場合、それは自動的にリストに保存されます。以下の簡略化された例:

library(ggplot2)

CCO<- array(rnorm(prod(16, 2, 1, 21)), c(16, 2, 1, 21))
CCO_lag <- array(rnorm(prod(16, 2, 1, 21)), c(16, 2, 1, 21))

plots <- lapply(seq_len(dim(CCO)[4]), function(i) {
  lag_mat = matrix(CCO_lag[, , 1,i], 16)
  r_mat = matrix(CCO[, , 1,i], 16)
  row = c(row(lag_mat))
  col = c(col(lag_mat)) 
  dd = data.frame( lag = c(lag_mat), r = c(r_mat), row, col ) 
  
  ggplot(dd, aes(x = row, y = col)) +
    geom_point(alpha = 1.5, stroke = 2.5)
})

# Just to show plots come out
patchwork::wrap_plots(plots)

reprexパッケージ(v0.3.0)によって2021-01-07に作成されました

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

rで2行列を使用してヒートマップをプロットする方法

分類Dev

フロート要素を使用してMATLABで行列をプロットする

分類Dev

R-空間周波数データを行列としてプロットする

分類Dev

MATLAB:行列をnxnテーブルとしてプロットする方法は?

分類Dev

Markdown R:highcharterを使用してループでプロットする

分類Dev

行列をループしてRの行列に変換する

分類Dev

forループなしで行列の行をプロットすることは可能ですか?

分類Dev

CNN分類でテンソルフローを使用して混同行列をプロットします

分類Dev

共起行列としてcsvファイルを使用してneworkxでグラフをプロットする

分類Dev

Python で指定されたセル サイズで行列をヒートマップとしてプロットする

分類Dev

Rでggplot2を使用して分光データ(行列)をプロットします

分類Dev

spplotを使用してRのforループでプロットを作成します

分類Dev

Rでcolnames()を使用してループ内のプロットのタイトルを変更する

分類Dev

データフレームをループしてRでプロットを作成する

分類Dev

Rで.mat行列を読み込んでプロットする

分類Dev

ループを介してRに大量のプロットを作成する

分類Dev

Rで整数行列をプロットします

分類Dev

snsdistplotを使用してプロットの行列を作成する

分類Dev

正方行列からRを使用してヒートマップを作成する

分類Dev

forループを使用してRでGGPLOTを使用して分離されたプロットをプロットする

分類Dev

グループ化してプロットする関数?-R

分類Dev

Rで相関行列をプロットする

分類Dev

Rで密度プロットの行列を作成する方法

分類Dev

Python:ゼロを無視して2D行列のヒートマップをプロットする方法は?

分類Dev

共分散行列なしでlmerモデルをプロットする

分類Dev

行列のようなデータを点としてプロットする

分類Dev

rとggplot2でforループを介して多くの関数をプロットする

分類Dev

R:プロット関数でループステートメントを使用して4つのグラフをプロットする方法

分類Dev

Rループ関数を使用して行列を作成する方法

Related 関連記事

  1. 1

    rで2行列を使用してヒートマップをプロットする方法

  2. 2

    フロート要素を使用してMATLABで行列をプロットする

  3. 3

    R-空間周波数データを行列としてプロットする

  4. 4

    MATLAB:行列をnxnテーブルとしてプロットする方法は?

  5. 5

    Markdown R:highcharterを使用してループでプロットする

  6. 6

    行列をループしてRの行列に変換する

  7. 7

    forループなしで行列の行をプロットすることは可能ですか?

  8. 8

    CNN分類でテンソルフローを使用して混同行列をプロットします

  9. 9

    共起行列としてcsvファイルを使用してneworkxでグラフをプロットする

  10. 10

    Python で指定されたセル サイズで行列をヒートマップとしてプロットする

  11. 11

    Rでggplot2を使用して分光データ(行列)をプロットします

  12. 12

    spplotを使用してRのforループでプロットを作成します

  13. 13

    Rでcolnames()を使用してループ内のプロットのタイトルを変更する

  14. 14

    データフレームをループしてRでプロットを作成する

  15. 15

    Rで.mat行列を読み込んでプロットする

  16. 16

    ループを介してRに大量のプロットを作成する

  17. 17

    Rで整数行列をプロットします

  18. 18

    snsdistplotを使用してプロットの行列を作成する

  19. 19

    正方行列からRを使用してヒートマップを作成する

  20. 20

    forループを使用してRでGGPLOTを使用して分離されたプロットをプロットする

  21. 21

    グループ化してプロットする関数?-R

  22. 22

    Rで相関行列をプロットする

  23. 23

    Rで密度プロットの行列を作成する方法

  24. 24

    Python:ゼロを無視して2D行列のヒートマップをプロットする方法は?

  25. 25

    共分散行列なしでlmerモデルをプロットする

  26. 26

    行列のようなデータを点としてプロットする

  27. 27

    rとggplot2でforループを介して多くの関数をプロットする

  28. 28

    R:プロット関数でループステートメントを使用して4つのグラフをプロットする方法

  29. 29

    Rループ関数を使用して行列を作成する方法

ホットタグ

アーカイブ