我有一个data.frame或矩阵,我想转入一个简单的情节。 我尝试过热图和corrgram,但那些是复杂的,并且正在做我不想要的事情(缩放等)。
矩阵看起来像这样:
___ 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吗?
希望有人有个主意! TY
答案 0 :(得分:1)
此处使用ggplot2
的解决方案和@agstudy回答中提供的数据框dat
。
library(ggplot2)
ggplot(dat,aes(x,y,fill=z))+geom_tile()+
scale_fill_gradient(low="red",high="darkred")
答案 1 :(得分:0)
您可以从levelplot.points
包中将其显示为latticeExtra
。
首先,我重新创建您的数据。我的数据是3列x(1:4),y(1:4),z是输入矩阵的水平。
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())