2011-02-05 50 views
5

我在R中創作了一些圖。得到的PDF在iOS設備(如iPhone)上無法正確顯示。例如,這裏有一個PDF創建一個股票GGPLOT2圖:在iOS設備上顯示使用R創建的PDF數字的問題

library(ggplot2) 
mpg.eg <- within(mpg[1:74,], { 
    model <- reorder(model, cty) 
    manufacturer <- reorder(manufacturer, -cty) 
}) 

pdf(file="figures/ios-example.pdf") 
p <- qplot(cty, model, data=mpg.eg) 
p + facet_grid(manufacturer ~ ., scales="free", space="free") + 
    opts(strip.text.y = theme_text()) 
dev.off() 

當在iPhone上查看,不顯示在點陣圖點。如果您使用的是iOS設備,請參閱the resulting pdf

我從閱讀文檔瞭解到,這很可能是有限的字體可用性和iOS上的PDF渲染變幻莫測的問題,而不是在R中創建PDF的問題。我曾想過,也許在PDF中嵌入字體

embedFonts("figures/ios-example.pdf") 

會整理出來,但事實並非如此。除了以其他格式提供數字之外,我還能做些什麼來解決這個iOS問題?

+0

嗨基蘭。如果文檔可以在「真實」計算機上查看,那麼問題可能在於iOS查看器。切換到非pdf格式是否可以替代? – 2011-02-05 19:53:58

+0

嗨德克,是的,他們可以在普通電腦上查看---從問題中我可以看到,基本上我確定文檔是正確的,這是一個iOS/iPhone問題。 – Kieran 2011-02-05 20:12:04

回答

4

embedFonts默認情況下不會嵌入標準PDF字體集,因此實際上並未對您的示例PDF進行任何重大更改。嘗試代替

embedFonts("figures/ios-example.pdf", 
      options="-dSubsetFonts=true -dEmbedAllFonts=true") 

如果不起作用,粘性「-dPDFSETTINGS=/printer」上也有。

儘管你的例子在我唯一需要的iOS設備(iPad,OS版本4.2.1)上正確顯示,但它的價值是值得的。

+2

感謝您的快速響應。您的解決方案與另一個添加的「-dPDFSETTINGS =/printer」選項一起工作。我可以在iPhone 3GS上使用4.2.1而不是在iPad上,而且肯定會在那裏失敗。 – Kieran 2011-02-05 20:12:31

4

您也可以嘗試告訴R值不要使用裝飾符號字體來畫點:pdf(..., useDingbats = F)