【问题标题】:Can I get the nice visuals of R-Markdown plotting using non-markdown R?我可以使用非降价 R 获得 R-Markdown 绘图的漂亮视觉效果吗?
【发布时间】:2021-12-14 03:13:48
【问题描述】:

我试图让我的 ggplots 看起来尽可能好。使用 R Markdown 时,情节非常流畅:

但是,当使用标准 R 时(仍然在 RStudio 中,如果这很重要的话),同样的情节是这样的:

(这里看起来可能没那么糟糕,但在实践中,摇摆不定的线条通常会变得非常不稳定。)

我已尝试在情节中包含 MWE,但我不确定是否需要包含有关我的 R-Markdown 设置的任何内容。它们非常基础,没有什么疯狂的,因为我对 R-Markdown 不是特别有信心。

if (!require("pacman")) install.packages("pacman")
pacman::p_load(tidyverse, dplyr, ggplot2)

x <- 0:10
demand <- function(x) 10 - x
supply <- function(x) 1 + x
ggplot(data.frame(x = c(0:10)), aes(x)) +
  scale_x_continuous(limits = c(0, 10.5), expand = c(0, 0), breaks = seq(0, 10, 1)) +
  scale_y_continuous(limits = c(0, 10.5), expand = c(0, 0), breaks = seq(0, 10, 1)) +
  labs(x = "Q", y = "P") +
  stat_function(aes(x), fun = supply, size = 1) + # supply function
  stat_function(aes(x), fun = demand, size = 1)

我不想在每次制作情节时都使用 R-Markdown,原因是我不想深入探讨。有没有办法在常规 R 中获得漂亮的视觉输出?

非常感谢提前,非常感谢您的礼貌。

【问题讨论】:

  • 您使用什么文件格式来保存您的绘图? PDF或PNG或其他什么?您是否使用 RMarkdown 生成 PDF?或者你正在生成什么类型​​的输出?
  • 在非 Markdown 中,我使用的是 png,而不是 pdf。 RMarkdown 的输出目前是 html,只是因为我在使用 markdown 渲染 pdf 时遇到了问题
  • PDF 是矢量图形,PNG 是像素。您还可以提高 PNG 的分辨率以使其更好。 ggsave 默认为 300 dpi,这通常已经足够了,但是如果您显示用于保存绘图的代码,也许我们可以给您指点。您还可以使用ggsave() 中的type = "cairo" 安装和使用用于PNG 的cairoDevice 包。 Cairo PNG 设备通常看起来比内置版本更好。
  • 不要忘记“始终使用 PDF”。 PDF 看起来不错,尤其是在放大时,但它也会对文件中的所有图形数据进行编码。如果您保存一张包含成千上万个点的图像,并以透明度重叠绘制,它可以创建一个非常 大的文件。以高分辨率保存为 PNG 的相同图将与文件大小的一小部分一样好。
  • 您还可以安装 ragg 软件包作为默认的 R 设备,以获得更好的图形抗锯齿和更好的字体处理:tidyverse.org/blog/2021/02/modern-text-features

标签: r ggplot2 r-markdown rstudio


【解决方案1】:

您可以使用ggsave 保存它以获得高质量的图像。 ggsave 将保存您运行的最后一个情节。这是一个例子:

ggsave("myplot.png", device = "png",
       width = 10, height = 4, units = "in", dpi = 600, type = "cairo-png")

当您在 RStudio 中看到预览时,它仍然看起来很有趣,但图像将以流畅的线条保存。这是我用上面的代码保存的图像:

device你可以选择你想如何保存情节。来自函数文档:

要使用的设备。可以是设备函数(例如 png()),也可以是“eps”、“ps”、“tex”(pictex)、“pdf”、“jpeg”、“tiff”、“png”、“bmp”之一、“svg”或“wmf”(仅限 Windows)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 2021-02-15
    相关资源
    最近更新 更多