0

我正在使用 pakage circlize 来绘制两个不同床(数据框)的直方图。我可以使用“circos.trackHist”函数在两个不同的轨道上制作直方图,但我无法比较它们,因为它们在 Y 轴上有不同的比例。这个函数有一个参数来强制同一轨道的单元格之间的比例(force.ylim = TRUE),但我找不到一种方法来强制轨道之间的 Y 比例。

这可能吗?

4

1 回答 1

0

嗯...我找到了这个解决方案。

要在特定轨道的单元格之间保持相同的 Y 比例,您必须在函数“circos.trackHist”内添加参数“force.ylim = TRUE”。例如:

circos.trackHist(sexpoints2$CHROMOSOME, sexpoints2$START, track.height = 0.1, col = "blue", border = NA, bin.size = 1000000, force.ylim=TRUE)

这会自动计算 y 轴的范围。但是,如果您需要在整个轨道中强制确定 y 轴范围,您可以按照以下步骤定义它:

1-通过以下方式编辑“circos.trackHist”功能:

trace(circos.trackHist, edit = TRUE)

2- 在新窗口中搜索函数“circos.trackPlotRegion”并通过参数“ylim =”定义新的 y 轴范围 例如:

circos.trackPlotRegion(factors = fa, y = yy, track.height = track.height, 
    track.index = track.index, force.ylim = force.ylim, bg.col = bg.col, 
    bg.border = bg.border, bg.lty = bg.lty, bg.lwd = bg.lwd, 
    ylim = c(0, 15))

3- 保存编辑,并运行函数“circos.trackHist”。

这对于比较由不同数据组成的直方图轨迹很有用。

享受。

于 2019-02-14T22:03:37.517 回答