这是关于我的Q& A关于使用格子中的条形图绘制已定义组的情况。因此,按照这个小练习的解决方案,我已经意识到R绘制了数据框中显示的数据,并在下一行数据分配到条形图上的另一个空间时在每个条之间留下空格。如果你看一下情节,你会理解我的意思:
> data.frame(SOExample2)
Study.ID Diagnosis Level
1 1 Cancer 1040.58
2 2 Cancer 810.92
3 3 Cancer 2087.80
4 4 Cancer 3959.02
5 5 Cancer 3648.48
6 6 Cancer 1191.74
7 7 Cancer 1156.90
8 8 Cancer 2705.56
9 9 Cancer 827.26
10 10 Cancer 867.16
11 11 Cancer 575.10
12 12 Cancer 699.85
13 13 Cancer 1121.86
14 14 Cancer 1830.62
15 15 Cancer 4203.01
16 16 Cancer 874.59
17 17 Cancer 1037.20
18 18 Cancer 1398.56
19 19 Cancer 910.49
20 20 Cancer 725.60
21 21 Cancer 894.05
22 22 Cancer 1489.25
23 23 Cancer 1518.76
24 24 Cancer 821.60
25 25 Cancer 530.35
26 26 Cancer 1191.80
27 27 Cancer 1920.12
28 28 Cancer 1330.60
29 29 Cancer 835.95
30 30 Cancer 525.22
require(lattice)
SOExample2$group<-ifelse(Level>median(Level),1,0)
barchart(Level~factor(group), data=SOExample2, groups=Study.ID)
这给了我以下条形图:
同样,您可以在ggplot2
中执行相同的操作,但会发生同样的事情:
require(ggplot2)
g1<-ggplot(SOExample2, aes(x=group, y=Level))
g1+geom_histogram(stat="identity")+facet_grid(.~group)+labs(x="Group")+labs(y="Levels")
那么,有关如何删除这些空白空间的任何想法?
干杯,
奥利弗
答案 0 :(得分:3)
您可以使用Study.ID
作为x值并将其转换为因子,以确保不将值解释为数值。然后,对于facet_grid()中的ggplot2
解决方案,添加参数scale="free"
以删除空白级别。
ggplot(SOExample2,aes(factor(Study.ID),y=Level))+
geom_bar(stat="identity")+
facet_grid(.~group,scales="free")