【问题标题】:how to create a stacked area chart in lattice?如何在格子中创建堆积面积图?
【发布时间】:2019-10-27 11:14:36
【问题描述】:

考虑这个简单的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 创建一个堆叠面积图,其中timex 轴上,var1var2 随着时间的推移堆叠(在y 轴上)。

可以吗?

谢谢!

【问题讨论】:

标签: r plot lattice stacked-area-chart


【解决方案1】:
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)) 

reprex package (v0.3.0) 于 2019 年 6 月 12 日创建

【讨论】:

  • @ℕʘʘḆḽḘ ;) 我知道您也可以使用 latticeExtra 将两个 lattice 绘图一起添加(就像 p1+p2),但我无法在这里工作。
  • 没关系。不知道这里能不能加副轴?
  • @ℕʘʘḆḽḘ 刚刚离开我的办公桌,现在在我的手机上。不是我的头顶,但我很确定这是可能的。
  • 有趣的是,col 参数适用于点,而不是区域。你认为我们也可以控制区域颜色吗?
  • @ℕʘʘḆḽḘ 可能使用填充
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-17
  • 1970-01-01
  • 2015-12-09
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多