Как сделать двойной кумулятивный граф в R - PullRequest
0 голосов
/ 14 октября 2018

enter image description here

Как сделать этот тип графиков в r?

Product Revenue Quantity    Rev Cum Quat Cum
Product A   50% 40% 50% 40%
Product B   25% 30% 75% 70%
Product C   15% 20% 90% 90%
Product D   10% 10% 100%    100%

1 Ответ

0 голосов
/ 14 октября 2018

geom_rect принимает 4 координаты и составляет прямоугольник.mutate_at(-1 с funs(...) в качестве второго аргумента создает новые переменные для каждого столбца, кроме столбца 1 с функцией, указанной внутри funs.То же самое для mutate_at(vars(matches('cum')), но в этом случае новые столбцы создаются только для переменных, имя которых содержит 'cum'.

library(tidyverse)

df <- read_table("
Product Revenue Quantity    Rev Cum Quat Cum
Product_A   50% 40% 50% 40%
Product_B   25% 30% 75% 70%
Product_C   15% 20% 90% 90%
Product_D   10% 10% 100%    100%
")[1:3]

df %>% 
  mutate_at(-1, funs(cum = cumsum(parse_number(.)))) %>% 
  mutate_at(vars(matches('cum')), funs(lag = lag(., default = 0))) %>% 
  ggplot() +
    geom_rect(aes(xmin = Revenue_cum_lag, 
                  ymin = Quantity_cum_lag, 
                  xmax = Revenue_cum, 
                  ymax = Quantity_cum))

enter image description here

...