Dataframes 使用ggplot2在for循环中添加图例标题
我有以下代码来绘制列表中的我的。绘图有18个数据帧。数据帧的命名约定如下:84-9、84-12、84-15、92-9、92-12、92-15、100-9、100-12、100-15、108-9、108-12、108-15、116-9、116-12、116-15、124-9、124-12、124-15 下面提供了列表中的示例数据帧。所有数据帧的格式和大小都相同:Dataframes 使用ggplot2在for循环中添加图例标题,dataframes,plot,r,ggplot2,legend,Dataframes,Plot,R,Ggplot2,Legend,我有以下代码来绘制列表中的我的。绘图有18个数据帧。数据帧的命名约定如下:84-9、84-12、84-15、92-9、92-12、92-15、100-9、100-12、100-15、108-9、108-12、108-15、116-9、116-12、116-15、124-9、124-12、124-15 下面提供了列表中的示例数据帧。所有数据帧的格式和大小都相同: Plot[["84-9"]] Names Type Shear Moment <chr>
Plot[["84-9"]]
Names Type Shear Moment
<chr> <chr> <dbl> <dbl>
1 Baseline ext_multi 0.824 0.614
2 Baseline ext_single 0.734 0.464
3 Baseline int_multi 0.727 0.527
4 Baseline int_single 0.599 0.338
5 Sample ext_multi 0.829 0.626
6 Sample ext_single 0.737 0.475
7 Sample int_multi 0.712 0.512
8 Sample int_single 0.595 0.327
9 Sample ext_multi 0.823 0.611
10 Sample ext_single 0.737 0.464
# ... with 34 more rows
Plot[“84-9”]]
剪切力矩类型
1基线分机多0.824 0.614
2基线分机单台0.734 0.464
3基线综合指数0.727 0.527
4基线内单0.599 0.338
5示例ext_multi 0.829 0.626
6样本分机单个0.737 0.475
7示例int_multi 0.712 0.512
8样品内单0.595 0.327
9示例ext_multi 0.823 0.611
10样本分机单个0.737 0.464
# ... 还有34行
我使用以下代码
library(ggplot2)
for (i in 1:length(Plot)) {
plot.Shear <- ggplot(data = subset(Plot[[i]], Names = "Sample"), aes(x = Type, y = Shear)) +
geom_boxplot(outlier.shape = NA) +
stat_summary(fun = mean, geom="point", shape=23, size=3) +
stat_boxplot(geom='errorbar', linetype=1, width=0.5) +
geom_point(data = subset(Plot[[i]], Names != "Sample"), aes(colour = Names)) +
scale_color_manual(values=c("red","green4","black")) +
theme(legend.title=element_blank()) +
theme(axis.title.x=element_blank()) +
theme(axis.title.y=element_blank()) +
labs(title = "Shear Live Load Distribution Factors") +
theme(plot.title = element_text(hjust = 0.5))
print(plot.Shear)
}
库(ggplot2)
用于(i/1:长度(绘图)){
绘图。剪切您的数据可能无助于完全重现您的问题。我通常会尽量避免在不必要的情况下创建绘图循环!可能有更好的选项来可视化单独的组。考虑刻面。
带有循环的选项(我不希望这样做)
顺便说一句,我已经把你的绘图代码精简到一些更重要的部分
库(tidyverse)
绘图您的数据可能无助于完全重现您的问题。我通常会尽量避免在不必要的情况下创建绘图循环!可能有更好的选项来可视化单独的组。考虑面处理
带有循环的选项(我不希望这样做)
顺便说一句,我已经把你的绘图代码精简到一些更重要的部分
库(tidyverse)
这是否回答了您的问题?另外,请大体上使您的问题具有可复制性。我链接到的问题包含链接到如何做到这一点的注释。@Tjebo非常感谢您的回复,我更新了帖子以包含一个示例数据框。我可以制作ggtitle()绘图变量和您提到的示例的属性是相同的。我正在尝试为图例标题这样做,但它不起作用。这是否回答了您的问题?另外,请大体上使您的问题重复。我链接到的问题包含链接到如何做到这一点的注释。@Tjebo非常感谢您的回答,我将继续我可以制作绘图变量的ggtitle(),你提到的例子也是一样。我正在尝试为图例标题制作ggtitle(),但它不起作用。非常感谢。我是否可以在名称(列表数据)[I]之前添加字符串UG
用于color=
并将图例标题居中谢谢!现在我可以使用color=as.character(“UG”)
或color=names(我的列表)[I]将图例标题设置为UG
如果84-9是数据帧的名称,我如何将它们加在一起,使图例标题显示UG84-9i@MaralDorri请参阅更新的答案。我真的建议使用刻面技术-让您的生活更轻松。非常感谢。我是否可以在名称(列表数据)[I]之前添加字符串UG
用于color=
并将图例标题居中谢谢!现在我可以使用color=as.character(“UG”)
或color=names(我的列表)[I]将图例标题设置为UG
如果84-9是数据帧的名称,我如何将它们加在一起,使图例标题显示UG84-9i@MaralDorri请参阅更新的答案。我真的很推荐刻面-让你的生活更轻松。
#devtools::install_github("alistaire47/read.so")
mydat <- read.so::read_so("Names Type Shear Moment
<chr> <chr> <dbl> <dbl>
1 Baseline ext_multi 0.824 0.614
2 Baseline ext_single 0.734 0.464
3 Baseline int_multi 0.727 0.527
4 Baseline int_single 0.599 0.338
5 Sample ext_multi 0.829 0.626
6 Sample ext_single 0.737 0.475
7 Sample int_multi 0.712 0.512
8 Sample int_single 0.595 0.327
9 Sample ext_multi 0.823 0.611
10 Sample ext_single 0.737 0.464")