回答:
@GaBorgulyaの応答に基づいて、変動またはレベルプロット(別名ヒートマップ表示)を試すことをお勧めします。
library(ggplot2, quietly=TRUE)
k <- 100
rvals <- sample(seq(-1,1,by=.001), k, replace=TRUE)
rvals[sample(1:k, 10)] <- NA
cc <- matrix(rvals, nr=10)
ggfluctuation(as.table(cc)) + opts(legend.position="none") +
labs(x="", y="")
(ここでは、欠落しているエントリはプレーングレーで表示されますが、デフォルトの配色は変更でき、凡例に「NA」を入れることもできます。)
または
ggfluctuation(as.table(cc), type="color") + labs(x="", y="") +
scale_fill_gradient(low = "red", high = "blue")
(ここでは、欠損値は単に表示されません。ただし、geom_text()
空のセルに「NA」などを追加して表示できます。)
hclust(…)$order
)[ stat.ethz.ch/R-manual/R-devel/library/stats/html/hclust.html]で行と列を並べ替えると、多くの場合、視覚化の概要がわかりやすくなります。
mixOmics::cim
機能はとても良いです。関連する問題はここで議論されました、stats.stackexchange.com/questions/8370/…。
あなたのデータは
name1 name2 correlation
1 V1 V2 0.2
2 V2 V3 0.4
次のRコードを使用して、長いテーブルを広いテーブルに再配置できます
d = structure(list(name1 = c("V1", "V2"), name2 = c("V2", "V3"),
correlation = c(0.2, 0.4)), .Names = c("name1", "name2",
"correlation"), row.names = 1:2, class = "data.frame")
k = d[, c(2, 1, 3)]
names(k) = names(d)
e = rbind(d, k)
x = with(e, reshape(e[order(name2),], v.names="correlation",
idvar="name1", timevar="name2", direction="wide"))
x[order(x$name1),]
あなたが得る
name1 correlation.V1 correlation.V2 correlation.V3
1 V1 NA 0.2 NA
3 V2 0.2 NA 0.4
4 V3 NA 0.4 NA
これで、相関行列(少なくとも欠損値に対処できるもの)を視覚化する手法を使用できます。
reshape
パッケージには、同様に役立ちます。あなたが持ったらe
、次のようなものを検討してくださいlibrary(reshape) cast(melt(e), name1 ~ name2)
ggfluctuation
以前に見たことがない!:この投稿は、デートのこのタイプを可視化するための他の有用なコードがあるstackoverflow.com/questions/5453336/...