2

サイト x の変数とサイト y の変数のすべての可能な組み合わせ間の関係の強さを示す data.frame があります。

set.seed(1410)
df<-data.frame(
"site.x"=c(rep("a",4),rep("b",4),rep("c",4),rep("d",4)),
"site.y"=c(rep(c("e","f","g","h"),4)),
"bond.strength"=sample(1:100,16, replace=TRUE))

   site.x site.y bond.strength
    a      e            27
    a      f            54
    a      g            94
    a      h            15
    b      e            58
    b      f            50
    b      g            67
    b      h            51
    c      e            58
    c      f             5
    c      g            48
    c      h            32
    d      e             5
    d      f            13
    d      g            84
    d      h            39

df の情報を 1 つの図にまとめられる図が必要です。このような順列図を考えていたのですが……。

ここに画像の説明を入力

このようなことについてどうすればよいか、何か提案はありますか?よろしくお願いします。

4

2 に答える 2

3

これにより、データを使用して同様のことができます。

library(igraph)
df<-graph.data.frame(df)
V(df)$names <- c("a","b","c","d","e","f","g","h")
layOUT<-data.frame(x=c(rep(1,4),rep(2,4)),y=c(4:1,4:1))
E(df)[ bond.strength < 101 ]$color <- "red"
E(df)[ bond.strength < 67 ]$color <- "yellow"
E(df)[ bond.strength < 34 ]$color <- "green"
V(df)$color <- "white"
l<-as.matrix(layOUT)
plot(df,layout=l,vertex.size=10,vertex.label=V(df)$names,
edge.arrow.size=0.01,vertex.label.color = "black")

ここに画像の説明を入力してください

于 2012-08-21T11:42:59.167 に答える
2

これは、ベース R を使用する方法であり、同じ構造を持つ任意のデータ フレームで機能するはずです。元のサンプルで要素を文字列に変更したことに注意してください。

set.seed(1410)
df<-data.frame(
  "site.x"=c(rep("a",4),rep("b",4),rep("c",4),rep("d",4)),
  "site.y"=c(rep(c("e","f","g","h"),4)),
  "bond.strength"=sample(1:100,16, replace=TRUE), stringsAsFactors=FALSE)


Placement <- data.frame(site=c(unique(df$site.x),unique(df$site.y)), x = NA, y = NA, stringsAsFactors=FALSE)

Placement$x <- ifelse(Placement$site %in% unique(df$site.x), 0, 1)

Placement$y[Placement$x==0] <- seq(1,0,length=sum(Placement$x==0))
Placement$y[Placement$x==1] <- seq(1,0,length=sum(Placement$x==1))

cols <- rep("red",nrow(df))
cols[df$bond.strength < 33] <- "green"
cols[df$bond.strength >= 33 & df$bond.strength < 66] <- "yellow"

# Empty plot:
par(mar=c(0,0,0,0))
plot(1,type="n",xlim=c(-0.2,1.6),ylim=c(0,1),bty="n",axes=FALSE,xlab="",ylab="")
abline(v=c(0,1))
text(Placement$x + ifelse(Placement$x==0,-0.1,0.1),Placement$y,Placement$site)

for (i in 1:nrow(df))
{
  lines(c(0,1),Placement$y[c(match(df$site.x[i],Placement$site),match(df$site.y[i],Placement$site))],col=cols[i],lwd=2)
}

legend("right",col=c("green","yellow","red"),lty=1,lwd=2,legend=c("0-33","33-66","66-100"),title="bondstrength",cex=1.5,bty="n")

ここに画像の説明を入力

于 2012-08-21T12:41:17.640 に答える