ggplot2方面边距

Tim*_*imo 5 r ggplot2

facet_wrap用来绘制一些数据.这是一个例子:

library (ggplot2)
library (reshape)

# generate some dummy data
x = seq(0,1,0.05)
precision = sqrt(x)
recall    = 1 - precision
fmeasure  = 2 * (precision * recall) / (precision + recall)

# prepare it for plotting
df = data.frame(x=x, precision=precision, recall=recall, fmeasure=fmeasure)
df = melt(df, id.vars=c(x))

# plot it
p = ggplot(df, aes(x=x, y=value, group=variable))
p = p + geom_line() + facet_wrap(~variable, ncol=3)
p = p + coord_cartesian(xlim=c(0,1), ylim=c(0,1)) # second plot is without this line
print (p)
Run Code Online (Sandbox Code Playgroud)

图1:上面代码的图. 用xlim和ylim绘图

但是,您在图1中看到的是后续刻面的第一个和最后一个标签重叠.这可以通过增加构面之间的空间来解决.其他选项是删除xlimylim范围,如图2所示,但这会在构面本身保留不必要的空间.

图2:p = p + coord_cartesian(xlim=c(0,1), ylim=c(0,1))删除线的图. 没有xlim和ylim的情节

我试图增加小平面之间的空间,但到目前为止我一直无法做到.你有什么建议吗?

我使用ggplot2版本0.9.1.

Tyl*_*ker 6

对于0.9.1使用:p + opts(panel.margin = unit(2, "lines"))但你有很多额外的空白区域和IMO失去了一些影响的分面(注意0.9.2现在使用theme而不是opts)

多年来ggplot2 API发生了变化,截至2018-02-01,这是更新后的解决方案:

p + theme(panel.spacing = unit(2, "lines"))
Run Code Online (Sandbox Code Playgroud)

  • 对于`panel.spacing`,不推荐使用panel.margin(2.2.1) (3认同)