Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.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 在ggplot中使用面时,指定每行的打印顺序_R_Ggplot2_Facet - Fatal编程技术网

R 在ggplot中使用面时,指定每行的打印顺序

R 在ggplot中使用面时,指定每行的打印顺序,r,ggplot2,facet,R,Ggplot2,Facet,上面的代码制作了一个有4列的平面图 我想知道是否可以指定哪一行上有哪些绘图?例如,如果我想在第1行显示“antlr”、“bloat”和“chart”;第2行的“eclipse”和“fop”和“hsqldb”以及“jython”;第3行的“luindex”,以及第4行的其余部分。这是否可行?是否可以在每行的开头添加一个关键字,并在最左侧的绘图中添加一个描述性单词? 例如,第1行将读取“A行”;第2行将读取“B行”,依此类推。只需设置ncol编号 d=expand.grid(obs=0:10, be

上面的代码制作了一个有4列的平面图

我想知道是否可以指定哪一行上有哪些绘图?例如,如果我想在第1行显示“antlr”、“bloat”和“chart”;第2行的“eclipse”和“fop”和“hsqldb”以及“jython”;第3行的“luindex”,以及第4行的其余部分。这是否可行?是否可以在每行的开头添加一个关键字,并在最左侧的绘图中添加一个描述性单词?
例如,第1行将读取“A行”;第2行将读取“B行”,依此类推。

只需设置ncol编号

d=expand.grid(obs=0:10, benchmark=c('antlr', 'bloat', 'chart', 'eclipse', 'fop', 'hsqldb', 'jython', 'luindex', 'lusearch', 'pmd', 'xalan'), gc=c('CopyMS', 'GenCopy', 'GenImmix', 'GenMS', 'Immix'), opt=c('on', 'off'), heapSize=seq(from=1.5, to=4, by=0.5))
d$time = rexp(nrow(d), 0.01)+1000
d$time = d$time + abs(d$heapSize-3)*100
d$time[d$opt=='on'] = d$time[d$opt=='on']-200

d$time[d$opt=='on' & d$benchmark=='bloat'] = d$time[d$opt=='on' & d$benchmark=='bloat'] + 190
d$time[d$opt=='on' & d$benchmark=='pmd' & d$gc=='Immix'] = d$time[d$opt=='on' & d$benchmark=='pmd' & d$gc=='Immix'] + 600


ggplot() +
  facet_wrap(~benchmark) +
  geom_boxplot(data=d, mapping=aes(x=opt, y=time, color=opt))
如果您想要更具体的订单,请使用:

ggplot() +
  facet_wrap(~benchmark, ncol = 3) +
  geom_boxplot(data=d, mapping=aes(x=opt, y=time, color=opt))

谢谢,但如果每行有不同数量的绘图,该怎么办?我想您需要grid.arrange,这可能会有帮助:
ggplot(data=d) +
  facet_wrap(.~factor(benchmark,levels = c('Name of Graph 1','Name of Graph 2', 'Name of Graph 3', 'Name of Graph etc'),ordered = TRUE), ncol = 3) +
  geom_boxplot(mapping=aes(x=opt, y=time, color=opt))