r - 如何为列表中的多个数据框图添加标题?
问题描述
我正在尝试使用 ggplot 为包含在名为“list1”的列表中的 20 个数据帧(“df1”-“df20”)创建图。该列表如下所示:
list1 <- list(df1, df2, ..., df20)
每个数据框都有两列 z 和 y 我要相互绘制:
df1
z y
1 6
2 9
3 7
我创建了以下代码,它也可以工作,但它没有提供从 df1 到 df20 的相应标题的图:
lapply(list1, function(x)
ggplot(data = list1$x) +
geom_line(mapping = aes(x = x$z,
y = x$y)))
我尝试将所有名称放在一个向量中,并在代码中包含这个向量,如下所示:
titlenames <- c(df1, df2, ..., df20)
+ ggtitle(titlenames)
但这仅提供了所有情节的名字。
将不胜感激任何帮助,因为我对 R 还是很陌生。
解决方案
您可以尝试使用mapply
(类似于lapply
但首先使用该函数,并且可以遍历多个等长列表/向量)与数据列表和名称向量:
mapply(function(df, titlename) {
ggplot(data = df) +
geom_line(mapping = aes(x = z, y = y)) +
ggtitle(titlename)
}, list1, titlenames)
我发现因为 的格式与mapply
不同lapply
,所以很难记住。该软件包purrr
提供了我认为更清洁的替代方案:
purrr::map2(list1, titlenames, function(df, titlename) {
ggplot(data = df) +
geom_line(mapping = aes(x = z, y = y)) +
ggtitle(titlename)
})
推荐阅读
- swift - AF 没有成员“responseDecodable”与路由器
- mpandroidchart - 尝试在空对象引用 BarChart 上调用虚拟方法 'com.github.mikephil.charting.charts.BarChart.setMarker'
- c# - 使用 Cudafy 获取总 GPU 内存。返回最大 ulong 值
- python - 如何在 Python 中循环并增加 Excel 工作簿公式中的行?
- text - 允许从选定文件创建项目的 Macos 文本编辑器
- javascript - 如何从外部访问 js 包文件中的变量?
- python - 在 jupyter notebook 上显示 selenium webdriver 打开的 url
- python - 如何在python中模拟后续函数调用?
- python - SGD算法从零开始预测电影评分
- python - 如何使用 cv2 计算图像中的不同颗粒?