如何在R弦图中给标签上色
从几年前开始,我想使用R中的如何在R弦图中给标签上色,r,circlize,R,Circlize,从几年前开始,我想使用R中的Circize软件包对chordDiagram中的段标签进行彩色编码 ?circos.text中的文档告诉我应该使用图形par参数中的参数col来设置this。但是,par(col)不接受颜色向量 有人能告诉我怎么做吗?非常感谢 这里的示例代码使用R中的循环包 库(圆圈) 种子集(999) ##生成示例数据 mat循环轨迹绘图区域函数在其参数x上循环,每次调用panel.function函数。其效果是为每个调用使用col的第一个值(col[1]),而不是在参数col中
Circize
软件包对chordDiagram
中的段标签进行彩色编码
?circos.text
中的文档告诉我应该使用图形par
参数中的参数col
来设置this。但是,par(col)
不接受颜色向量
有人能告诉我怎么做吗?非常感谢
这里的示例代码使用R中的循环
包
库(圆圈)
种子集(999)
##生成示例数据
mat循环轨迹绘图区域
函数在其参数x上循环,每次调用panel.function
函数。其效果是为每个调用使用col
的第一个值(col[1]
),而不是在参数col
中使用值向量
一种解决方案是为每个扇区调用circos.trackPlotRegion
,如下所示:
# replace code after the call to `chordDiagram` with this
for (i in seq_len(nrow(mat))) { # use for loop to label each sector
myFactor <- rownames(mat)[i] # assuming this defines the sectors
myCol <- grid.col[i] # defined in the question
circos.trackPlotRegion(track.index = 1, factor = myFactor,
panel.fun = function(x, y) {
xlim = get.cell.meta.data("xlim")
ylim = get.cell.meta.data("ylim")
sector.name = get.cell.meta.data("sector.index")
circos.text(mean(xlim),
ylim[1] + .1,
sector.name,
col = myCol,
facing = "clockwise",
niceFacing = TRUE,
adj = c(-0.5, 0.5))
circos.axis(h = "top",
labels.cex = 0.5,
major.tick.percentage = 0.2,
sector.index = sector.name,
track.index = 2)
},
bg.border = NA)
}
#将调用'chordDiagram'后的代码替换为以下内容
for(i在seq_len(nrow(mat)){使用for循环来标记每个扇区
myFactorcircos.trackPlotRegion
函数在其参数x
上循环,每次调用panel.function
函数。其效果是为每次调用使用col
的第一个值(col[1]
),而不是考虑参数col
中的值向量
一种解决方案是为每个扇区调用circos.trackPlotRegion
,如下所示:
# replace code after the call to `chordDiagram` with this
for (i in seq_len(nrow(mat))) { # use for loop to label each sector
myFactor <- rownames(mat)[i] # assuming this defines the sectors
myCol <- grid.col[i] # defined in the question
circos.trackPlotRegion(track.index = 1, factor = myFactor,
panel.fun = function(x, y) {
xlim = get.cell.meta.data("xlim")
ylim = get.cell.meta.data("ylim")
sector.name = get.cell.meta.data("sector.index")
circos.text(mean(xlim),
ylim[1] + .1,
sector.name,
col = myCol,
facing = "clockwise",
niceFacing = TRUE,
adj = c(-0.5, 0.5))
circos.axis(h = "top",
labels.cex = 0.5,
major.tick.percentage = 0.2,
sector.index = sector.name,
track.index = 2)
},
bg.border = NA)
}
#将调用'chordDiagram'后的代码替换为以下内容
for(i在seq_len(nrow(mat)){使用for循环来标记每个扇区
myFactor或者,您可以将颜色设置为grid.col[sector.name]
:
库(圆圈)
种子集(999)
##生成示例数据
mat或者,您可以提供网格.col[sector.name]
的颜色:
库(圆圈)
种子集(999)
##生成示例数据
垫子