2016-03-17 2 views
1

Я нарисовал следующий график, используя пакет circlize. Красный круг - это единичный круг, нарисованный впоследствии, используя plotrix. Я хочу построить первый трек за красным кружком. По этой причине я изменил canvas.xlim и canvas.ylim на c(-1.2, 1.2). Однако это не работает. Любые идеи о том, как увеличить радиус круга для участка circlize?Как увеличить радиус в круговом графике

ПРИМЕЧАНИЕ: В качестве альтернативы, для меня было бы достаточно, чтобы треки были вне единичного круга, а не внутри.

enter image description here

library(circlize) 
set.seed(2) 
n = 10 
a = data.frame(factor = "dummy", 
       x = rnorm(n, 100, sd=10)) 
circos.par(track.height = 0.2, 
      canvas.xlim=c(-1.2, 1.2), # bigger canvas? 
      canvas.ylim=c(-1.2, 1.2)) # bigger canvas? 
circos.initialize(factors = a$factor, 
        x = a$x, xlim = c(0, 360)) 

lim <- c(-1.2, 1.2) 
plot(NULL, asp=1, xlim=lim, ylim=lim) 
circos.trackHist(a$factor, a$x, col = "blue", bg.col = grey(.95)) 
plotrix::draw.circle(0,0,1, border="red", lwd=2) # unit circle 

ответ

1

Я не знаю, как настроить xlim и ylim сделать два участка подходят. Но если вы просто хотите, чтобы положить на красный круг внутри трека, вы можете использовать функцию draw.sector() непосредственно:

circos.initialize(factors = a$factor, 
        x = a$x, xlim = c(0, 360)) 
circos.trackHist(a$factor, a$x, col = "blue", bg.col = grey(.95)) 
draw.sector(0, 360, rou1 = circlize:::get_most_inside_radius(), 
    border = "red") 

Здесь circlize:::get_most_inside_radius() возвращает расстояние между нижней границей последней дорожки к центру круга.

+0

SO теперь имеет тег ['circlize'] (http://stackoverflow.com/tags/circlize/info) для вашего удобства! – rawr

+0

Спасибо большое !!! –