0

異なる処理下での植物の形質を表す 4 つの相関ネットワークを作成しています。2つが完璧になりました。明らかにコードは機能します。基礎となる 4 つのマトリックスは同じ構造を持っています (数字が異なるだけです)。最後の 2 つのネットワークをプロットしようとすると、エラーが発生します

構造体のエラー (.External("dotTclObjv", objv, PACKAGE = "tcltk"), class = "tclObj") : [tcl] スクリーン距離 "NaN(7a2)" が正しくありません。

使用されるコードは、プロットを行う 2 つのネットワークと同じであり、基になる行列の構造も同じです。マトリックスが違うだけ。それ以外はすべて正確なコピーであり、matrix-name のみが変更されています。

この特定のエラーの意味がわかりません。ここにも、グーグルにもありません。また、何が原因で、どのような解決策があるのか​​もわかりません。アイデアがあることを願っています。

これは、プロットを行うグラフのコードです

tkplot(graphY1W,canvas.width=800, canvas.height=800,layout=layout.fruchterman.reingold,  edge.lty=E(graphlty), vertex.color=V(graphY1W)$color,
     vertex.label.color="black", vertex.shape="circle",vertex.size=30, vertex.label.cex=1.3,
     vertex.label.family = "arial", asp=0.5, frame=FALSE)

エラーを返すグラフのコードは次のとおりです

tkplot(graphY1H,canvas.width=800, canvas.height=800,layout=layout.fruchterman.reingold, edge.lty=E(graphlty), vertex.color=V(graphY1H)$color,
       vertex.label.color="black", vertex.shape="circle",vertex.size=30, vertex.label.cex=1.3,
       vertex.label.family = "arial", asp=0.5, frame=FALSE)

前述のように、基になるマトリックスのみを変更しました(Y1WからY1Hへ)...

