我想绘制这个样式-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")
相关问题
答案 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