【发布时间】: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