Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R弦图中给标签上色_R_Circlize - Fatal编程技术网

如何在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中

从几年前开始,我想使用R中的
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)
##生成示例数据
垫子