我想使用 Circlize 绘制三组数据。集合的“a”和“b”包含正值和负值,集合“c”只包含正值。我想为“a”和“b”使用一致的 y 轴,为“c”使用不同的 y 轴。不幸的是,我找不到这样做的方法。
我正在使用的代码如下,我似乎只能为每个拥有唯一的 y 轴或为所有人拥有一个固定的 y 轴(如果你在代码中取消注释“ylim ...”)。
我尝试了一些事情,尝试使用该circos.lines()
函数循环,但这并没有解决它。
circos.info()
显示单独的 y 轴限制,所以我认为应该是可能的。
提前致谢。
library("circlize")
library("reshape")
#--- Data ---#
a <- sort(rnorm(100,0,10))
b <- sort(rnorm(100,0,5))
c <- abs(rnorm(100,0,200))
data <- cbind("a" = a, "b" = b, "c" = c)
data_melt <- melt(data)
#--- Plotting ---#
circos.initialize( factors = data_melt$X2,
x = data_melt$X1,
sector.width = 1
)
circos.trackPlotRegion( factors = data_melt$X2,
y = data_melt$value,
# ylim = range(data_melt$value),
force.ylim = FALSE,
panel.fun = function(x, y) { circos.axis( ) }
)
circos.trackLines( data_melt$X2,
data_melt$X1,
data_melt$value,
type = "h",
col = "grey",
lwd = 3,
baseline = 0)`
circos.info(sector.index = NULL, track.index = 1)