为了清楚地解释我想画什么,我给出了一个示例R代码。这是我的数据矩阵。
mat.all=matrix(c(1,rep(2,4),rep(3,6),rep(4,4),5,139.17365,136.27613,139.01464,135.47032,98.02343,136.28064,132.31289,135.26496,96.62991, 97.49587,90.17913,132.25711,96.01838,88.87682,89.06218,87.65776),16,2,byrow=F)
字符串
这给
[,1] [,2]
[1,] 1 139.17365
[2,] 2 136.27613
[3,] 2 139.01464
[4,] 2 135.47032
[5,] 2 98.02343
[6,] 3 136.28064
[7,] 3 132.31289
[8,] 3 135.26496
[9,] 3 96.62991
[10,] 3 97.49587
[11,] 3 90.17913
[12,] 4 132.25711
[13,] 4 96.01838
[14,] 4 88.87682
[15,] 4 89.06218
[16,] 5 87.65776
型
在这里,我需要画4个竖条,每个竖条的高度为mat.all[1,2]
= 139.17365。然后对于第一个竖条,我需要标记一条对应于mat.all
行中所有2的线。即mat.all[2:5,2]
。
类似地,对于第二个小节,我需要对所有的3进行这样的处理,对于第三个小节,我需要对所有的4进行这样的处理,对于第四个小节,我需要对5(最后一个)进行这样的处理。
最后,我需要在每个条形中放置一个文本,以显示以下基于第一个值大小的百分比减少,即mat.all[1,2]
= 139.17365。
perc.all=round(((mat.all[1,2]-mat.all[1:16,2])*100/mat.all[1,2]),1)
> perc.all
[1] 0.0 2.1 0.1 2.7 29.6 2.1 4.9 2.8 30.6 29.9 35.2 5.0 31.0 36.1
[15] 36.0 37.0
型
我在下面添加了一个png文件来显示我想要的堆叠条形图。我试图粗略地显示第一个条形图。
的数据
我真的很感激任何帮助,有我的愿望输出。谢谢。
2条答案
按热度按时间monwx1rj1#
为了返回您概述的情节,还有很多事情要做。此外,您还没有提供所需输出的详细示例,但基于您给出的示例,希望这接近您想要的。
在这个方法中,其中一个标签的位置有问题,我无法解决这个问题,所以我最终手动纠正了它。如果有人能看到错误,请在下面评论。
字符串
的数据
zzzyeukh2#
这就是你想要的吗
字符串