R又称样式漂移图中的比例面积图?

时间:2012-02-18 13:35:22

标签: r plot

我想绘制这个样式-graph here按比例缩放。在R中是否有一些现成的情节?

假设我在矩阵中每年有名义价值。使用matplot(..),我可以轻松绘制所有名义值。如果我将值除以总和,我不会让它们缩放但是卡住了所以我必须在这种情况下进行调整。更好的是,是否有一些软件包可以直接在报表中直接进行这种分配分析?

我想要以下数据的区域图,其中XN是时间X1是第1步,X2是第2步 - 。现在大约有60个变种。如何为此创建比例区域图?

> head(b)
        X0       X1       X2       X3       X4       X5       X6
1  2803.30  2698.05  2428.24  2000.00  3917.54  4575.02  2656.00
2   227.46   220.68   200.00    30.00   220.43    30.00    30.00
3   855.33   824.54   700.00    30.00   242.52  1190.70  1906.01
4  2777.37  2764.57  1265.66  3326.28  4094.00  7049.84 10726.76
5    60.50    59.60     1.00    30.00    30.00    30.00    82.67
6 14548.16 14548.16 14664.79 19855.44 24674.03 23414.45 14973.54

> dput(head(b))

structure(list(X0 = c(2803.3, 227.46, 855.33, 2777.37, 60.5, 
14548.16), X1 = c(2698.05, 220.68, 824.54, 2764.57, 59.6, 14548.16
), X2 = c(2428.24, 200, 700, 1265.66, 1, 14664.79), X3 = c(2000, 
30, 30, 3326.28, 30, 19855.44), X4 = c(3917.54, 220.43, 242.52, 
4094, 30, 24674.03), X5 = c(4575.02, 30, 1190.7, 7049.84, 30, 
23414.45), X6 = c(2656, 30, 1906.01, 10726.76, 82.67, 14973.54
)), .Names = c("X0", "X1", "X2", "X3", "X4", "X5", "X6"), row.names = c(NA, 
6L), class = "data.frame")

相关问题

  1. Making a stacked area plot using ggplot2
  2. Getting a stacked area plot in R

1 个答案:

答案 0 :(得分:1)

如果您有矩阵,则可以先将cumsum应用于列,然后将结果除以应用于列的sum。最终结果可以返回matplot。我怀疑你可以用sweep一步完成整个转换,但我并不是特别容易使用这个函数。

这将是一个matplot解决方案(我最初是按列添加的,但是您的数据排列方式与我预期的不同):

matplot(t(apply(b, 1, function(x) cumsum(x)/sum(x) )),type="l")

如果你去R Graphics库,你经常可以找到满足你特定需求的图。在这种情况下,看起来Zeileis在包vcd中的条件密度图可能是一个不错的选择:

http://addictedtor.free.fr/graphiques/RGraphGallery.php?graph=120