Dataframes 使用ggplot2在for循环中添加图例标题

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>

我有以下代码来绘制列表中的我的。绘图有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>    <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")