Магистратура по Digital Humanities в Вышке 1 апр. 2021 в 13:45
#dhhse
#dhhse_memes
⭐ Как делать мемы в R Studio ⭐
В жизни каждого человека рано или поздно наступает момент, когда хочется сделать свой мем. Однако ни для кого не секрет, что профессиональные графические редакторы дороги и сложны в использовании. Поэтому мы решили опубликовать урок по созданию мемов в бесплатном ПО RStudio при помощи библиотеки ggplot.
🔸 1. Подключение пакетов
Как обычно, вначале нужно установить и подключить нужные пакеты. Помимо ggplot нам потребуются модуль png для чтения графических файлов в формате .png, ggpubr для использования изображения в качестве фона графика и extrafont для дополнительных шрифтов.
💻 Код:
library(ggplot2)
library(png)
library(ggpubr)
library(extrafont)
🔸 2. Создание пустого датафрейма и графика
ggplot требует данных для генерации графика. Для этого мы создаем датафрейм при помощи стандартной функции data.frame(). Чтобы у ggplot были хоть какие-то ориентиры, задаем произвольные границы графика в xlim() и ylim().
💻 Код:
df <- data.frame()
ggplot(df) +
xlim(0,10) +
ylim(0,10)
🔸 3. Вставка графического фона
Теперь нужно выбрать изображение и прочитать его в переменную функцией readPNG(). Чтобы картинка не деформировалась, прописываем в theme значение aspect.ratio, которое задает отношение высоты к ширине графика. Не забудьте предварительно прописать путь к рабочей директории в `setwd()`.
💻 Код:
i <- png::readPNG('vl.png')
ggplot(df) +
background_image(i)+
xlim(0,10) +
ylim(0,10) +
theme(
aspect.ratio = 0.7)
🔸 4. Добавление надписей
Подписи осей задаются в xlab() и ylab(), а чтобы добавить текст внутрь самого графика можно использовать annotate(geom='text') с произвольными координатами.
💻 Код:
ggplot(df) +
background_image(i)+
xlim(0,10) +
ylim(0,10) +
xlab('не важно') +
ylab('важно') +
annotate(geom='text', x=6, y=3, label='КТО') +
theme(
aspect.ratio = 0.7)
🔸 5. Оформление
Осталось только задать оформление элементов. Темный фон с эффектом фильтра получается при использовании цвета gray14 в plot.background(). Цвет и шрифт подписей изменяется добавлением параметров size, color, family и face в annotate и axis.title. Чтобы значения шкал можно было прочитать, их цвет тоже меняется на белый в аргументах axis.text (вообще их можно убрать, но нам кажется, что они придают своеобразное очарание нашему мему).
💻 В результате код выглядит вот так:
ggplot(df) +
background_image(i)+
xlim(0,10) +
ylim(0,10) +
xlab('не важно') +
ylab('важно') +
annotate(geom='text', size=30, x=6, y=3, label='КТО', color='white', family = 'Times New Roman') +
theme(
aspect.ratio = 0.7,
axis.title.x = element_text(size=40, color = 'white', family='Times New Roman', face ='bold'),
axis.title.y = element_text(size=40, color = 'white', family='Times New Roman', face ='bold'),
plot.background = element_rect(fill = "gray14"),
axis.text.x=element_text(colour='white'),
axis.text.y=element_text(colour='white'))
Теперь вы можете сохранить ваш мем в панели Plots.
Приятного мемопроизводства!