我知道如何在一張圖上繪制多條密度曲線/多角線圖,但不知道條件密度圖。可重現的例子:
require(ggplot2)
# generate data
a <- runif(200, min=0, max = 1000)
b <- runif(200, min=0, max = 1000)
c <- sample(c("A", "B"), 200, replace =T)
df <- data.frame(a,b,c)
# plot 1
ggplot(df, aes(a, fill = c))
geom_density(position='fill', alpha = 0.5)
# plot 2
ggplot(df, aes(b, fill = c))
geom_density(position='fill', alpha = 0.5)
在我的真實資料中,我有一堆這些成對的條件密度圖,我需要將一個覆寫在另一個上,以查看(并顯示)它們有多么不同(或相似)。有誰知道如何做到這一點?
uj5u.com熱心網友回復:
一種方法是將兩個版本繪制為圖層。
例如,您可以使填充僅適用于一個圖層,但另一圖層使用group美學區分組,并且可能使用不同的線型。這對我來說似乎更具可讀性,特別是如果兩個變數的自然排序證明將一個放在“前景”和一個放在“背景”是合理的。
ggplot(df)
geom_density(aes(a, group = c), position='fill', alpha = 0.2, linetype = "dashed")
geom_density(aes(b, fill = c), position='fill', alpha = 0.5)

uj5u.com熱心網友回復:
我不太確定“在另一個之上”是否是一個好主意。喬恩的想法可能是要走的路。但是并排繪制怎么樣 - 我們的大腦可以應對這一點,我們可以很好地比較它。
讓它變長,然后使用刻面。
另一種選擇可能是影片圖(請參閱下面的第二個代碼塊)。
require(ggplot2)
#> Loading required package: ggplot2
library(tidyverse)
a <- runif(200, min=0, max = 1000)
b <- runif(200, min=0, max = 1000)
#### BAAAAAD idea to call anything "c" in R!!! Don't do this. ever!
d <- sample(c("A", "B"), 200, replace =T)
df <- data.frame(a,b,d)
df %>% pivot_longer(cols = c(a,b)) %>%
ggplot(aes(value, fill = d))
geom_density(position='fill', alpha = 0.5)
facet_grid(~name)

library(gganimate)
p <- df %>% pivot_longer(cols = c(a,b)) %>%
ggplot(aes(value, fill = d))
geom_density(position='fill', alpha = 0.5)
labs(title = "{closest_state}")
p_anim <- p transition_states(name)
animate(p_anim, duration = 2, fps = 5)

由
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/493198.html
上一篇:條形圖-堆疊的ggplot百分比條形圖起始值不是0%
下一篇:從物件陣列創建新的物件陣列
