簡體   English   中英

如何在 R 中的基本圖上疊加熱圖?

[英]How to overlay a heatmap on basic plot in R?

由 plot() 繪制的半個足球場

在此處輸入圖片說明

這就是我如何繪制這個足球場。

par(bg="transparent")
plot(0,0,type="n",xlim=c(-50,50),ylim=c(0,60),ann=F,axes=F,xaxt="n",yaxt="n"
library("jpeg")
ima=readJPEG("C:/Users/USER/Desktop/g5.jpg")
lim=par()
rasterImage(ima, lim$usr[1], lim$usr[3], lim$usr[2], lim$usr[4])
segments(35,65,35,40,col="white",lwd=3)
segments(-35,65,-35,40,col="white",lwd=3)
segments(-35,40,35,40,col="white",lwd=3)
segments(14,65,14,55,col="white",lwd=3)
segments(-14,65,-14,55,col="white",lwd=3)
segments(-14,55,14,55,col="white",lwd=3)
par(new=T)
curve(sqrt(14^2-x^2)-3,xlim=c(-50,50),ylim=c(0,60),axes="F",ann="F",col="white",lwd=3)

par(new=T)
curve(-sqrt(14^2-x^2)+50,xlim=c(-50,50),ylim=c(0,60),from=-sqrt(96),to=sqrt(96),axes="F",ann="F",col="white",lwd=3)
par(new=T)
curve(-sqrt(5^2-(x+54)^2)+62.5,xlim=c(-50,50),ylim=c(0,60),from=-54,to=-49,axes="F",ann="F",col="white",lwd=3)
par(new=T)
curve(-sqrt(5^2-(x-54)^2)+62.5,xlim=c(-50,50),ylim=c(0,60),from=49,to=54,axes="F",ann="F",col="white",lwd=3)
box(which="plot",col="white",lwd=3)

我想在上面添加一個熱圖,如下圖所示:

我期望繪制什么

在此處輸入圖片說明

我嘗試了很多繪制熱圖的方法,但我遇到的常見問題是我不知道如何將熱圖放在我繪制的足球場上。 抱歉,我是 R 的初學者,所以我認為這是我執行此操作的最簡單方法(疊加)。 謝謝!

如何使用帶有add=TRUE image函數,其中矩陣用於指定要添加的區域。

這是一個簡單(而且相當無聊)的例子。

## Create raster image
plot(c(100, 250), c(300, 450), type = "n", xlab = "", ylab = "")
image <- as.raster(matrix(0:1, ncol = 5, nrow = 3))
rasterImage(image, 100, 300, 150, 350, interpolate = FALSE)

## Add an area
newarea <- matrix(NA, nrow=150, ncol=150)
newarea[100:140,100:110] <- 3
newarea[100:140,110:120] <- 4
image(x=100:250, y=300:450, z=newarea, add=T)

保證是很重要的xy在第二通話image功能分別對應於x和第一標繪Y限制,否則新的區域將不可見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM