如何使用GNU R创建分类气泡图,类似于系统映射研究中使用的气泡图(见下文)?



编辑:好的,这是到目前为止我尝试过的。首先,我的数据集(Var1进入x轴,Var2进入y轴):

> grid
                         Var1                      Var2 count
1              Does.Not.apply            Does.Not.apply    53
2               Not.specified            Does.Not.apply    15
3   Active.Learning..general.            Does.Not.apply     1
4      Problem.based.Learning            Does.Not.apply     2
5              Project.Method            Does.Not.apply     4
6         Case.based.Learning            Does.Not.apply    22
7               Peer.Learning            Does.Not.apply     6
10                      Other            Does.Not.apply     1
11             Does.Not.apply             Not.specified    15
12              Not.specified             Not.specified    15
21             Does.Not.apply Active.Learning..general.     1
23  Active.Learning..general. Active.Learning..general.     1
31             Does.Not.apply    Problem.based.Learning     2
34     Problem.based.Learning    Problem.based.Learning     2
41             Does.Not.apply            Project.Method     4
45             Project.Method            Project.Method     4
51             Does.Not.apply       Case.based.Learning    22
56        Case.based.Learning       Case.based.Learning    22
61             Does.Not.apply             Peer.Learning     6
67              Peer.Learning             Peer.Learning     6
91             Does.Not.apply                     Other     1
100                     Other                     Other     1


然后,尝试绘制数据:

# Based on http://flowingdata.com/2010/11/23/how-to-make-bubble-charts/
grid <- subset(grid, count > 0)
radius <- sqrt( grid$count / pi )
symbols(grid$Var1, grid$Var2, radius, inches=0.30, xlab="Research type", ylab="Research area")
text(grid$Var1, grid$Var2, grid$count, cex=0.5)


结果如下:

问题:轴标签错误,虚线虚线丢失。

最佳答案

这是ggplot2解决方案。首先,将半径作为新变量添加到数据框。

grid$radius <- sqrt( grid$count / pi )


您应该在绘图中试一下点的大小和文本标签,以使其完美匹配。

library(ggplot2)
ggplot(grid,aes(Var1,Var2))+
  geom_point(aes(size=radius*7.5),shape=21,fill="white")+
  geom_text(aes(label=count),size=4)+
  scale_size_identity()+
  theme(panel.grid.major=element_line(linetype=2,color="black"),
        axis.text.x=element_text(angle=90,hjust=1,vjust=0))

关于r - 分类气泡图用于制图研究,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15840926/

10-12 18:09