2013-08-27 35 views
1

我想制作一张我认为是R中非常简单的图表 - 它将显示落入两个类别之一的基因数量。R中的按比例大小的圆圈

圈子的面积必须相对于彼此,并显示我的两个类别的计数数量之间的巨大差异。一个类别是15000个,另一个是15个。因此,一个圈子的面积应该是另一个圈子的1000倍。有没有一个简单的R脚本可以用来做到这一点? (绘制两个圆圈,其中一个的面积比另一个小X倍)

+0

我通常把这种图形作为一个“气泡图”,虽然我也看到他们被称为“气泡图”。将这些搜索词与R结合使用可以帮助您找到更多关于如何进行这些搜索的示例。 [实施例](http://flowingdata.com/2010/11/23/how-to-make-bubble-charts/)。 – aosmith

回答

2

可以使用plotrix程序包和draw.circle函数绘制圆圈。所以要回答你的问题,我们只需要计算每个圆的半径。为了进行比较,使第一个圆有单位面积更容易。所以,

## Calculate radius for given area 
get_radius = function(area = 1) sqrt(area/pi) 

##Load package and draw blank graph 
library(plotrix) 
plot(-10:10,seq(-10,10,length=21),type="n",xlab="",ylab="") 

## Unit area 
draw.circle(0, 0, get_radius()) 

## 10 times larger 
draw.circle(0, 0, get_radius(10)) 
0

this post所示,可以使用例如shape包,并使用功能plotcircle在那里你可以选择半径。例如:

require("shape") 
emptyplot(c(0, 1)) 
plotcircle(mid = c(0.2, 0.5), r = 0.1) 
plotcircle(mid = c(0.6, 0.5), r = 0.01) 

enter image description here