R - 条形图中轴上的两组标签

时间:2014-10-09 13:00:11

标签: r axis-labels graphing

我有一个如下所示的数据框:

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值标识每个条形图,另一个用它所属的组标记每个条形图。我的数据已设置好,以便同一组的成员在数据框中相邻。

按组对条形图进行颜色编码的明显解决方案不适用,因为我已经使用颜色编码来显示Measure1和Measure2(在某些情况下还有Measure3)。如果除了标签之外还有另一种显示组信息的方式,我很想听听,但我认为我图表底部的两组标签可能是最好的解决方案。这是一个只有一组标签的情节:

Graph

我想在"患者ID"下面添加组标签。标签

如果我绝望,我将使用Photoshop或Paint添加标签,但我希望有一种方法可以使用R添加第二组标签。

1 个答案:

答案 0 :(得分: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