我有这个数据框:
Date Server FileSystem PercentUsed
1 12/1/2011 A / 60
2 1/2/2012 A /var 50
3 2/1/2012 A tmp 90
4 2/10/2012 A /db 86
5 2/13/2012 A /app 90
6 12/1/2011 B C: 67
7 1/2/2012 B D: 67
8 2/1/2012 B F: 34
9 2/10/2012 B /restore 89
10 2/13/2012 B G: 56
11 12/1/2011 C / 90
12 1/2/2012 C /tmp 78
13 2/1/2012 C /data 67
14 2/10/2012 C /Storage 34
15 2/13/2012 C /database 12
dput(x)
structure(list(Date = structure(c(2L, 1L, 3L, 4L, 5L, 2L, 1L,
3L, 4L, 5L, 2L, 1L, 3L, 4L, 5L), .Label = c("1/2/2012", "12/1/2011",
"2/1/2012", "2/10/2012", "2/13/2012"), class = "factor"), Server = structure(c(1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L), .Label = c("A",
"B", "C"), class = "factor"), FileSystem = structure(c(1L, 9L,
14L, 5L, 2L, 10L, 11L, 12L, 6L, 13L, 1L, 8L, 3L, 7L, 4L), .Label = c("/",
"/app", "/data", "/database", "/db", "/restore", "/Storage",
"/tmp", "/var", "C:", "D:", "F:", "G:", "tmp"), class = "factor"),
PercentUsed = c(60L, 50L, 90L, 86L, 90L, 67L, 67L, 34L, 89L,
56L, 90L, 78L, 67L, 34L, 12L)), .Names = c("Date", "Server",
"FileSystem", "PercentUsed"), class = "data.frame", row.names = c(NA,
-15L))
我想在每个
facet_wrap
旁边放置一个图例
网格,它自己的
FileSystem
:
当我这样做时,它将图例放在所有
FileSystem
的情节侧面
.有可能把
FileSystem
属于每个网格旁边的每个服务器?
ggplot(x, aes(Date, PercentUsed, group=1, colour=FileSystem)) +
geom_jitter(size=0.5) + geom_smooth(method="loess", se=T) +
facet_wrap(~Server, ncol=1)
最新回答
- 2021-1-81 #
- 2021-1-82 #
最好的方法是使用 gridExtra 包装:
library(gridExtra) xs <- split(x,f = x$Server) p1 <- ggplot(xs$A,aes(x = Date,y = PercentUsed,group = 1,colour = FileSystem)) + geom_jitter(size=0.5) + geom_smooth(method="loess", se=T) + facet_wrap(~Server, ncol=1) p2 <- p1 %+% xs$B p3 <- p1 %+% xs$C grid.arrange(p1,p2,p3)
- 2021-1-83 #
我们可以使用 每个组的绘图列表,然后使用cowplot :: plot_grid进行绘图.每个人都有自己的传说:
# make list of plots ggList <- lapply(split(x, x$Server), function(i) { ggplot(i, aes(Date, PercentUsed, group = 1, colour = FileSystem)) + geom_jitter(size = 2) + geom_smooth(method = "loess", se = TRUE)}) # plot as grid in 1 columns cowplot::plot_grid(plotlist = ggList, ncol = 1, align = 'v', labels = levels(x$Server))
如@Axeman所建议,我们可以使用
facet_grid(~Server)
添加标签 ,而不是labels = levels(x$Server)
相关问题
- r:在ggplot2中将构面标签更改为数学公式rggplot22021-01-12 01:28
- r:ggplot2-大小单位rggplot22021-01-11 23:55
- r:ggplot2条形图的多个子组rggplot22021-01-11 18:55
- r:通过过滤隐藏对象来减少绘图的PDF文件大小rpdfvectorplotggplot22021-01-10 19:26
- r:如何在ggplot2的构面中添加常规标签?rlabelfacetggplot22021-01-09 22:55
Meh,@ joran击败了我(我的
gridExtra
已经过时,但花了我10分钟才意识到).这是一个类似的解决方案,但是这只猫通常按Server
中的级别