1

circlizeライブラリを使用してフロー マップを描画しようとしています。私のコードは以下で、データセット (i75_from_flow.RData) はここにあります: https://drive.google.com/file/d/0B0hTmthiX5dpbFJFc2hfN1Zqd1k/view

library(reshape)
t1 <- cast(i75_from_flow, ORIGFIPS ~ TERMFIPS)
i75_from_flow2<- data.matrix(subset(t1, select=-c(1)))
rownames(i75_from_flow2) <- t1$ORIGFIPS
colnames(i75_from_flow2) <- colnames(i75_from_flow2)

library(circlize)
circos.par(gap.degree = 8)
chordDiagram(i75_from_flow2, grid.col= length(union(rownames(i75_from_flow2),colnames(i75_from_flow2))), directional = TRUE, annotationTrack = "grid",
         preAllocateTracks = list(list(track.height = 0.05),
                                  list(track.height = 0.05)))

circos.trackPlotRegion(track.index = 1, panel.fun = function(x, y) {
xlim = get.cell.meta.data("xlim")
ylim = get.cell.meta.data("ylim")
sector.index = get.cell.meta.data("sector.index")
circos.text(mean(xlim), mean(ylim), sector.index, facing = "inside", niceFacing = TRUE)
}, bg.border = NA)

上記のコードを実行すると、コード内のchordDiagramおよびcircos.trackPlotRegion行の後に次のエラーが表示されます。

Error in .CELL.DATA[[1]] : subscript out of bounds

私の目標は、ORIGFIPS と TERMFIPS の間の流れとしてマトリックス セルを示す画像を取得することです。

私の質問は、セル データの問題のエラーを修正する方法です。circlize が適切に機能するには、マトリックスを対称にする必要がありますか? この取り組みでは、常にそうであるとは限りません。

4

1 に答える 1

5

i75_from_flow2値が含まれているためNAです。次の行を追加します。

i75_from_flow2[is.na(i75_from_flow2)] = 0
于 2015-07-28T21:39:31.940 に答える