[英]R: Plotting a grid of values
我有這個簡單的可重現代碼,可以生成一些值:
total=0
X=1
for(i in 1:3){
Y=0.1
index=1
index1=1
value=0
values=0
for(i in 1:15){
value[[index]]=10+X*Y+i
if(index%%5==0){
values[[index1]]=mean(value)
index1=index1+1;
index=0
value=0
Y=Y+1
}
index=index+1;
}
total=c(total,values)
X=X+1
}
total=total[-1]
對於
X=1
和Y=0.1
會生成13.1
X=1
和Y=1.1
會生成19.1
X=1
和Y=2.1
會生成25.1
X=2
和Y=0.1
會產生13.2
X=2
和Y=1.1
會產生20.2
X=2
和Y=2.1
會產生27.2
X=3
和Y=0.1
會產生13.3
X=3
和Y=1.1
會產生21.3
X=3
和Y=2.1
會產生29.3
因此,我總共得到9個值,我想要做的是將它們繪制在網格中。 應該是這樣或類似的東西:
X可以在頂部或底部無關緊要,也可以在Y上着色,以便較小的值具有較淺的顏色,較大的值具有較暗的顏色。
有什么辦法可以在R中繪制該圖嗎? 我非常感謝任何提示。 我真的不知道如何以最簡單的方式做到這一點。 我可以繪制一個空網格,但不知道如何添加線和值。 可能有任何可以快速完成類似任務的軟件包嗎?
或者,如果有人可以建議我另一種類型的繪圖,則可以用它們的值繪制X和Y。
我非常感謝任何建議。
嘗試類似的方法,然后嘗試以下顏色:
plot_table <- function(d, colors, marginColor,main="", text.cex=1.0){
plot(c(-1,ncol(d)),c(0,nrow(d)+1), type="n", xaxt="n", yaxt="n", xlab="",ylab="",main=main, bty="n")
for (c in 1:ncol(d)) {
rect(c-1, nrow(d), c, nrow(d) + 1, col=marginColor)
text(c-.5,nrow(d) +.5,colnames(d)[c], cex=text.cex)
}
for (r in 1:nrow(d)) {
rect(-1, r-1, 0, r, col=marginColor)
text(-.5, r-.5,rownames(d)[nrow(d) - r + 1], cex=text.cex)
}
for (r in 1:nrow(d))
for (c in 1:ncol(d)) {
rect(c-1, r-1, c, r, col=colors[nrow(d) - r + 1,c])
text(c-.5,r-.5,d[nrow(d) - r + 1,c], cex=text.cex)
}
}
d <- matrix(c(1,2,3,4,5,6,7,8,9) , nrow = 3)
colnames(d) <- c("1","2","3")
rownames(d) <- c("1","2","3")
colors <- matrix(sapply(d, function(x) ifelse(x < 20, "purple","green")),ncol=ncol(d))
par(mar=c(0,0,1,0))
plot_table(d, colors, "gray",main="returns", text.cex=0.8)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.