4

Windows 7 でアンチエイリアス グラフィックス用の Cairo ライブラリを使用して、かなり複雑なグラフを R で作成しています。R2.15.1 と cairoDevice バージョン 2.19 を使用しています。Cairo_png() のフォント サイズが単純な画面ベースの Cairo() よりも大きく、マルチテキストの配置が異なるという問題があります。簡単な例を挙げると:

画面バージョンのコード:

> Cairo(4, 4)
> par(bg = "blue")
> plot.new()
> for (x in 1:30) mtext(format(x), line = -x, outer = TRUE, adj = 0, col = "white")

結果:

ここに画像の説明を入力

png バージョンのコード:

> Cairo_png("test.png", 4, 4)
> par(bg = "red")
> plot.new()
> for (x in 1:30) mtext(format(x), line = -x, outer = TRUE, adj = 0, col = "white")
> dev.off()

png コードの結果:

ここに画像の説明を入力

ご覧のとおり、png バージョンではフォントが大きくなり、マルチ テキストの配置が広くなります。これはバグですか、それとも何か間違っていますか?

Cairo_svg() と Cairo_pdf() は Cairo_png() と同じように動作することを付け加えておきます。それらはすべて同じ出力をしますが、画面ベースの Cairo() とは矛盾します。

4

1 に答える 1

2

cairoDevice documentationでわかるようpointsizeに、言及された関数のパラメーターにはさまざまなデフォルト値があります。

Cairo(width = 7, height = 7, pointsize = 8, 
      surface = c("screen", "png", "pdf", "ps", "svg"), 
      filename = Cairo_pdf(filename, width = 7, height = 7, pointsize = 10)
Cairo_ps(filename, width = 7, height = 7, pointsize = 10)
Cairo_svg(filename, width = 7, height = 7, pointsize = 10)
Cairo_png(filename, width = 7, height = 7, pointsize = 10)

同じを取るpointsize

Cairo_png("test.png", 4, 4, pointsize = 8)
par(bg = "red")
plot.new()
for (x in 1:30) mtext(format(x), line = -x, outer = TRUE, adj = 0, col = "white")
dev.off()

これを返します

ここに画像の説明を入力

于 2012-07-13T12:55:44.540 に答える