1

シンプルなプロットに変換したい data.frame またはマトリックスがあります。ヒートマップとコーグラムを試しましたが、それらは複雑すぎて、やりたくないこと (スケーリングなど) を行っています。

マトリックスは次のようになります。

___V1_V2_V3_V4

V1--NA--0---1----1

V2---0--NA--4----2

V3---1---4--NA---3

V4---1---2---3---NA

では、V1 が V2、V3、および V4 と共通点を持つ頻度はどれくらいですか。対角三角形の下半分が必要で、対角線には変数名があり、5 つの値 (0 から 4) があるため、ボックス内に明るい赤から暗い赤まで 5 つの赤の色合いが必要です。

rect() と text() を使用して自分で作成する必要がありますか?しかし、私のマトリックスはこの例よりも大きいため、すべてのボックスを手動で描画する代わりに、それをループしたいと思います。ggplot2でできますか?

誰もがアイデアを持っていることを願っています! タイ

4

2 に答える 2

1

ここで使用するソリューションと、 @agstudy の回答で提供されるggplot2データ フレーム。dat

library(ggplot2)
ggplot(dat,aes(x,y,fill=z))+geom_tile()+
  scale_fill_gradient(low="red",high="darkred")

ここに画像の説明を入力

于 2013-03-05T14:13:52.033 に答える
0

パッケージlevelplot.pointsからこれを提示することができます。latticeExtra

ここに画像の説明を入力してください

まず、データを再作成します。私のデータは、入力行列のレベルであるx(1:4)、y(1:4)、zの3列です。

mm <- rbind(
  c(NA,0,1,1),
  c(0,NA,4,2),
  c(1,4,NA,3),
  c(1,2,3,NA))
dat <- expand.grid(x=1:ncol(mm),y=1:nrow(mm))
dat$z <- as.vector(mm)

library(latticeExtra)
levelplot(z~x*y,data=dat,
       panel=function(...)
       {
         panel.levelplot.points(...,cex=10,pch=22)
         panel.grid()
       },par.settings=ggplot2like())
于 2013-03-05T14:09:22.220 に答える