問題タブ [networkx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
905 参照

python - 自分のオブジェクトで networkx を使用する

私は自分のオブジェクトを持っています、ペパロニと言います。すべてのペパロニからのエッジのリストとペパロニのリストがあります。次に、networkx を使用してグラフを作成します。あるペパロニから別のペパロニへの最短経路の重みを見つけようとしています。ただし、次のようなエラーが発生します。これは、次のように networkx から内部のものをトレースします。

エラーとは何か、またはこの KeyError を取得しないためにピザ クラスに追加する必要があるものについて何か考えはありますか?

編集:エッジが正しくフォーマットされています。ただし、オブジェクトをノードとして扱えるかどうかはわかりません。

0 投票する
5 に答える
1217 参照

python - Python では、どのようにして辞書からキーを取得できますか?

物事を辞書に入れるためのハッシュ可能な識別子があります:

ハッシュと等価のために識別子をカプセル化するノードタイプがあります。

いくつかのノードを辞書に入れました。

しばらくして、識別子しかありません。

この識別子でこの辞書に格納されているノードを効率的に検索する方法はありますか?

これは思ったより少し難しいことに注意してください。d[my_id]関連する item を簡単に取得できることはわかっています'Node 2'が、への参照を効率的に返したいと考えていますn2

のすべての要素を調べることでできることはわかっていますがd、試してみましたが、遅すぎます(辞書には何千もの項目があり、これをかなりの回数行います)。

内部でその識別子のand演算子をdict使用して、ノードとそれに関連するアイテムを格納していることを知っています。実際、ルックアップを使用すると、実際には中間ステップとしてルックアップする必要があるため、これは間違いなく可能です。hasheqn2'Node 2'my_id'Node 2'n2

これを使用して、データをグラフに保存しています。valueノードには、ハッシュで使用されていない多くの追加データ (私が配置した場所) があります。使用しているグラフ パッケージ (networkX) は作成していませんが、ノードを格納するディクショナリを確認できます。ノードへの識別子の周りに追加の辞書を保持することもできますが、これは面倒です (グラフ クラスをラップし、ノードの追加、ノードの削除、リストからのノードの追加、リストからのノードの削除、エッジの追加をすべて書き直す必要があります)。など、その辞書を最新の状態に保つ関数を入力します)。

これはかなりのパズルです。どんな助けでも本当に感謝します!

0 投票する
4 に答える
8973 参照

python - ある程度の分布を持つグラフを生成しますか?

スモールワールドプロパティ(べき乗則分布を示す)を持つランダムグラフを生成しようとしています。networkxパッケージを使い始めたところ、さまざまなランダムグラフ生成が提供されていることがわかりました。特定のノードの次数がガンマ分布に従うグラフを生成できるかどうか誰かに教えてもらえますか(Rまたはpythonのnetworkxパッケージを使用)?

0 投票する
1 に答える
3900 参照

python - networkx からエッジを別の色に取得する方法

ツリー イメージを作成しました。質問を参照してください。
今、私はいくつかの主要なグループを持っています。
1 つのグループには、緑と茶色のノードがあり、「B」と「A」があります。2 番目のグループにはピンクのノードと「T」のみがあり、最後のグループには黄色、オレンジ、青、および文字「L」、「X」、「H」があります。色はノードの色を示し、文字は名前に属します。そこで、さまざまなグループのエッジに色を付けたいと思います。

上記と同様の関数を実行したので、node の代わりに get_edge に変更しました。これを試してください:

エッジは次のとおりです。

おそらく、名前に T が含まれている場合は、エッジに色を付ける方法があります。どう思いますか?

誰もこれを行う方法を知っていますか?

ありがとうございました

0 投票する
1 に答える
3123 参照

python - PythonNetworkX循環グラフサイズを増やす

networkxで生成されるグラフのサイズを大きくすることは可能ですか?現在、常に800x600を出力します。

半径の大きいグラフを出力するにはどうすればよいですか。ディスプレイのサイズに依存しますか?

0 投票する
2 に答える
1645 参照

python - DiGraph networkxの大規模なネットワークインスタンスでの最速の反復は何ですか?

私はPythonのオープンソースnetworkxパッケージからDiGraph.pyを継承するクラスを書いています。

私のクラスのいくつかのメソッドでは、特定の次数(有向グラフの場合はoutdegreesまたはindegrees)のノードを検索して返す必要があります。

このクラスは、データマイニングプロジェクト\自然言語処理で使用され、非常に大規模なネットワークで使用されます。私が必要としているのは、説明されているメソッドの高速実装です(特定のアウト度または特定のイン度を持つノードのリストを返します)。

スーパークラスにはすでにいくつかの定義があります。1。メソッドnetwork.outdegree():ノードキーとoutdegree値を含むディクショナリを返します。

  1. である方法

network.out_degree_iter()

この方法の使い方がわかりません。誰かがその使い方を説明してくれればありがたいです。

3.ネットワーク内のすべてのノードのリストである属性network.nodesがあります。

質問:たとえば、network.nodesでリスト内包を実行することにより、すべてのノードを反復処理してoutdegree 2のノードを返すことができます。または、辞書を反復処理して値2のノードのリストを返すか、またはout_degree_iter()これがどのように使用されているのか、またはforループ(dict.iteritems()のfor k、v)で辞書アイテムを反復処理するのとどのように違うのかわかりません。ノードとエッジの非常に大規模なネットワークでは、これらのどれが高速でしょうか。なぜですか。

ありがとう

0 投票する
3 に答える
557 参照

python - networkxでうまく機能するように、オブジェクトをどのように作成する必要がありますか?

都市や州の名前、緯度や場所などの全地球測位データを取得するプロジェクトを設計しようとしています。また、都市のすべてのペア間の距離もあります。このすべての情報を使用してグラフを作成し、それを操作していくつかのグラフアルゴリズムを実行したいと思います。各場所のデータを含む都市オブジェクトを作成することにしました。オブジェクトを区別するためのハッシュ関数が必要ですか?そして、ノードを組み合わせてエッジを削除するグラフアルゴリズムをどのように処理する必要がありますか?

本当に悪い状態です。元のプログラムを書き直していますが、これは以前のバージョンから採用したアプローチです。

0 投票する
1 に答える
4715 参照

algorithm - グラフのクロス エッジを最小限に抑える

プロジェクトの 1 つにnetworkx (python グラフ描画パッケージ) http://networkx.lanl.gov/index.htmlを使用しています。networkx はかなりクールですが、クロス エッジの数が原因で、表示機能が最悪です。グラフの交差エッジを最小限に抑える方法はありますか? 交差エッジが最小化されるような方法でノードをソートできるアルゴリズムを意味しますか?

0 投票する
1 に答える
1711 参照

python - networkx グラフにツールチップを表示することはできますか?

多数のポイントを含む単純なグラフがあるため、すべてのポイントにラベルを表示したくありません。しかし、ツールチップを介して、どちらがどちらであるかを判断できるようにしたいと考えています。

networkx を使用してツールチップを追加/表示することは可能ですか?

これが私のコードです:

「説明ラベル」をツールチップとして表示したいと思います。何か案は?

0 投票する
2 に答える
5909 参照

python - グラフ内のすべてのノードの名前を一連の番号に変更します

Python 用の NetworkX グラフ ライブラリを使用しています。プログラムのある時点で、nodeID を一連の数字に「統合」したいと考えています。これが私の素朴なアプローチです:

このすべての近隣の徹底的なコピーよりも高速な方法はありますか? たとえば、 を試してみg[i+start] = g[n]ましたが、それは禁止されています。

ありがとう!