2

我正在尝试重现一个堆叠的时间序列图,该图显示了银行资产负债表的构成和规模如何随时间变化。它应该看起来像这样:

资产负债表

资产高于 x 轴,负债低于 x 轴。

到目前为止,我已经能够使用以下方法成功重现图表的每一半ggplot()

# plot assets stack
assets.plot <- ggplot(assetsm, aes(x=dates, y=value, fill=variable)) + 
  geom_area() 


# plot liability stack
liabiln.plot <- ggplot(liabilnm, aes(x=dates, y=value, fill=variable)) +
  geom_area() 

这使:

资产(左)和负债(右)

但是当我将它们加在一起时,出现了问题:

# plot whole bs
bs.plot <- ggplot(bsm, aes(x=dates, y=value, fill=variable)) +
  geom_area()

这使:

在此处输入图像描述

记下它旁边的色标和上图,你可以看到:

  1. 只显示了一半的变量(从 V19 开始)。
  2. 这些变量恰好与数据的“负债”一半(都应该是负数)重合。
  3. x 上每个点的堆栈总高度等于上图中负债堆栈的总高度,但它不再从 y=0 开始 - 它落在 y 轴的两侧。

我不知道我的代码中缺少什么导致这种情况 - 我一直在摆弄position = "stack"明确,并尝试回答这个问题(相同的结果),现在我已经无计可施了。

我想这可能是数据问题,所以我在这里上传了数据。如果我可以使问题更清楚或提供更多详细信息,请告诉我。

4

1 回答 1

4

我不能完全解释你现在看到的行为,但是当我做这样的顶部/底部类型图时,我倾向于使用单独的数据框和单独的层调用:

ggplot() + 
    geom_area(data = assetsm, aes(x=dates, y=value, fill=variable)) + 
    geom_area(data = liabilnm, aes(x=dates, y=value, fill=variable))

这看起来像你所追求的:

在此处输入图像描述

于 2012-12-05T21:32:17.323 回答