[英]Homogenizing scale for density plot
我正在從密度(內核)function 的點模式(PPP)制作一系列圖。 我希望在所有情況下的最大繪制數都是 200,並且只是相應的熱圖(其中兩個圖像只有 go 最多 100)。 我無法使用 R 基礎 plot 找到解決此問題的方法。
Microglia_Density <- density(Microglia_PPP, sigma =0.1, equal.ribbon = TRUE, col = topo.colors, main = "")
plot(Microglia_Density, main = "Microglia density")
Astrocytes_Density <- density(Astrocytes_PPP, sigma =0.1, equal.ribbon = TRUE, col = topo.colors, main = "")
plot(Astrocytes_Density, main = "Astrocytes density")
Neurons_Density <- density(Neurons_PPP, sigma =0.1, equal.ribbon = TRUE, col = topo.colors, main = "")
plot(Neurons_Density, main = "Neuronal density")
我會很感激建議。 問候
由於我們無權訪問您的數據,因此我在正方形中模擬了假數據。 有幾種選擇可以做你想做的事。 首先你應該知道density()
是一個通用的 function,所以當你在像Microglia_PPP
這樣的ppp
上調用它時,實際上會調用 function density.ppp density.ppp()
。 這個 function 返回一個im
object(實際上是值的二維“圖像”)。 You plot this with plot()
which in turn calls plot.im()
, so you should read the help file of plot.im()
, where it says that the argument col
controls the colours used in the plot. 您可以制作顏色 map 覆蓋您感興趣的值范圍並提供該顏色,或者如果您知道其中一個圖像具有您想要使用的顏色 map,您可以保存它並為其他圖像重復使用:
library(spatstat)
set.seed(42)
Microglia_PPP <- runifpoint(100)
Neurons_PPP <- runifpoint(200)
Neurons_Density <- density(Neurons_PPP, sigma = 0.1)
Microglia_Density <- density(Microglia_PPP, sigma = 0.1)
my_colourmap <- plot(Neurons_Density, main = "Neuronal density", col = topo.colors)
plot(Microglia_Density, main = "Microglia density", col = my_colourmap)
請注意,顏色圖是相同的,但僅涵蓋大約 80 到 310 的范圍。超出此范圍的圖像的任何值都不會被繪制,因此它們顯示為白色。
您可以先制作顏色 map,然后將其用於所有繪圖(請參閱help(colourmap)
):
my_colourmap <- colourmap(topo.colors(256), range = c(40,315))
plot(Neurons_Density, main = "Neuronal density", col = my_colourmap)
plot(Microglia_Density, main = "Microglia density", col = my_colourmap)
最后,如果您希望圖像並排,另一種解決方案是將它們imlist
(圖像列表)並使用plot.imlist()
和equal.ribbon = TRUE
:
density_list <- as.imlist(list(Neurons_Density, Microglia_Density))
plot(density_list, equal.ribbon = TRUE, main = "")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.