1

我使用circlize包绘制了以下图。红色圆圈是之后绘制的单位圆,使用plotrix. 我想在红色单位圆之外绘制第一条轨道。出于这个原因,我更改canvas.xlim为. 但是,这不起作用。任何想法如何增加情节的圆半径?canvas.ylimc(-1.2, 1.2)circlize

注意:或者,如果轨道在单位圆之外而不是在内部,这对我来说就足够了。

在此处输入图像描述

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
4

1 回答 1

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()返回最后一个轨道的底部边界到圆心的距离。

于 2016-03-23T10:44:59.387 回答