2016-10-24 15 views
1

2つの異なるCSVファイルに2つの行列があり、同じ色のスケールを持つそれらをプロットしたいと思います。Rヒモマップ、2つのヒートマップ画像に同じスケールを設定する方法は?

これは私が今持っているものであり、それは働いていない:

enter image description here

あなたが見ることができるように、両方の画像は(青から赤に)同じ色の範囲を使用しますが、その意味が異なっています:彼らは異なる間隔を持っています。

2つのヒートマップの同じ値の範囲に同じ色を関連付ける必要があります。

ここに私のコードでは、ヒートマップのためです:

library(pheatmap) 
datatable_normal = data.matrix(read.table(fileName, sep="\t", header=T, row.names=1)) 
pheatmap(datatable_normal, cluster_rows=FALSE, cluster_cols=FALSE, show_rownames=T, width=10, height=10) 

がどのように私はこの問題を解決することができますか?

+0

は、次の2つのCSVファイルをマージして、それに基づいて観測をサブセット化によって、二つの異なるプロットを実行し、それがどこから来たファイルではありませんでしたか? – Phil

+0

たぶん...どうすればいいですか? –

+0

私はちょうどパッケージのビネットを読んでいます。私は 'subset'引数を持たないことに驚いています。 'ライブラリ(tidyverse) bind_rows:あなたは(のは、変数' csv_filter'を呼びましょう)それが 'csv1'または' csv2'に属しているかどうかを示す両方のcsvファイルでカラムを追加し、次の操作を行うとどうなりますか (csv1、csv2) datatable_normal1 = data.matrix(read.table(fileName $ csv_filter == 1)、sep = "\ t"、header = T、row.names = 1)) pheatmap(datatable_normal1、cluster_rows = FALSE、cluster_cols = FALSE、show_rownames = T、width = 10、height = 10) ' – Phil

答えて

2

同じ縮尺を同じbreaksに設定することで設定できます。ここで

は私の例です:

library(pheatmap) 

    ## example data 
set.seed(1); test1 <- matrix(rnorm(25, 0, 10), 5, 5) 
set.seed(2); test2 <- matrix(rnorm(25, 30, 10), 5, 5) 
colnames(test1) = paste0("Test", 1:5); rownames(test1) = paste0("Gene", 1:5) 
colnames(test2) = paste0("Test", 1:5); rownames(test2) = paste0("Gene", 1:5) 

    ## make breaks from combined range 
Breaks <- seq(min(c(test1, test2)), max(c(test1, test2)), length = 100) 

    ## draw 
pheatmap(test1, breaks = Breaks, cluster_rows=FALSE, cluster_cols=FALSE) 
pheatmap(test2, breaks = Breaks, cluster_rows=FALSE, cluster_cols=FALSE) 

enter image description hereenter image description here

関連する問題