問題タブ [graph]
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.
graph - 大量の Web 関連データをグラフ化するためのアプリケーション
これがプログラミングに関連していないことはわかっていますが、悲惨な状況から抜け出すのに役立つフィードバックを期待しています.
私たちは実際には、何年も前にさかのぼる、Web アプリケーションからのさまざまなデータをたくさん持っています。
たとえば、
- Apache ログファイル
- 追跡ソフトウェア (CSV) からの毎日の統計ファイル
- 全国広告ランキングの日別統計(CSV)
- ..そして、おそらく他のソースからも新しいデータを生成できます。
2005 年に開始されたデータ レコードもあれば、2006 年に開始されたデータ レコードもあります。
私が夢に見ているのは^H^H^H^H検索は、すべてのデータを理解するためのアプリケーションであり、それらを読み込んで、個々のデータセットとタイムラインを (グラフで) 比較し、同じ期間内の異なるデータセットを比較します。フィルタリングする (特に Apache ログファイル); もちろん、これはすべてインタラクティブにする必要があります。
BZ2 で圧縮された Apache ログファイルだけですでに合計 21GB になり、毎週増加しています。
awstats、Nihu Web Log Analyzer、または同様のツールなどで実際に成功したことはありません。それらは静的な情報を生成するだけですが、情報をインタラクティブにクエリしたり、フィルターを適用したり、他のデータに重ねたりする必要があります。
また、RapidMiner などのデータ マイニング ツールも試してみましたが、うまくいきませんでした (つまり、頭がいっぱいです)。
念のため言っておきますが、これは商用アプリケーションになる可能性があります。しかし、本当に役立つものを見つけなければなりません。
どういうわけか、存在しないものを探しているか、アプローチが間違っているという印象を受けます。どんなヒントでも大歓迎です。
アップデート:
結局、私はそれが次のことの混合物でした:
- 多くのフィルタリング機能を含む、ログファイルの解析と解析を管理するためのbashおよびPHPスクリプトを作成しました
- Excel に読み込むプレーンな古い CSV ファイルを生成しました。私は幸運にも Excel 2007 を使用できました。固定されたデータ セットを操作しているにもかかわらず、Excel 2007 のグラフィカルな機能は非常に役に立ちました。
- Amazon EC2 を使用してスクリプトを実行し、CSV をメールで送信しました。約 200 GB のデータをクロールする必要があったため、大きなインスタンスの 1 つを使用して解析を並列化しました。データを正しく取得するために多数の解析試行を実行する必要があり、全体の処理時間は 45 分でした。Amazon EC2 がなければ何ができたのかわかりません。それは私が支払ったすべての価値がありました。
graph - graphvizを使用して格子を描画するときにノードにy位置を課すにはどうすればよいですか?
Graphvizを使用して格子を描画しています。
ノードは数字のセットです。
ラティスなので、ノードの高さ位置(y)は、ノードによって表されるセット内の要素の数を表すようにします。次に、表現をよりクリーンにするために、x位置をgraphvizで定義する必要があります。
出来ますか?
ドットのドキュメントによると、ノードの位置を定義する属性posが必要です。しかし、さまざまな方法で何度も試しましたが、ノードの位置が定義されているグラフを取得できませんでした。誰かがこれで成功しましたか?
以下は私が使用する古典的なドットファイルです:
1つのノードの高さが定義されているファイルの例を誰かが書くことができれば、私は非常に感謝しています。
algorithm - できるだけ多くの矢印が前を向くようにグラフを並べ替える
有向グラフのノードを並べ替えて、(並べ替え順序に反して) 逆方向に流れる矢印の数が最小限になるようにする必要があります。
アルゴリズムは考えられますが (スワップがなくなるまでノードをスワップし続けるなど)、アルゴリズムの実行速度や最適なソリューションに到達するかどうかはわかりません。
この問題の名前と複雑さは何ですか?
apache-flex - Flash 用グラフ描画ライブラリ
時間の経過とともに収集された数値統計データがたくさんあります。
HTMLページでユーザーに折れ線グラフとして表示する必要があります。クライアントでグラフをレンダリングしたい。グラフがインタラクティブであれば完璧です (ユーザーがスケール、スクロール、グラフの線の可視性の切り替えなどを行えるようにする)。
Flash / Flex (または、おそらく Canvas を使用した JavaScript) 用のまともな無料のグラフ描画ライブラリはありますか?
私は gnuplot のようなものを好みますが、十分に正気であれば何でも扱います。
更新: Flare以外の 何か。
api - Google チャート API を使用した垂直ラベル?
Google Charts APIでx軸ラベルを垂直にする方法を知っている人はいますか?
小さなチャートに多くのラベルを収める必要があります。
ありがとう
colors - 二部グラフ (無向)
入力を取っています、例えば 4 1 3 1 2 2 4
最初の行はノードの数で、その後の行はエッジです。グラフに色を付けようとする必要があります。できない場合は、エラーの原因となっているグラフ内のサイクルをリストする必要があります。
グラフの 1 つに 1,000,000 ノードが含まれていることを除いて、これはこれまでのところ問題ありません。それを使用しようとするたびに、スタック オーバーフロー エラーが発生します。さらに合理化し、Eclipse の最大ヒープ サイズを 1024m に上げたにもかかわらずです。
私はコードを求めているのではなく、エラーが発生し続けるために露骨に間違ったことをしているかどうかを尋ねているだけです。
sql - 再帰的な CTE がノードを複数回訪問するのを防ぐ
次の単純な DAG を検討してください。
そして、これを説明するテーブル #bar (私は SQL Server 2005 を使用しています):
ここで、最初と最後のエッジ、つまり 1->2 と 3->4 を選択する別の任意の基準があるとします。これらを使用して、グラフの残りの部分を見つけたいと思います。
次のように再帰的な CTE を記述できます ( MSDNの用語を使用しています)。
ただし、これによりエッジ 3->4 が 2 回選択されます。
クエリが既に記述されているサブグラフに再帰するのを防ぐにはどうすればよいですか? クエリの「再帰メンバー」部分で、これまでに再帰 CTE によって取得されたすべてのデータを参照できれば、これを実現できます(そして、既にアクセスしたノードを除く再帰メンバーを示す述語を提供できます)。ただし、再帰メンバーの最後の繰り返しで返されたデータにのみアクセスできると思います。
このような繰り返しが多い場合、これはうまくスケーリングしません。この不必要な追加の再帰を防ぐ方法はありますか?
ステートメントの最後の行で「個別選択」を使用して目的の結果を得ることができることに注意してください。
Edit -hainstech は、述語を追加して再帰を停止し、開始セットに明示的に含まれていた再帰パスを除外することを提案しています。つまり、 recurse onlywhere foo.child_id not in (1,3)
です。上記のケースでこれが機能するのは、単純だからです。すべての繰り返されるセクションは、ノードのアンカー セット内で始まります。そうでない可能性がある一般的なケースは解決しません。たとえば、エッジ 1->4 および 4->5 を上記のセットに追加することを検討してください。提案された述語を使用しても、エッジ 4->5 は 2 回キャプチャされます。:(
ruby-on-rails - RubyOnRailsアプリケーションでのグラフの生成
Railsアプリに最適なグラフライブラリ/プラグイン/宝石などを他の人が見つけたのではないかと思います。
私が最もよく言うとき、私は実装の容易さとグラフをカスタマイズする能力を意味すると思います。
私は以前にopenflashchart2を使用し、それが持つ全体的な外観/効果が大好きでしたが、必要に応じてすべてをカスタマイズするのは時々苦痛でした。私をより良い方向に向けるための経験や提案はありますか?どうもありがとう。
python - PythonASCIIグラフ描画
PythonでASCIIグラフ(コンソールで使用)を描画するためのライブラリを探しています。グラフは非常に単純です。これはパイプラインのフローチャートにすぎません。
NetworkXとigraphを見ましたが、ASCIIに出力する方法がわかりませんでした。
これは経験がありますか?
どうもありがとう!
パトリック
編集1:私は実際に必要なことを実行しているライブラリを見つけましたが、それはperl Graph::Easyにあります。私はPythonからコードを呼び出すことができましたが、私はそのアイデアがあまり好きではありません...それでもPythonソリューションを探しています:)
python - グラフライブラリ(NetworkXなど)はPythonの問題に対する正しい解決策ですか?
Pythonでデータ駆動型のレガシーアプリケーションを書き直しています。プライマリテーブルの1つは「グラフテーブル」と呼ばれ、有向グラフのように見えるので、NetworkXパッケージを調べて、グラフテーブルの操作に使用する意味があるかどうかを確認し、実際に実装しました。複雑な配列のセットではなく、グラフとして表示されます。
ただし、このテーブルの使用方法が実際のグラフ操作ライブラリにあまり適していないかどうか疑問に思い始めています。NetworkX機能のほとんどは、グラフ自体を何らかの方法で特徴付けたり、2つのノード間の最短距離を決定したりすることを目的としているようです。それは私のアプリケーションには関係ありません。
ここで実際の使用法を説明できれば、誰かが私に何かが足りないのかどうかを教えてくれることを願っています-私はこれまでグラフを実際に操作したことがないので、これはかなり可能です-または他の何かを探索する必要があるかどうかデータ構造。(もしそうなら、あなたは何を提案しますか?)
この表は主に、ユーザーが指定したキーワードの文字列をコンポーネントの順序付きリストに変換するために使用します。これはユースケースの95%を構成します。他の5%は、「部分的なキーワード文字列を指定し、可能なすべての補完を提供する」および「すべての可能な有効なキーワード文字列を生成する」です。ああ、そして奇形に対してグラフを検証します。
これが表の編集された抜粋です。列は次のとおりです。
キーワードinnodeoutnodeコンポーネント
キーワード文字列「acs、wfc1、f555w」とこのテーブルが与えられると、トラバーサルロジックは次のようになります。
ノード1から開始します。「acs」は文字列に含まれているため、ノード20に移動します。
ノード20に提示されたキーワードはいずれも文字列に含まれていないため、デフォルトを選択し、hst_otaを選択して、ノード30に移動します。
「acs」は文字列に含まれているため、ノード10000に移動します。
「wfc1」は文字列に含まれているため、ノード10100に移動します。
唯一の選択肢。ノード10101に移動します。
選択肢は1つだけなので、acs_wfc_im123を選択して、ノード10130に移動します。
「f555w」は文字列に含まれているため、acs_f555wを取得して、ノード10140に移動します。
選択肢は1つだけなので、ノード10300に移動します。
「wfc1」は文字列に含まれているため、acs_wfc_ebe_win12fを取得して、ノード10310に移動します。
選択肢は1つだけなので、acs_wfc_ccd1を選択して、ノード10320に移動します。これは存在しません。これで完了です。
したがって、コンポーネントの最終的なリストは次のようになります。
このテーブルのインノードとアウトノードだけからグラフを作成することはできますが、複数の可能性に直面したときにどちらを選択するかを決定するキーワード情報を組み込む方法を一生理解できませんでした。
他のユースケースの例を追加するために更新されました。
文字列"acs"が与えられた場合、可能な正当な次の選択肢として( "hrc"、 "wfc1")を返します。
文字列「acs、wfc1、foo」を指定すると、未使用のキーワードが原因で例外が発生します
可能なすべての有効な文字列を返します。
- cos
- acs、hrc
- acs、wfc1、f606w
- acs、wfc1、f550m
- acs、wfc1、f555w
すべてのノードに到達できること、およびループがないことを検証します。
これらの最初の2つについてはAlexのソリューションを微調整できますが、最後の2つについてはそれを行う方法がわかりません。