Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于因子的多个打印对象循环_R_Loops_Ggplot2_Facet - Fatal编程技术网

R 基于因子的多个打印对象循环

R 基于因子的多个打印对象循环,r,loops,ggplot2,facet,R,Loops,Ggplot2,Facet,我想根据一个因子生成单独的打印对象,这样我就可以使用grid_arrange而不是facet_grid将它们打印在一起,因为我发现这很笨拙 我想我需要一个for循环,但我不太理解它们——如果这就是我需要的,你能详细说明一下它是如何工作的吗 p <- ggplot(All, aes(x=variable, y=value, fill = Type)) p <- p + geom_bar(stat="identity" ) + facet_grid(~ Month) p #du

我想根据一个因子生成单独的打印对象,这样我就可以使用grid_arrange而不是facet_grid将它们打印在一起,因为我发现这很笨拙

我想我需要一个for循环,但我不太理解它们——如果这就是我需要的,你能详细说明一下它是如何工作的吗

p <- ggplot(All, aes(x=variable, y=value, fill = Type))
p <- p + geom_bar(stat="identity" ) + facet_grid(~ Month)
p   


#dummy data
All <- structure(list(Type = structure(c(5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L), .Label = c("Cargo ship", "Cargo ship:DG,HS,MP(A)", 
"Cargo ship:DG,HS,MP(B)", "Cargo ship:DG,HS,MP(D)", "Fishing", 
"Other:DG,HS,MP(B)", "Tanker", "Tanker:DG,HS,MP(B)"), class = 
"factor"), 
 Month = c("Jan", "Jan", "Jan", "Nov", "Jan", "Jan", "Jan", 
"Nov", "Jan", "Mar", "Jan", "Jan", "Jan", "Jan", "Jan", "Nov", 
 "Jan", "Mar", "Nov", "Mar", "Mar", "Feb", "Mar", "Mar", "Nov", 
 "Nov", "Jan", "Feb", "Mar", "Mar", "Nov", "Nov", "Dec", "Dec", 
 "Dec", "Dec", "Jan", "Jan", "Jan", "Jan", "Jan", "Jan", "Jan"
 ), Year = c(2019, 2019, 2019, 2018, 2019, 2019, 2019, 2018, 
2019, 2019, 2019, 2019, 2019, 2019, 2019, 2018, 2019, 2019, 
2018, 2019, 2019, 2019, 2019, 2019, 2018, 2018, 2019, 2019, 
2019, 2019, 2018, 2018, 2018, 2018, 2018, 2018, 2019, 2019, 
2019, 2019, 2019, 2019, 2019), variable = structure(c(4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("0-12", 
"0-25", "0-50", "0-100"), class = "factor"), value = c(1, 
0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 
0, 0, 0, 0)), row.names = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 360L, 361L, 362L, 363L, 364L, 365L, 366L, 367L, 368L, 
369L, 370L, 3300L, 3301L, 3302L, 3303L, 3304L, 3305L, 3306L, 
3307L, 3308L, 3309L, 3310L, 2460L, 2461L, 2462L, 2463L, 2464L, 
2465L, 2466L, 2467L, 2468L, 2469L, 2470L), class = "data.frame")

p您可以按
月份分割数据帧(使用
组分割
),然后使用
映射
绘图函数()循环该列表

库(tidyverse)
主题集(主题最小(基本大小=14))

plot_函数谢谢你,它可以稍微调整一下-因为我每个月都需要在x上有不同的变量,所以我更改了aes(x=变量…)-它没有通过月份标记我的图表-但我肯定能解决这个问题。这里所有的图表都以不同的颜色显示船型-是否可以通过图表使用一致的颜色??使用预先指定的颜色使用
scale\u fill\u manual
。看这个谢谢你-现在到了!谢谢你的意见!