8

グラフを作成する場合g:

g <- read.table(text="

 A  B   W

 1  55  3
 2  55  5
 3  99  6 ",header=TRUE)

library(igraph)
g <- graph.data.frame(g)

および座標の行列:

y<-1:5
x<-c(0.1,0.1,0.2,0.2,0.8)
l<-data.frame(x,y)
l<-as.matrix(l)

カスタム座標とプロット軸に従って、ノード位置でグラフをプロットできます。

plot(g,layout=l,rescale=F,axes=TRUE,ylim=c(0,6),xlim=c(0,1))

軸が間違っているグラフ

しかし、xaxis の制限は適切に機能せず、yaxis の制限によって変更されていると思います。たとえば、xaxis を 0 から 1 の間に維持するなど、希望どおりに xaxis を制御するにはどうすればよいですか。

すなわち plot(x,y,xlim=c(0,1),ylim=c(0,6))

これはバグですか?そうであり、これを解決できない場合、同じ機能を持つ別のパッケージはありますか?

4

1 に答える 1

22

asp簡単に言えば、plot の呼び出しの引数を設定する必要があるということです。これは、表示される動作を生成する0デフォルトの値ですasp = 1(つまり、これはバグではなく、機能です)。説明付きの長い答えが続きます。


あなたが正しく気づいたように、xaxisによって異なりますyaxis。具体的には、x 軸の高い数値と低い数値の間の距離は、次のようにほぼ同じですyaxis

  • の場合yaxis = c(0,6)、x 軸は -3 から 46 - 0 = 6になります。4 - (-3) = 7
  • の場合yaxis = c(0,3)、x 軸は -1 から 2 になります。3 - 0 = 2 - (-1) = 3

Igraph は、軸間の比率を一定に保つようです。

を呼び出すと(オブジェクトで?plot.igraph呼び出されるプロット関数は、からも見つけることができます)、次の場所にあります。igraphhelp(package = "igraph")See Also

igraph.plottingプロット パラメータの詳細な説明については、

このリンクをクリックして (または を呼び出し?igraph.plottingて) パラメータを確認すると、次のことがわかります。

asp数値定数で、プロットの asp パラメータである縦横比を指定します。縦横比を指定したくない場合は、ここに 0 を指定します。
tkplot と rglplot では無視されます。

デフォルトは 1 です。

したがって、aspect パラメータはaspデフォルト1で igraph に設定されます。別の比率が必要な場合は、次のように設定し0ます。

plot(g,layout=l,rescale=F,axes=TRUE,ylim=c(0,6),xlim=c(0,1), asp = 0)

これはあなたの質問に答えます。ただし、ポイントがかなり大きくなっていることに注意してください。おそらく、次のパラメーターをいじりたいと思うでしょう(私が行った?igraph.plottingように、パラメーターの多くは接頭辞を付ける必要があることに注意しvertex.てください):

  • vertex.size デフォルトは 15 です。5 の方が良さそうです
  • vertex.label.cexデフォルトは 1 です。0.8 の方が良さそうです。

以下は、より良いプロットを生成します。

plot(g,layout=l,rescale=F,axes=TRUE,ylim=c(0,6),xlim=c(0,1), asp = 0, vertex.size = 5, vertex.label.cex = 0.8)

より良いプロット

于 2012-07-03T10:29:43.717 に答える