根据ggplot2中的x值在图的两侧(左右)绘制一个“ geom_rug”

问题陈述

假设我具有以下两个变量的功能

f <- function(x,y){
    return(x*y + (x^3)*sin(y))
}

我想固定两个x点,例如在x=2x=3处,然后,我想得到100个标准随机正态样本,该样本我将以y值的形式输入。

数据是什么样的

这就是数据的样子

set.seed(1)
y <- rnorm(100)
df <- data.frame(
    x = c(rep(2,50),rep(3,50)),y=c(f(2,head(y,f(3,tail(y,50)))
)
head(df)
  x         y
1 2 -5.943113
2 2  1.828189
3 2 -7.605003
4 2 11.188164
5 2  3.247634
6 2 -7.492659

数据的标准散点图

df$x <- as.factor(df$x)
ggplot(data=df,aes(x=x,y=y)) + 
    geom_point()

根据ggplot2中的x值在图的两侧(左右)绘制一个“ geom_rug”

我要做什么

基本上,我想在左边有两个geom_rug(),分别对应于x=2的散点,在右边有一个x=3,对应于散点图。我可以为所有分散点生成一个geom_rug(),如下所示,但是我不知道如何拥有两个不同的

ggplot(data=df,y=y)) + 
    geom_point(aes(color=x)) + 
    geom_rug()

根据ggplot2中的x值在图的两侧(左右)绘制一个“ geom_rug”

理想情况下,我希望左侧的地毯图与x=2上的散点具有相同的颜色,而右侧的地毯图与{{ 1}}。

xinjiangxingda 回答:根据ggplot2中的x值在图的两侧(左右)绘制一个“ geom_rug”

正如我所说,我确实通过使用

解决了问题
ggplot(data=df,aes(x=x,y=y,color=x)) + 
  geom_point(aes(color=x)) + 
  geom_rug(data=subset(df,x==2),sides="l",aes(y=y)) + 
  geom_rug(data=subset(df,x==3),sides="r")
本文链接:https://www.f2er.com/3101974.html

大家都在问