向R中的图添加不同曲线

问题描述 投票:1回答:2

我知道我可以使用layerlattice R包(请参见打击)将[[相同曲线作为latticeExtra添加到每个绘图窗格中。

但是假设我们要向每个绘图窗格添加

不同曲线。

例如,在下面的示例中,我想知道如何仅将v1添加到

顶部图

,将v2添加到左下图,以及将v3添加到右下]情节?library(lattice) library(latticeExtra) set.seed(24) v1 <- density(rnorm(1e3, 3.5)) v2 <- density(rnorm(1e3, 3)) v3 <- density(rnorm(1e3, 2.75)) foo <- xyplot((1:32*.01)~wt|gear , data = mtcars) foo + layer(panel.polygon(v1, col = 2, alpha = 0.3))
enter image description here
r plot lattice
2个回答
1
投票
这里是一个选项

foo + layer(if(panel.number() == 3) { panel.polygon(v1, col = 2, alpha = 0.3) } else if(panel.number() == 1) { panel.polygon(v2, col = 2, alpha = 0.3) } else{ panel.polygon(v3, col = 2, alpha = 0.3) })

enter image description here

数据

library(lattice) library(latticeExtra) set.seed(24) v1 <- density(rnorm(1e3, 3.5)) v2 <- density(rnorm(1e3, 3)) v3 <- density(rnorm(1e3, 2.75)) foo <- xyplot((1:32*.01)~wt|gear , data = mtcars)


0
投票
您可以使用ggplot2facet_grid

library(ggplot2) library(dplyr) # user data v1 <- (rnorm(1e3, 3.5)) v2 <- (rnorm(1e3, 3)) v3 <- (rnorm(1e3, 2.75)) # Make df1 from user data and associate with add gear value in `mtcars` df1 <- data.frame(wt = c(v1, v2, v3), gear = as.factor(c(rep(3, 1000), rep(4, 1000), rep(5, 1000)))) # select data from mtcars and add user defined values (`val`) df2 <- mtcars %>% mutate(val = 1:32 * 0.01) %>% remove_rownames() %>% mutate(gear = as.factor(gear)) %>% select(c(val, gear, wt)) ggplot(df2, aes(x = wt, y = val, #set up mapping with df2 fill = gear)) + geom_density(data = df1, #make density plots of df1 aes(x = wt, fill = gear), inherit.aes = FALSE) + #next add points from df1 geom_point(data = df2, aes(x = wt, y = val), inherit.aes = FALSE) + facet_grid(cols = vars(gear))

您可以通过向geom_density添加alpha值来使填充颜色更加透明。

enter image description here

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.