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)
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)