r - 多变量曲线图
问题描述
我有一个包含三个 X 变量(X1、X2、X3)和一个 Y 变量(Y)的数据集。X 变量的范围是 (-4 - 4) 和 Y (400 - 540)。
可以在下面生成数据集样本
df1 <- data.frame( Y = rnorm(1000,400:450),
X1 = rnorm(1000,-4:5),
X2 = rnorm(1000,-4:5),
X3 = rnorm(1000,-4:5)
)
我希望绘制一个图,其中三个 X 变量看起来像曲线,一条线显示 Y 的平均值。就像这个图
我试过 ggplot geom_line 但没有白费,
ggplot(read, aes(x=X1, y=Y)) + geom_line(linetype = 2)
我只能获得这样的密集线图
解决方案
library(tidyverse)
df1 = tibble(Y = rnorm(1000),
x = seq(-4, 5, length.out = 1000),
X1 = -2*x^2+7*x+1,
X2 = -4*x^2+7.5*x+3,
X3 = -2*x+10
)
df = df1 %>% pivot_longer(X1:X3) %>%
mutate(name = name %>% factor(labels = c("At school in general",
"Outside school for Schoolwork",
"Outside school for leisure")))
df %>%
ggplot(aes(x, value, color=name))+
geom_line(aes(linetype=name))+
geom_hline(yintercept =mean(df$Y))+
annotate("text", label="Mean reading perofmence", x=3, y=2)+
labs(x ="ITC use", y = "Reading performance")
推荐阅读
- python - 如何使用 Python 在 Amzon 中使用 sell-partner-api 上传数据
- html - CSS Flex 菜鸟在这里
- c# - 从具体类型到接口的铸造
- azure-web-app-service - 使用 powershell 或 azure cli 为多个 Azure webapp 插槽添加 vnet 集成
- reactjs - 即使使用不同的键,React 也不会重新渲染更新的地图
- javascript - 当单个数字附加到输入字段中的值时,onchange 事件侦听器不起作用 [type=number]
- c# - 为什么我的 C# 代码在 Windows 上运行但在 Linux 中抛出异常
- php - 使用 PHP Openssl 函数将 CSR 从 PEM 转换为 DER 格式
- java - 为什么双等号不适用于 for 循环条件,而小于等于在 Java 中有效?
- postgresql - 安排 REINDEX 表 CONCURRENTLY 作业