2012-12-12 25 views
6

bazı nesnelerin (fonksiyonlar) alfa kanal düzleştirin.bir alfa kanalı destekler ggplot2 arasında ggplot2

http://docs.ggplot2.org/current/geom_point.html

Bu hoş bir özellik olmakla birlikte, pdf ve png dosyalarında saydam renkler genellikle çeşitlendirilmiş sorun kaynağıdır.

Ben alfa seçeneğini kullanın ve düzleştirilmiş pdf çıktı dosyaları almak nasıl

?

+0

muhtemelen ... Bunu yapmak için harici bir PDF aracı kullanmak gerekir ... http://askubuntu.com/questions/128595/flattening-pdf-transparency –

cevap

0

LaTex'te benzer grafiklerle sorun çıkarmak için, Png dosyalarını P ile üretiyorum. type = c("cairo", "cairo-png", ...) seçeneği ile oynayabilirsiniz, benim için "windows" iyi çalışıyor. Daha sonra, bunu imagemagick ile jpg'ye dönüştürüyorum ve bu jpg'yi LaTeX dosyasımda, pdfLaTeX sonuçlarını daha sonra da pürüzsüz çıktı.

3

benim mac üzerinde mükemmel okunabilir ama Windows kullanıcıları için unopenable oldu knitr + ggplot ile oluşturulan geniş Lateks doc ile devam eden sorunlar vardı. Pdf'yi optimize etmek ve düzleştirmek için sayısız denemeden sonra, sorunu tek bir alfa-ağır arsa ile izole ettim. Benim durumumda, pdf'den png çıktısına geçmek fark yarattı (yine de, sorunuza göre, pijamalar probleminizi çözmeyebilir).

Knitr kullanıyorsanız, "pdf" varsayılanı yerine global (veya chunk-specific) görüntü çıkışı seçeneği devresini "png" olarak ayarlayarak otomatik olarak bir png sürümü oluşturabilirsiniz. Çizgiye bağlı olarak bu, alfa-ağır bir ggplotun & karmaşıklığını önemli ölçüde küçültebilir. ~ 700KB'den ~ 70KB'ye kadar arsa dosya boyutunda 10 kat azalma sağladım (bazı basit grafikler aslında boyut olarak artabilir).

ticaret-off araziler için çözünürlük bazı kayıp olma olasılığı olmasıdır. Bir taslağı e-postayla veya belirli türdeki grafiklerle dolaştırmak için bu iyi olabilir. Çözünürlük kaybı çok büyükse, çıktının dpi ayarını yapmayı düşünün (elbette, bu, dosya boyutunu artıracak, ancak yine de platformlar arası ayarlarda daha iyi çalışabilir).

"png" Böyle kodu kullanabilirsiniz küresel görüntü çıkışını ayarlamak için:

library(knitr) 
    opts_chunk$set(dev="png", dpi=200) 

belirli öbek içinde çıkış için "png" (örneğin, sadece arsa alfa- ayarlamak için Ağır), dev="png" seçeneğini kullanın. Aşağıdaki örnek düzenli, alfa olmayan ağır arsa oluşturur. Knitr + Latex ile, include=FALSE seçeneği, bir pdf versiyonunun otomatik olarak eklenmesini engelleyecektir (RMarkdown için bunun gerekli olup olmadığından emin değilim).

<<myplot, dev="png", dpi=200, include=FALSE>> 
    library(ggplot2) 
    x <- 1:1000 
    y <- 2*x + rnorm(1000, 0, 100) 
    df <- data.frame(x,y) 
    ggplot(df, aes(x=x, y=y)) + geom_point(alpha=.3) 
    @ 

Yukarıdaki kod bir includegraphics bir figür ortamında iç içe komutu ile Lateks, daha sonra kolayca belgeye dahil edilebilir, bir dosya adı verilen myplot.png üretecektir. yararlı olabilir

\begin{figure}[h!] 
    \centering 
    \scalebox{.5}{\includegraphics{myplot.png}} 
    \caption{Some caption \label{fig:myplot}} 
    \end{figure} 

Başka kaynak R Blogger'lardan barındırılan bu blog yayını:

Ayrıca

Fast-track publishing using knitr: exporting images for sharing and press

, knitr options grafiklendiğinde bölümüne bakın. Adobe Acrobat dışındaki seçenekleriniz sınırlı olduğunu görünse de