我有一個數據表,其中已經包含幾個值要繪製在帶有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