与ggplot不同大小的圆圈

时间:2013-11-07 12:19:26

标签: r ggplot2 geometry

以下是我的数据

V1 = c('a','b','a','b','c','c','c','b','b','a','c','c','c','b','a','a')
V2 = c('A','A','A','B','B','C','A','B','C','C','B','B','B','C','A','B')

我想制作一个x轴为V1,y轴为V2的ggplot。该图应由实心圆圈组成,其大小表示相互作用的数量。例如:在x轴=='a',y轴='B',圆圈的大小取决于V1V2的时间,在同一位置,a中有V1B中有V2。它有意义吗?

同样的信息也可以在条形图上显示......但我想试试这个圈子表示!下面是条形图。

enter image description here

这是我实现此条形图的代码

ggplot(data=data, aes(factor(Fish_sp), fill=General.substrate)) + geom_bar(stats='bin', position=position_dodge()) + coord_flip() + xlab('Fish species')

1 个答案:

答案 0 :(得分:3)

这是我将如何做到的。您需要将大小映射到出现次数,这是我获取该数据的最简单方法是dcast() reshape2跟随melt()。然后绘图是微不足道的:

library(reshape2)
dat <- data.frame(V1, V2)
dat.c <- dcast(dat, V1 ~ V2)
dat.m <- melt(dat.c, id.var = "V1")
ggplot(dat.m, aes(V1, variable)) + geom_point(aes(size = value))

enter image description here