Как уменьшить размер фигуры ggplot? В сюжете слишком много линий и, следовательно, слишком много веса. - PullRequest
0 голосов
/ 10 июля 2020

Я рисую результаты моделирования, в котором я повторил 500 раз определенный анализ. Я хотел бы показать, как количество меняется со временем в разных моделях (спагетти-график), чтобы показать неоднородность симуляций. Однако строк слишком много, и сюжет становится тяжелым (с использованием ggssave в pdf). Есть предложения, как получить более светлое изображение, не теряя слишком много разрешения?

Ниже пример кода и изображения

ggplot(sim_data, aes(month, val, group = sim)) +
  geom_line(col = "grey") +
  facet_wrap(upper_cap_letter ~ lower_cap_letter)

пример изображения

1 Ответ

0 голосов
/ 10 июля 2020

Я написал функцию растеризации, которую я разместил на github , которая может помочь уменьшить размер файла. На рендеринг рисунка уйдет немного больше времени, но размер файла, вероятно, будет меньше.

Вы можете контролировать желаемое разрешение, установив dpi соответствующим образом.

# Script gives the rasterise function
source("https://gist.githubusercontent.com/teunbrand/c3f5d2d1a8e94294ddeed1d2f22687d2/raw/6ebe4c2f801191fc1195ee8d28dccb97373db14c/rasterising_ggplot_layers.R")
#> Warning: package 'ragg' was built under R version 4.0.2

# 125000 observations
df <- expand.grid(1:50, LETTERS[1:5], letters[1:5], 1:100)
df$y <- runif(nrow(df))


ggplot(df, aes(Var1, y, group = Var4)) +
  rasterise(geom_line(), dpi = 300) +
  facet_wrap(~ Var2 + Var3)

Created on 2020-07-10 by the пакет репекс (v0.3.0)

Примечание: я написал функцию для добавления в пакет ggraster , поэтому, если вы некоторое время видите этот пост с этого момента он, вероятно, там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...