8

私は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)

図 1: 上記のコードのプロット。 xlim と ylim を使用したプロット

ただし、図 1 に示されているように、後続のファセットの最初と最後のラベルが重なっています。これは、ファセット間のスペースを増やすことで修正できます。他のオプションは、図 2 に示すように範囲を削除することですxlimylim、これにより、ファセット自体に不要なスペースが残ります。

p = p + coord_cartesian(xlim=c(0,1), ylim=c(0,1))図 2: 線を取り除いた プロット。xlim と ylim なしでプロット

ファセット間のスペースを広げようとしましたが、これまでのところできませんでした。何かアドバイスはありますか?

私は ggplot2 バージョン 0.9.1 を使用しています。

4

2 に答える 2

8

0.9.1 の場合:p + opts(panel.margin = unit(2, "lines"))しかし余分な空白が多く、IMO はファセットの効果の一部を失います (0.9.2 ではtheme代わりに を使用することに注意してくださいopts)

何年にもわたって ggplot2 API が変更され、2018 年 2 月 1 日現在、これが更新されたソリューションです。

p + theme(panel.spacing = unit(2, "lines"))
于 2012-10-02T14:50:00.293 に答える