Tôi đã gặp sự cố liên tục với tài liệu Latex lớn được tạo bằng knitr + ggplot hoàn toàn có thể đọc được trên máy Mac của tôi nhưng không thể mở được cho người dùng Windows. Sau nhiều nỗ lực tối ưu hóa và làm phẳng pdf, cuối cùng tôi đã phân tách vấn đề này thành một âm mưu alpha nặng. Trong trường hợp của tôi, việc chuyển đổi từ đầu ra pdf sang png tạo ra sự khác biệt (mặc dù, dựa trên câu hỏi của bạn, có vẻ như pngs có thể không giải quyết được vấn đề của bạn).
Nếu bạn đang dùng knitr, bạn có thể tự động tạo phiên bản png bằng cách đặt tùy chọn đầu ra hình ảnh toàn cục (hoặc chunk-specific) thành "png" thay vì mặc định là "pdf". Tùy thuộc vào cốt truyện, điều này có thể thu nhỏ đáng kể kích thước & độ phức tạp của một ggplot alpha-nặng đáng kể. Tôi đã có một 10x giảm kích thước tập tin âm mưu từ ~ 700KB đến ~ 70KB (một số lô đơn giản hơn có thể thực sự tăng kích thước, mặc dù).
Việc cân nhắc có khả năng mất một số độ phân giải cho các ô. Để lưu hành bản nháp bằng email hoặc cho một số loại ô cụ thể, điều này có thể là tốt. Nếu mất độ phân giải quá lớn, hãy cân nhắc điều chỉnh dpi đầu ra (mặc dù, tất nhiên, điều này sẽ làm tăng kích thước tệp nhưng vẫn có thể hoạt động tốt hơn trong cài đặt đa nền tảng).
Để thiết lập đầu ra hình ảnh toàn cầu để "png" bạn có thể sử dụng mã như thế này:
library(knitr)
opts_chunk$set(dev="png", dpi=200)
Để thiết lập đầu ra để "png" trong một đoạn cụ thể (ví dụ, chỉ là âm mưu đó là alpha- nặng), sử dụng tùy chọn dev="png"
. Ví dụ dưới đây tạo ra một âm mưu nặng không thường xuyên. Với knitr + Latex, tùy chọn include=FALSE
sẽ ngăn không cho phiên bản pdf tự động được bao gồm (Tôi không chắc chắn nếu điều này là cần thiết cho RMarkdown).
<<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)
@
Đoạn mã trên sẽ tạo một tệp có tên myplot.png, trong Latex, có thể dễ dàng được bao gồm trong tài liệu có lệnh includegraphics lồng trong môi trường hình.
\begin{figure}[h!]
\centering
\scalebox{.5}{\includegraphics{myplot.png}}
\caption{Some caption \label{fig:myplot}}
\end{figure}
Một nguồn tài nguyên mà có thể hữu ích là bài viết trên blog này được tổ chức tại R Bloggers:
Fast-track publishing using knitr: exporting images for sharing and press
Ngoài ra, xem Plots phần của knitr options.
bạn có thể cần sử dụng công cụ PDF bên ngoài để thực hiện việc này ... mặc dù có vẻ như các tùy chọn của bạn khác với Adobe Acrobat bị giới hạn ... http://askubuntu.com/questions/128595/flattening-pdf-transparency –