grid.arrange 中的条件图
Conditional Graph in grid.arrange
有没有办法使用像
这样的结构
grid.arrange(
ifelse(somecondition,graph1,graph2),
ifelse(somecondition2,graph3,graph4),
ncol=2
)
其中 graphX
是绘图(使用 ggplot2
创建)或先前定义的 grob。看起来 ifelse
在打印之前将 grob
对象评估为其他对象(数据框?),因此 grid.arrange
无法获得正确的输入以正常工作。
我还尝试将所有图形对象存储在一个集合中并在 grid.arrange
中使用它,但无法获得合适的数据结构来很好地工作。
使用if() ... else ...
,而不是ifelse
,
p1 = qplot(1,1)
p2 = qplot(1,2)
p3 = qplot(1,3)
p4 = qplot(1,4)
grid.arrange(
if(1 == 2) p1 else p2,
if(3 == 3) p3 else p4,
ncol=2
)
如果您想先将它们存储在列表中,
pl = list(if(1 == 2) p1 else p2, if(3 == 3) p3 else p4)
grid.arrange(grobs=pl, ncol=2)
有没有办法使用像
这样的结构grid.arrange(
ifelse(somecondition,graph1,graph2),
ifelse(somecondition2,graph3,graph4),
ncol=2
)
其中 graphX
是绘图(使用 ggplot2
创建)或先前定义的 grob。看起来 ifelse
在打印之前将 grob
对象评估为其他对象(数据框?),因此 grid.arrange
无法获得正确的输入以正常工作。
我还尝试将所有图形对象存储在一个集合中并在 grid.arrange
中使用它,但无法获得合适的数据结构来很好地工作。
使用if() ... else ...
,而不是ifelse
,
p1 = qplot(1,1)
p2 = qplot(1,2)
p3 = qplot(1,3)
p4 = qplot(1,4)
grid.arrange(
if(1 == 2) p1 else p2,
if(3 == 3) p3 else p4,
ncol=2
)
如果您想先将它们存储在列表中,
pl = list(if(1 == 2) p1 else p2, if(3 == 3) p3 else p4)
grid.arrange(grobs=pl, ncol=2)