以下是我的数据
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',圆圈的大小取决于V1
和V2
的时间,在同一位置,a
中有V1
,B
中有V2
。它有意义吗?
同样的信息也可以在条形图上显示......但我想试试这个圈子表示!下面是条形图。
这是我实现此条形图的代码
ggplot(data=data, aes(factor(Fish_sp), fill=General.substrate)) + geom_bar(stats='bin', position=position_dodge()) + coord_flip() + xlab('Fish species')
答案 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))