2014-10-09 42 views
0

我有一個數據幀,看起來像這樣:的R - 兩套標籤上軸柱狀圖

ID Group Measure1 Measure 2 
001 A  59   559 
002 A  44   623 
003 B  129   498 
004 C  99   504 
005 C  78   378 

我要產生具有在X軸兩套標籤的條形圖:一個用它的ID值標識每個小節,另一個用它所屬的小組標記每個小節。我的數據已設置,以便同一組的成員在數據框中相鄰。

由Group對顏色進行顏色編碼的明顯解決方案不適用,因爲我已經使用顏色編碼來顯示Measure1和Measure2(以及某些情況下爲Measure3)。如果除了標籤之外還有其他方式顯示羣組信息,我很有興趣聽到它,但我認爲我圖表底部的兩套標籤可能是最好的解決方案。這裏有一個這樣的情節只有一個組標籤:

Graph

我想添加組標籤「病人ID」標籤的下面。

如果我絕望了,我會使用Photoshop或油漆添加標籤,但我希望有添加使用R.

第二組標籤的方式
+0

你應該添加代碼 – rawr 2014-10-09 13:06:36

+0

並且barplot返回一個x值的向量,所以保存:'bp < - barplot(...)';然後在'text(bp,y = -1.5,labels = letters [1:3],xpd = TRUE)'或類似的東西中使用多行文字或文字 – rawr 2014-10-09 13:07:59

回答

1

嘗試:

mm = melt(ddf, id=c('ID', 'Group')) 
ggplot(mm) + geom_bar(aes(x=interaction(ID, Group), y=value, group=variable, fill=variable), position='dodge', stat='identity') 

enter image description here

分離器可調節:

> with(ddf, interaction(ID, Group, sep="_")) 
[1] 1_A 2_A 3_B 4_C 5_C 
Levels: 1_A 2_A 3_A 4_A 5_A 1_B 2_B 3_B 4_B 5_B 1_C 2_C 3_C 4_C 5_C 
> 
> with(ddf, interaction(ID, Group, sep=" ")) 
[1] 1 A 2 A 3 B 4 C 5 C 
Levels: 1 A 2 A 3 A 4 A 5 A 1 B 2 B 3 B 4 B 5 B 1 C 2 C 3 C 4 C 5 C 
+0

這是一個很好的解決方案。你知道是否可以修改標籤分離的方式嗎?就我的目的而言,換行符或空格比一段時間更可取。 – Slavatron 2014-10-10 14:08:10

+1

@ Slavatron:在上面的答案中看到我的編輯。 – rnso 2014-10-10 14:54:22