Как создать диаграмму с накоплением в решетке? - PullRequest
1 голос
/ 13 июня 2019

Рассмотрим это просто tibble

tibble(time = c(ymd('2019-01-01'),
                ymd('2019-01-02'),
                ymd('2019-01-03'),
                ymd('2019-01-04'),
                ymd('2019-01-05')),
       var1 = c(1,2,3,4,5),
       var2 = c(2,0,1,2,0))
# A tibble: 5 x 3
  time        var1  var2
  <date>     <dbl> <dbl>
1 2019-01-01     1     2
2 2019-01-02     2     0
3 2019-01-03     3     1
4 2019-01-04     4     2
5 2019-01-04     5     0

Я хотел бы создать диаграмму с областями с накоплением, используя lattice, где time находится на оси x, а var1 и var2 складываются (по оси y) с течением времени.

Возможно ли это сделать?

Спасибо!

1 Ответ

1 голос
/ 13 июня 2019
library(tibble)
library(lubridate)
library(lattice)
library(latticeExtra)
library(reshape2)


df1 <- tibble(time = c(ymd('2019-01-01'),
                       ymd('2019-01-02'),
                       ymd('2019-01-03'),
                       ymd('2019-01-04'),
                       ymd('2019-01-05')),
              var1 = c(1,2,3,4,5),
              var2 = c(2,0,1,2,0))

df2 <- df1
df2$var2 <- df2$var2 + df2$var1
df2 <- melt(df2, id.vars = "time")


xyplot(value~time, df2, group=variable,
       panel=function(x,y,...){
             panel.xyarea(x,y,...)
             panel.xyplot(x,y,...)},
      col=c("red","blue"),
      alpha=c(0.8,0.4)) 

Создано в 2019-06-12 пакетом Представления (v0.3.0)

...