gpt4 book ai didi

r - 展平 ggplot2 中的 alpha channel

转载 作者:行者123 更新时间:2023-12-04 12:42:01 25 4
gpt4 key购买 nike

ggplot2 的一些对象(函数)支持 alpha channel 。

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

这是一个很好的功能,但是 pdf 和 png 文件中的透明颜色通常是各种麻烦的根源。

如何使用 alpha 选项并获得扁平化的 pdf 输出文件?

最佳答案

我有一个使用 knitr + ggplot 创建的大型 Latex 文档的持续问题,该文档在我的 Mac 上完全可读,但对于 Windows 用户无法打开。在多次尝试优化和扁平化 pdf 后,我终于将问题隔离到一个单一的 alpha-heavy 情节。就我而言,从 pdf 切换到 png 输出会有所不同(不过,根据您的问题,听起来 png 可能无法解决您的问题)。

如果您使用 knitr,您可以通过将全局(或特定块)图像输出选项 dev 设置为“png”而不是默认的“pdf”来自动创建 png 版本。根据情节,这可以显着缩小 alpha-heavy ggplot 的大小和复杂性。我的绘图文件大小从 ~700KB 减少到 ~70KB(不过,一些更简单的绘图实际上可能会增加大小),减少了 10 倍。

权衡是这些图的分辨率可能会有所下降。对于通过电子邮件传播草稿或某些类型的图,这可能没问题。如果分辨率损失太大,请考虑调整输出的 dpi(当然,这会增加文件大小,但在跨平台设置中仍可能更好地工作)。

要将全局图像输出设置为“png”,您可以使用如下代码:

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

要将输出设置为特定块内的“png”(例如,只是 alpha-heavy 的图),请使用 dev="png"选项。下面的示例生成一个常规的非 alpha 重图。使用 knitr + Latex, include=FALSE选项将阻止自动包含 pdf 版本(我不确定 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)
@

上面的代码将生成一个名为 myplot.png 的文件,在 Latex 中,然后可以使用嵌套在图形环境中的 includegraphics 命令轻松将其包含在文档中。
    \begin{figure}[h!]
\centering
\scalebox{.5}{\includegraphics{myplot.png}}
\caption{Some caption \label{fig:myplot}}
\end{figure}

另一个可能有用的资源是 R Bloggers 上的这篇博文:

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

另外,请参阅 knitr options 的绘图部分.

关于r - 展平 ggplot2 中的 alpha channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13849351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com