如何在R中制作双累积图

Xen*_*nus -1 r ggplot2 plotly ggvis

在此输入图像描述

如何在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%
Run Code Online (Sandbox Code Playgroud)

Ice*_*can 5

geom_rect取4个坐标并制作一个矩形.mutate_at(-1with 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))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述