r - 结合散点图和条形图,然后 lapply
问题描述
我正在尝试使用 ggplot 在同一绘图区域内添加散点图和条形图。散点图应该是 var 的平均值。'1' over var.'2' 对于一个数据集,条形图应该是我的控制数据集上的 '1' 的平均值。
我的数据如下所示:
> dput(lapply(ubbs6, head))
list(structure(c(96L, 96L, 100L, 88L, 93L, 100L, 61L, 61L, 70L,
40L, 58L, 70L, 7807L, 7357L, 7695L, 6400L, 6009L, 7735L), .Dim = c(6L,
3L), .Dimnames = list(NULL, c("1", "2", "3"))), structure(c(99L,
96L, 100L, 96L, 96L, 96L, 66L, 67L, 70L, 63L, 57L, 62L, 7178L,
6028L, 6124L, 6082L, 6873L, 5629L, 31L, 27L, 60L, 42L, 12L, 18L
), .Dim = c(6L, 4L), .Dimnames = list(NULL, c("1", "2",
"3", "4"))), structure(c(99L, 95L, 95L, 100L, 96L, 95L, 69L,
58L, 56L, 70L, 61L, 65L, 6067L, 6331L, 6247L, 5988L, 7538L, 6162L,
50L, 36L, 67L, 10L, 55L, 70L), .Dim = c(6L, 4L), .Dimnames = list(
NULL, c("1", "2", "3", "4"))))
到目前为止我尝试过的示例:
aggregate(ubbs6[[2]][,'1'], list(ubbs6[[2]][,'2']), mean)
m162 <- aggregate(ubbs6[[2]][,'1'], list(ubbs6[[2]][,'2']), mean)
m163 <- aggregate(ubbs6[[3]][,'1'], list(ubbs6[[3]][,'2']), mean)
m161 <- mean(ubbs6[[1]][,'1'])
ggplot(m162, aes_(x = m162[,'Group.1'], y = m162[,'x']))+
geom_point()+
geom_smooth(method = 'lm', formula = 'y ~ sqrt (x)')
我想做两件事:
添加我的控制集 (ubbs6[[1]]) 的一个 x,y 值的条形图
把它放到一个 lapply 结构中,这样我就可以对 11 个类似的数据集执行此操作
任何帮助将不胜感激!
**编辑:编辑了其他人理解代码不需要的特定细节**
解决方案
保存你的数据d
,你可以试试
ggplot(as.data.frame(d[[2]]),aes(age, FPAR) ) +
coord_cartesian(ylim = c(90,100)) +
geom_point() +
geom_smooth(method = 'lm', formula = 'y ~ sqrt (x)') +
geom_col(data=data.frame(x=max(as.data.frame(d[[2]])$age),
y=mean(as.data.frame(d[[1]])$FPAR)),
aes(x,y), inherit.aes = FALSE)
您必须使用coord_cartesian
来指定 y 限制和inherit.aes = FALSE
. 否则无法正确绘制条形图。
当您必须将第二个和第三个数据框组合在一个图中时,您可以尝试
library(tidyverse)
d %>%
.[2:3] %>%
map(as.data.frame) %>%
bind_rows(.id = "id") %>%
mutate(max = max(age),
Mean = mean(d[[1]][1])) %>%
ggplot(aes(age, FPAR, color=id)) +
geom_point() +
geom_smooth(method = 'lm', formula = 'y ~ sqrt (x)', se=FALSE) +
geom_col(data = . %>% distinct(max, Mean),
aes(max, Mean), inherit.aes = FALSE)
推荐阅读
- python - 如何使用python在网站上创建帐户?
- kotlin - Kotlin - 为什么没有像“ClosedRange”那样的“Progression”界面?
- mysql - Mysql在列值更改时仅选择最新行
- r - 如何在 R 中使用 predict 命令来验证我的训练模型决策树
- azure-devops - REST API 的 Azure Devops Maven 依赖
- python - 在 Python 中安装 Librosa
- python - 在浏览器中获取远程机器上代码的输出
- json - 为什么在加密和解密 JSON 文件时 Pycryptodome MAC 检查失败?
- java - 显示来自 ArrayList 的数据
- ios - 翠鸟导致主线程问题