2017-06-22 11 views
1

pheatmapDocumentation)を使用してヒートマップをプロットしています。私はかなり簡単な方法で行列をプロットしています:私は一番下に列名を見ることができないように、私のプロットの底部が切り取らなっているpheatmapを使用すると列ラベルが切り取られる

pheatmap(mat, annotation_col=df, labels_col=rld$Infection_Line, fontsize_row=5, fontsize_col=7) 

。それは次のようになります。

enter image description here

これはheatmap.2ませんのでご注意ください。

私はthis questionthis questionで解決策を試しただけでなく、Googleとこの機能のドキュメントで見つけることができたこともありました。

私はpar()とoma()とcexRowを使ってマージンを増やそうとしました。

margins=(x,y); par(mar=c(1,2,3,4)); par(oma=c(1,2,3,4)) 

はプロットに影響しません。

プロットサイズを小さくすることなく、長い列名が見えるようにする必要があります。私はちょうど下にマージンを伸ばしたいと思う。

+1

***再現性の例。***私たちはあなたを助けるためにあなたのエラー/問題を再現することができるはずです。私が他の質問で提供したリンクを読んでください。 – Masoud

+0

ヒートマップについての投稿にリンクしている理由2。特にあなたのポストでこれのポイントを作るとき。 – emilliman5

+0

@ emilliman5彼の以前の質問は重複としてマークされていたためです。 P.S. ** downvoters **には、コメントなしでdownvoteしないでください。 – Masoud

答えて

0

私はこれを理解しましたが、今後誰かがこの問題を抱えていれば助けになると思います。

これは、pheatmapのlabels_col =引数を使用している場合に発生します。私のシナリオでは、DESeq2を使ったRNA-seqプロジェクトでは、サンプル(列)を識別するターゲットファイルがありましたが、私の列ラベルでは別の列を使用していたので、ラベルを分かりやすいように使用しました。

labels_col=myThing$ThisOtherColumn 

実際に文字と数字を含む文字列が何らかの理由で整数ベクトルとして読み取られていました。そこで解決策は何ですか?

as.character(myThing$ThisOtherColumn) 

labels_colに文字ベクトルを渡す限り、自動的に列が調整されます。

2

pheatmapはグリッドグラフィックを使用しているため、par()のようなベースグラフィックス機能は効果がありません。私は、引数cellheightcellwidthを手動で調整すると、ページ上のヒートマップ全体のサイズを調整するのに役立つことがわかりました。または何らかの方法でマージンを調整します。

library(pheatmap) 
dfr <- as.data.frame(t(data.frame(x=runif(10),y=runif(10),z=runif(10)))) 
md <- data.frame(cat1=sample(x=letters[1:4],10,replace=T),cat2=sample(x=letters[6:7],10,replace=T)) 
rownames(md) <- colnames(dfr) 
pheatmap(dist(as.data.frame(t(dfr))),annotation_col=md,annotation_row=md) 

enter image description here

pheatmap(dist(as.data.frame(t(dfr))),annotation_col=md,annotation_row=md, 
     cellheight=15,cellwidth=15) 

enter image description here

関連する問題