我有两个不同的数据集,它们有不同的观察次数。我想在同一个图表上绘制两个箱线图,这样比较起来就更容易了。我可以绘制一个箱线图,但如果没有它们并排,就很难发现任何差异。
我有一些假数据。
Group A
V1 V2 V3 V4 V5
6.5 2 11 0.5 6
7 1 8 0.34 8
5.4 4 7.8 0.45 5
3.4 6 9.1 0.72 5
Group B
V1 V2 V3 V4 V5
5.0 5 9 0.4 7
2 7 5.2 0.69 5
3.2 2 2.9 0.79 2
6.8 9 6.5 0.43 6
4.7 3 3.8 0.49 4
5.5 4 7.4 0.94 3
我不知道怎么画这个,所以我没有一个例子。我将尽力描述情节。我想将A组和B组的变量1绘制在同一张图上。所以在一个图中,我会有A组的箱形图和B组的另一个箱形图填充V1的数据。所以这两个箱线图是并排的。如果有5个变量,我将有5个图表,每个图表都有2个并排的箱线图。如果我说得不够清楚请告诉我。谢谢你。
6条答案
按热度按时间kuhbmx9i1#
ggplot
最适合于“长格式”数据(例如,值、变量和组中的每一个都有一列)。您可以按如下方式重新排列数据:前几行看起来像这样:
现在我们可以这样做:
f5emj3cl2#
我想出的解决方案是将两个
data.frame
和一个变量组合起来,指示观察值属于哪个组。然后,您可以使用reshape2
中的melt
函数将数据转换为data.frame
,以便打印。可以使用facet_grid
或facet_wrap
为不同变量创建单独的图。这是一种方法:ymdaylpp3#
假设数据集的名称是grpa(Group A)和grpb(Group B)。首先,给它们每个添加一个变量
Group
:grpa$Group <-"A"
grpb$Group <-"B"
然后将它们组合成一个数据框架
combined <- rbind(grpa,grpb)
然后使用ggplot绘制,如下所示:
ggplot(combined,aes(x= factor(Group), y=V1))+geom_boxplot()
根据需要贴标签。
zhte4eai4#
50pmv0ei5#
solution
bd1hkmkf6#