И снова просматривая Pinterest, увидел, понравившийся мне график.
Вот тот самый Pin..
А понравился мне верхний бар-плот на фоне горы. Уже давно такие встречал, на всяких типа «современных» шаблонах сайтов.
Ну и решил попробовать сделать что-нибудь похожее в ggplot. Оказалось совсем несложно.
Взял с википедии картинку Мон-Блана (Автор: Matthieu Riegler, CC-by, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=12730502 )
Ну а дальше, взять библиотеки, загрузить эту картинку, сгенерировать данные и нарисовать покрасивее.
library(ggplot2)
library(jpeg)
library(grid)
df1 <- data.frame(SHORTDAY=c('Пн','Вт','Ср','Чт','Пт'),
DAY=c('2016-07-11','2016-07-12','2016-07-13','2016-07-14','2016-07-15'),
d=c(0.32,0.4, 0.48, 0.52, 0.12))
img <- readJPEG("Mont_Blanc.jpg")
ggplot(df1, aes(x=DAY, y=d)) +
annotation_custom(rasterGrob(img, width=unit(1,"npc"), height=unit(1,"npc")),
-Inf, Inf, -Inf, Inf) +
geom_bar(stat='identity', aes(fill=SHORTDAY),alpha=0.6, width=0.97)+
geom_text(aes(y=max(df1$d)1.05, label=SHORTDAY ),color='lightgray', size=8)+
geom_text(aes(y=0.03, label=paste0(round(df1$d100, digits=0),'%')),
size=9, color='white',fontface = "bold")+
scale_y_continuous(limits=c(0, max(df1$d)*1.1))+
guides(fill=FALSE)+
theme_bw()+
theme_void()
Получилось, по-моему вполне симпатично:
График, как в Dribble: 6 комментариев
А как загрузить картинку в библиотеку? Спасибо
Скачивается файл картинки, кладётся в рабочий каталог. Потом с помощью readJPEG картинка загружается в переменную img, после чего с помощью rasterGrob подсовывается для ggplot графика.
Благодарю за ответ. Подскажите, пожалуйста, как положить нужный файл в рабочий каталог?
getwd() -узнать рабочий каталог
Средствами операционной системы положить в него файл 🙂
Например, Ctrl+C, потом Ctrl+V.
Добрый вечер!
Можете, пожалуйста, пошагово расписать как добавить изображение в рабочий каталог?
Заранее спасибо.
Не, так не пойдёт.
Лучше Вы напишите что вы сделали, и в какой строке кода у вас проблема.
Ps1. Пытаюсь подавить в себе желание отправить вас читать книжку по Азам языка
Ps2. А вы файлы на флешку копировать умеете?