Y1H <-structure(c(1, 1.659121936, 1.683574156, -1.636071881, 1.734576395, 
0, 0, 1.910109335, 1.874007899, 1.82812604, 0, -1.694062621, 
0, 0, -1.593250746, 1.616738344, -2.601817743, 1.659121936, 1, 
1.88073058, -1.917663654, 2.524210889, 3.590160511, 0, 1.445638937, 
1.459362536, 1.78435537, 0, 0, 0, 0, 0, 0, 0, 1.683574156, 1.88073058, 
1, -1.936450937, 1.547794218, 3.661020921, 0, 2.47583749, 2.436913725, 
1.700847971, 0, 0, 0, 0, 0, 0, 0, -1.636071881, -1.917663654, 
-1.936450937, 1, -2.519539383, -3.48562769, 0, -2.445003751, 
-1.432910302, -1.718333159, 0, 0, 0, 0, 0, 0, 0, 1.734576395, 
2.524210889, 1.547794218, -2.519539383, 1, 0, 0, 1.684661311, 
1.716303539, 1.836987732, 0, -1.64143162, 0, 0, -3.640394701, 
1.657415967, -2.421877362, 0, 3.590160511, 3.661020921, -3.48562769, 
0, 1, 0, 0, 0, 1.517975677, 3.504422601, 0, 0, -1.734362255, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1.707442895, 
0, 0, 0, 1.910109335, 1.445638937, 2.47583749, -2.445003751, 
1.684661311, 0, 0, 1, 1.990035081, 3.6916112, 0, -1.766952815, 
-2.504601913, 0, -1.555039314, 1.68010264, -2.590319613, 1.874007899, 
1.459362536, 2.436913725, -1.432910302, 1.716303539, 0, 0, 1.990035081, 
1, 3.718065616, 0, -1.801899401, -2.497498974, 0, -1.5664764, 
1.701880341, -2.563625037, 1.82812604, 1.78435537, 1.700847971, 
-1.718333159, 1.836987732, 1.517975677, 0, 3.6916112, 3.718065616, 
1, 0, -3.541412556, 0, 0, -3.62446497, 1.673455721, 0, 0, 0, 
0, 0, 0, 3.504422601, 0, 0, 0, 0, 1, 3.406858939, 0, -3.621786424, 
1.606578292, 0, 0, -1.694062621, 0, 0, 0, -1.64143162, 0, 0, 
-1.766952815, -1.801899401, -3.541412556, 3.406858939, 1, 1.6832198, 
-1.550641628, 1.85684289, -1.812309146, 2.516258633, 0, 0, 0, 
0, 0, 0, 0, -2.504601913, -2.497498974, 0, 0, 1.6832198, 1, 0, 
1.648655514, -1.55441377, 0, 0, 0, 0, 0, 0, -1.734362255, 1.707442895, 
0, 0, 0, -3.621786424, -1.550641628, 0, 1, 0, 0, 0, -1.593250746, 
0, 0, 0, -3.640394701, 0, 0, -1.555039314, -1.5664764, -3.62446497, 
1.606578292, 1.85684289, 1.648655514, 0, 1, -1.824735792, 2.535308857, 
1.616738344, 0, 0, 0, 1.657415967, 0, 0, 1.68010264, 1.701880341, 
1.673455721, 0, -1.812309146, -1.55441377, 0, -1.824735792, 1, 
-2.444738599, -2.601817743, 0, 0, 0, -2.421877362, 0, 0, -2.590319613, 
-2.563625037, 0, 0, 2.516258633, 0, 0, 2.535308857, -2.444738599, 
1), .Dim = c(17L, 17L), .Dimnames = list(NULL, c("Pn", "gs", 
"Pn_amb.Pn_sat", "WUE", "WP", "TL", "FMDM", "Chl", "Car", "Chlab", 
"MP", "LMF", "SRR", "SLAP", "AP", "NAR", "RGR")))    
graphY1H<-graph.adjacency(Y1H,weighted=TRUE,mode="undirected",diag=FALSE)
    E(graphY1H)[weight > -4.0 & weight < -3.75]$color <- "black" 
    E(graphY1H)[weight >= -3.75 & weight <= -3.5]$color <- "black"
    E(graphY1H)[weight <  4.0 & weight > 3.75]$color <- "grey"
    E(graphY1H)[weight <= 3.75 & weight >= 3.5]$color <- "grey"
    E(graphY1H)[weight > -3.0 & weight < -2.75]$color <- "black" 
    E(graphY1H)[weight >= -2.75 & weight <= -2.5]$color <- "black"
    E(graphY1H)[weight <  3.0 & weight > 2.75]$color <- "grey"
    E(graphY1H)[weight <= 2.75 & weight >= 2.5]$color <- "grey"
    E(graphY1H)[weight > -2.0 & weight < -1.75]$color <- "black" 
    E(graphY1H)[weight >= -1.75 & weight <= -1.5]$color <- "black"
    E(graphY1H)[weight < 2.0 & weight >  1.75]$color <- "grey"
    E(graphY1H)[weight <= 1.75 & weight >= 1.5]$color <- "grey"

    E(graphY1H)[weight > -4.0 & weight < -3.75]$width <- 7
    E(graphY1H)[weight >= -3.75 & weight <= -3.5]$width <- 3
    E(graphY1H)[weight <  4.0 & weight > 3.75]$width <- 7
    E(graphY1H)[weight <= 3.75 & weight >= 3.5]$width <- 3
    E(graphY1H)[weight > -3.0 & weight < -2.75]$width <- 7
    E(graphY1H)[weight >= -2.75 & weight <= -2.5]$width <- 3
    E(graphY1H)[weight <  3.0 & weight > 2.75]$width <- 7
    E(graphY1H)[weight <= 2.75 & weight >= 2.5]$width <- 3
    E(graphY1H)[weight > -2.0 & weight < -1.75]$width <- 7
    E(graphY1H)[weight >= -1.75 & weight <= -1.5]$width <- 3
    E(graphY1H)[weight < 2.0 & weight >  1.75]$width <- 7
    E(graphY1H)[weight <= 1.75 & weight >= 1.5]$width <- 3

    graphlty<-graph.adjacency(Y1H,weighted=TRUE,mode="undirected",diag=FALSE)
    E(graphlty)[weight > -4.0 & weight < -3.75]$lty <- 1
    E(graphlty)[weight >= -3.75 & weight <= -3.5]$lty <- 1
    E(graphlty)[weight <  4.0 & weight > 3.75]$lty <- 1
    E(graphlty)[weight <= 3.75 & weight >= 3.5]$lty <- 1
    E(graphlty)[weight > -3.0 & weight < -2.75]$lty <- 3
    E(graphlty)[weight >= -2.75 & weight <= -2.5]$lty <- 3
    E(graphlty)[weight <  3.0 & weight > 2.75]$lty <- 3
    E(graphlty)[weight <= 2.75 & weight >= 2.5]$lty <- 3
    E(graphlty)[weight > -2.0 & weight < -1.75]$lty <- 4
    E(graphlty)[weight >= -1.75 & weight <= -1.5]$lty <- 4
    E(graphlty)[weight < 2.0 & weight >  1.75]$lty <- 4
    E(graphlty)[weight <= 1.75 & weight >= 1.75]$lty <- 4

    V(graphY1H)$color <-  ifelse(V(graphY1H)$name=="Pn", "grey",
                          ifelse(V(graphY1H)$name=="gs", "grey",
                          ifelse(V(graphY1H)$name=="Pn_a.s", "grey",
                          ifelse(V(graphY1H)$name=="WUE", "grey",
                          ifelse(V(graphY1H)$name=="WP", "grey",
                          ifelse(V(graphY1H)$name=="TL", "grey95",
                          ifelse(V(graphY1H)$name=="FMDM", "grey95",
                          ifelse(V(graphY1H)$name=="Chl", "grey45",
                          ifelse(V(graphY1H)$name=="Chlab", "grey45",
                          ifelse(V(graphY1H)$name=="Car", "grey45",
                          ifelse(V(graphY1H)$name=="Mp", "white",
                          ifelse(V(graphY1H)$name=="LMF", "white",
                          ifelse(V(graphY1H)$name=="SRR", "white",
                          ifelse(V(graphY1H)$name=="SLAp", "grey95",
                          ifelse(V(graphY1H)$name=="Ap", "grey95",
                          ifelse(V(graphY1H)$name=="NAR", "white",
                          ifelse(V(graphY1H)$name=="RGR", "white","white")))))))))))))))))

    tkplot(graphY1H,canvas.width=800, canvas.height=800,layout=layout.fruchterman.reingold, edge.lty=E(graphlty), vertex.color=V(graphY1H)$color,
           vertex.label.color="black", vertex.shape="circle",vertex.size=30, vertex.label.cex=1.3,
           vertex.label.family = "arial", asp=0.5, frame=FALSE)
4

1 に答える 1

0

ここでの問題の原因は、基礎となるマトリックスにあることが判明しました。それらは同一ですが、両方の「加熱行列」の相関関係が |*.500| 未満です。現れる。そのような値を取り出すことと、そのような値をどうするかを定義するコードにいくつかの行を追加することの両方が、tkplot が適切に機能することを可能にします。どうやら tkplot にはそのような定義が必要ですが、plot には必要ありません。

于 2014-08-12T10:00:50.913 に答える