2013-08-27 7 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