#r #linux #ggplot2 #centos #r-markdown
#r #linux #ggplot2 #centos #r-markdown
Вопрос:
Мы создаем еженедельный отчет R markdown, который содержит большое количество небольших графиков. Графики gg сохраняются в формате png, а затем интегрируются в скрипт markdown и кодируются в html. Недавно мы перенесли скрипты, создающие этот отчет, на компьютер Linux с открытым исходным кодом CentOS 7 и RStudio Server. Файлы, создаваемые на компьютере с Linux, в 3-4 раза больше (от 20 МБ до 80 МБ).
При расследовании кажется, что причина в том, что изображения PNG сохраняются как индексированные цвета в Windows, но RGB в Linux. Я не могу найти способ изменить способ сохранения ggplots в Linux. Есть какие-нибудь советы?
Простой пример:
library(ggplot2)
ggplot(mtcars, aes(mpg, hp)) geom_point()
geom_smooth(method = lm, se = FALSE)
ggsave("test_image.png")
Создает образ размером 88 КБ в Linux и образ размером 37 КБ в Windows.
Запуск R 4.0.3 и ggplot 3.3.2 на обеих машинах.
Обновление: Еще несколько исследований изображений, созданных linux против Windows:
> image_read(url_windows)
# A tibble: 1 x 7
format width height colorspace matte filesize density
<chr> <int> <int> <chr> <lgl> <int> <chr>
1 PNG 600 2545 sRGB FALSE 100070 20x20
> image_read(url_linux)
# A tibble: 1 x 7
format width height colorspace matte filesize density
<chr> <int> <int> <chr> <lgl> <int> <chr>
1 PNG 1800 7635 sRGB FALSE 1046302 59x59
Изображения в Windows имеют 1/3 размера и плотности.
Похоже, есть простой способ решить эту проблему. Спасибо за отзыв!
Комментарии:
1. В качестве обходного пути вы можете автоматически запустить подобный инструмент
pngcrush
на них впоследствии.2. Какие версии R вы используете на обеих машинах? И какие версии ggplot?
3. @MrFlick R 4.0.3 и ggplot 3.3.2 на обоих. Просмотр файлов, сгенерированных немного ближе с помощью Image Magick. Будет обновлено позже.