簡體   English   中英

在R中疊加10個密度圖,其顏色與重疊圖的數量成比例

[英]Overlay 10 density plots in R with colour proportional to number of overlapping plots

我有一個包含224900個觀測值和10個變量的數據集,它們是不同泰勒級數回歸到原始數據值的結果。 我希望覆蓋這10個變量中每個變量的密度圖,以顯示泰勒級數反向變換對數據估計的魯棒性水平。 我不認為只有10行,而是應用顏色會很好,因此每個密度圖都會產生10%的灰度。 如果有數據只與其中一個圖相關,那么將有10%灰色,兩個圖表將是20%的兩倍深度,直到所有密度圖重疊的位置,這將是100%。

我使用了melt來獲得長度為2249000行的數據幀。 有三列,第一列是人物ID,第二列是分組變量( variable ),第三列是每日kJ攝入量( value )。

我使用以下代碼覆蓋ggplot2的密度圖,但它為組使用不同的顏色。 如何更改此代碼以獲得灰度? 我希望所有10組具有相同的顏色和顏色密度; 該圖的目的僅僅是使用灰度在視覺上顯示密度圖上的重疊量。

ggplot(Energy, aes(x=value, fill=variable)) + geom_density(alpha = 0.5)

一些測試數據可供那些希望提供幫助的人使用5組而不是10組:

variable <- c(rep("A",100), rep("B",100), rep("C",100), rep("D",100), rep("E",100))
value <- c(rnorm(100,5000,200), rnorm(100,5050,210), rnorm(100,5100,215), 
           rnorm(100,5150,220), rnorm(100,5200,225))
MyData <- cbind.data.frame(value, variable)
ggplot(MyData, aes(x=value, fill=variable)) + geom_density(alpha = 0.5)

我認為答案可能與修改scale_colour_grey和/或scale_manual但我不太了解自己解決這個問題。

這可以通過使用group美學並使密度fill為灰色的淺灰色gray10或灰色gray10 gray20

ggplot(MyData, aes(x=value, group=variable)) + geom_density(alpha = 0.5, fill="gray20")

哪個會給你:

密度圖

在你的情況下你可能想要gray10 ,因為你有10組,而不是這里繪制的5組。

暫無
暫無

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

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