ИнтересноеОсновная

График, как в Dribble

И снова просматривая Pinterest, увидел, понравившийся мне график.
Вот тот самый Pin..

pin-plot

А понравился мне верхний бар-плот на фоне горы. Уже давно такие встречал, на всяких типа «современных» шаблонах сайтов.
Ну и решил попробовать сделать что-нибудь похожее в 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$d
100, 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()

Получилось, по-моему вполне симпатично:
Rplot

График, как в Dribble: 6 комментариев

  1. Скачивается файл картинки, кладётся в рабочий каталог. Потом с помощью readJPEG картинка загружается в переменную img, после чего с помощью rasterGrob подсовывается для ggplot графика.

    1. Благодарю за ответ. Подскажите, пожалуйста, как положить нужный файл в рабочий каталог?

      1. getwd() -узнать рабочий каталог
        Средствами операционной системы положить в него файл 🙂

        Например, Ctrl+C, потом Ctrl+V.

  2. Добрый вечер!
    Можете, пожалуйста, пошагово расписать как добавить изображение в рабочий каталог?
    Заранее спасибо.

    1. Не, так не пойдёт.
      Лучше Вы напишите что вы сделали, и в какой строке кода у вас проблема.

      Ps1. Пытаюсь подавить в себе желание отправить вас читать книжку по Азам языка

      Ps2. А вы файлы на флешку копировать умеете?

Добавить комментарий