金魚亭日常

読書,ガジェット,競技プログラミング

cairo_pdf か CairoPDF か

R でグラフ保存するときは ggsave() じゃなくて Cairo::CairoPDF を使っていたが,結局のところ図は全部PDFで保存してそこから Imagemagick で変換,としているので,組み込みの cairo_pdf でもいいのでは,と気づき,実験.

library(ggplot2)
library(Cairo)

gp <- ggplot(cars, aes(x=speed, y=dist)) + 
  geom_point()
gp

# `cairo_pdf`
ggsave(filename = "plot-cars-cairo_pdf.pdf", plot=gp, width=8, height=6, device=cairo_pdf, units = "in")

# `CairoPDF`
CairoPDF(file="plot-cars-CairoPDF", width=8, height=6)
gp
dev.off()

# 日本語を含む図
windowsFonts(`IPAexGothic` = windowsFont("IPAexゴシック"))
gp_ja <- ggplot(cars, aes(x=speed, y=dist)) + 
  geom_point() + 
  xlab("スピード") + ylab("停止距離") + 
  theme_bw(base_family = "IPAexGothic")
gp_ja

# `cairo_pdf`
ggsave(filename = "plot-cars-ja-cairo_pdf.pdf", plot=gp_ja, width=8, height=6, device=cairo_pdf, units = "in")

# `CairoPDF`
CairoPDF(file="plot-cars-ja-CairoPDF", width=8, height=6)
gp_ja
dev.off()

結果は,

  • どちらを使ってもほぼ同じ.フォント埋め込みもされる.
  • 若干 点の大きさが違う
  • cairo_pdfcairo 1.14.2CairoPDF1.10.2

で,組み込みの方でいいか,という結論.