我有一个数据表,其中已经包含几个值要绘制在带有ggplot2软件包(已累积数据)的barplot上。与R ggplot2结合的条形图:闪避和堆积
在数据帧“储备”的数据的形式为(简化):
period,amount,a1,a2,b1,b2,h1,h2,h3,h4
J,18.1,30,60,40,60,15,50,30,5
K,29,65,35,75,25,5,50,40,5
P,13.3,94,6,85,15,10,55,20,15
N,21.6,95,5,80,20,10,55,20,15
第一列(周期)是地质时代。这将是在x轴,并且我需要有在其上没有多余的排序,所以我制备适当因子的标记与所述指令
reserves$period <- factor(reserves$period, levels = reserves$period)
列“量”是要被绘制为y轴的主柱(它是每个时期碳氢化合物的百分比,但它也可以是绝对值,比如数百万吨或其他)。所以基本的情节是由命令调用的:
ggplot(reserves,aes(x=period,y=amount)) + geom_bar(stat="identity")
但是这里是问题。我需要在同一条形图上绘制其他值,即a1-a2,b1-b2和h1-h4。这些值是每个字母的百分比值(例如,a1 = 60,然后a2 = 40;对于b1-b2也是一样的;对于h1-h4也是一样,所以它们总计为100.所以:我需要将值a1- a2作为某种颜色,根据x的每个值(堆叠barplot)按比例划分“量”栏,那么我需要b1-b2的值相同;因此我们需要为每个时期两个相邻的列(分组的条形图),每个列然后,我需要第三列,值为h1-h4,或许也是一个堆叠的barplot,但不管是作为第三列,还是作为第一列以上的交错barplot
所以布局看起来是这样的:
我了解到我需要首先使用package reshape2重塑数据,然后在geom_bar()中使用选项position =“dodge”或position =“fill”,但这里是其组合。第三个barplot(对于值h1-h4)似乎需要具有固定高度的“堆叠百分比”表示。
是否有包以更直观的方式处理绘图数据?可以说,我们只是声明,我们希望绘制变量ai,bi,hi。
这是编程的绝佳解决方案,@Brian。我想知道现在有没有办法以同样的智能方式来组合传奇(指南)? 即我添加 '+指南(fill =“legend”,alpha =“legend”)' 作为默认开始,并获得两个图例栏,一个用于填充,另一个用于alpha等级(lett1和num变量在这个代码中)。但是,如果我们想要将这些酒吧横跨变量并进行合并_相应地_split_,也就是说:有一个条a1-a2(红粉红色;然后写a1代表碎屑,a2代表碳酸盐),2-b1-b2(绿 - 浅绿)和最后一个h1-h4(蓝淡蓝色),就像情节一样? – astrsk