問題タブ [visualization]

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 投票する
2 に答える
2290 参照

c# - デスクトップ アプリケーションでのデータの視覚化

この種のタスクに役立つフレームワーク、言語、およびライブラリを使用して、デスクトップ アプリでデータの視覚化を作成したいと考えています。ビジュアライゼーションはインタラクティブである必要があります: クリック可能、ドラッグ可能、カスタマイズ可能、アニメーション...

私が作成したいのは、次の例に似たものです: http://www.visualcomplexity.com/vc/

これらは私がすでに知っているリンクです: http://delicious.com/laura_laura/visualization?setcount=100

私がよく知っている言語は C++/Visual C++ (MFC) ですが、他のテクノロジも歓迎します。Visual C++ に「できるだけ似ている」ものから、Visual C++ と「非常に異なる」ものまで、リストを作成したいと思います。 C++.

WPF、flex、Adobe Air、flare、JavaScript (ローカル ファイルにアクセスできるクライアント側アプリまたはデスクトップ アプリとしてブラウザーで実行) が可能です。例、チュートリアル、ハウツーなどへの適切なリンクを投稿してください。知ってる。

さまざまなオプションの学習曲線と複雑さは? あなたはどちらを選びますか、そしてその理由は何ですか? すでに一緒に仕事をしたことがあるのはどれですか。その経験はどうでしたか? この特徴を持つプロジェクトをどのように開始しますか?

0 投票する
7 に答える
66149 参照

visualization - 音楽ビジュアライザーの作成

では、どのようにして音楽ビジュアライザーを作成するのでしょうか? Google で調べましたが、実際のプログラミングについて述べているものは何も見つかりませんでした。ほとんどの場合、プラグインまたは視覚化アプリケーションへのリンクのみです。

私は iTunes を使用していますが、そのプログラムを作成するには Xcode が必要であることに気付きました (私は現在イラクに配備されており、それほど大きなファイルをダウンロードすることはできません)。だから今は、周波数の処理など、その背後にある「理論」を学ぶことに興味があります。

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

git - 複雑なバージョン管理システムの履歴を閲覧するための最先端のユーザーインターフェイスとは何ですか?

Mercurialを使用していると、数千のチェンジセットがあり、一度に10以上のアクティブなブランチがある場合、チェンジセット間の関係を理解するのが難しいことがあります。現在、私は大丈夫なhgviewを使用しており、親の関係を表現するための合理的な試みを行っていますが、それでも基本的に1次元です。GraphVizなどのグラフ視覚化プログラムを利用したものがうまく機能するかもしれないし、おそらくもっと奇抜なものかもしれないと思います。

現在、約30,000のリビジョンのプロジェクトに取り組んでおり、その数は大幅に増えると予想しています。100人のフルタイムの開発者が実際に分散バージョン管理を行い、定期的にコミットして完全な開発履歴を共有し始めると、何百万ものリビジョンを処理することになります。したがって、履歴全体を見るたびにRAMにロードする必要がないブラウザが必要になります

私は、バージョン管理システム用の優れた履歴ブラウザーにも興味があります。特に、Mercurialに移植できる可能性がある場合はそうです。

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

java - Prefuse: XML ファイルのリロード

私はプレフューズ ビジュアライゼーション ツールキットを初めて使用するので、一般的な質問がいくつかあります。私の目的のために、prefuse (graphview / graphml) を使用して初期の視覚化を実行したいと思います。レンダリングしたら、ユーザーがノードをクリックすると、新しい視覚化のために新しい xml ファイルを完全にリロードしたいと思います。グラフを表示用に「事前にパッケージ化」できるようにするために、これを行いたいと考えています。

例えば。テッドを探したら Ted に関連する xml ファイルを読み込み、表示をレンダリングしたいと考えています。Ted には、Bill と Joe という名前のノードが関連付けられていることが表示されます。Joe をクリックすると、表示がクリアされ、Joe に関連付けられた xml ファイルがロードされます。等々。

すべてのノードとノードの関係情報を含む 1 つの非常に大きな xml ファイルをロードし、あるレベルから別のレベルへのホップを使用して prefuse がこれを処理できるようにすることを検討しました。ただし、最終的には、データのサイズが原因でシステム パフォーマンスの問題が発生すると確信しています。

助けてくれてありがとう、ジョン

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

.net - VRML モデルを .NET で表示するには?

.NET アプリケーション内で VRML モデルを表示したいという要求があります。おそらく標準の.NETコンポーネントを使用して、これを達成するための簡単な方法を誰かが知っていますか? アプリケーション内で VRML を表現する際に直面する可能性のある問題は何ですか?

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

java - Java: スレッド化のテクニックと概念

スレッドを使用するとき、空間的なコンテキストでオブジェクト間の 3 次元以上の相互接続を織り合わせているように視覚化することがあります。これは一般的なユース ケース シナリオではありませんが、私が行っていることについて考えると便利な方法です。

スレッド化を支援するために使用する API はありますか?

スレッドがプロセスであると概念化しない方法でスレッドを使用したことがありますか?

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

c++ - オープン ソース C++ データ視覚化ライブラリ

デスクトップ GUI にデータの視覚化を組み込みたいと考えています (主にタイムラインとグラフ。クリック可能、ドラッグ可能)。私たちは、商用利用を許可し、多くのプラットフォーム間で移植可能なオープンソースの非コピーレフト C++ ライブラリに制限したいと考えています。どのライブラリを使用できますか? 私たちの GUI は WxWidgets に基づいています。

0 投票する
10 に答える
2852 参照

visualization - データ視覚化の最良の例は?

私はデータ ビジュアライゼーションが大好きで、その愛を広めるために、お気に入りのデータ ビジュアライゼーションの例を共有できると考えました。

チェスの動き http://turbulence.org/spotlight/thinking/chess.html

クリス・ハリソンの視覚化 http://www.chrisharrison.net/projects/visualization.html

私は聖書とウィキペディアのビジュアライゼーションが特に好きです。


独自のビジュアライゼーションの作成に興味がある場合は、最初に processing.js ( http://ejohn.org/blog/processingjs/ )を確認することをお勧めします。

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

architecture - エンタープライズ アプリケーション間のデータ フローをどのように表示/レイアウトしますか?

私の雇用主はスイスの大手通信会社です。パフォーマンス管理、障害管理、構成管理など、さまざまなタスクのデータ転送に使用される多くのシステムがあります。

これらのシステムがどのように相互作用するかを「管理者」(とんがり髪など)に説明するために、データフロー/フォーマット/プロトコルに関する情報を「データベース」(カンマ区切りの説得力)に収集し、Graphviz のコードを生成しました(http: //www.graphviz.org/ ) と Yed ( http://www.yworks.com/en/products_yed_about.html ) を使用して、これらのグラフを視覚化します。

私のDBから生成されたこれらのグラフを表示することは、最初はかなり効果的でした..しかし、新しいシステム/データフローを追加すると、GraphvizとYedの両方がグラフを再レイアウトする原因となります.昨日見たあのグラフを今日のグラフに。

エンタープライズ アプリケーション間のデータ フローをどのように表示/レイアウトしますか?

0 投票する
9 に答える
11671 参照

algorithm - 地形図を描く

私は、2 次元の連続データの視覚化プロジェクトに取り組んでいます。これは、2D マップで標高データや温度パターンを調べるために使用できるようなものです。本質的には、3 次元を 2 次元と色にフラット化する方法です。私の特定の研究分野では、実際に地理的な標高データを扱っているわけではありませんが、これは良い比喩であるため、この投稿全体を通してこれを使用します。

とにかく、この時点で、私は非常に満足している「連続カラー」レンダラーを持っています。

連続カラー レンダラー

グラデーションは標準のカラー ホイールであり、赤いピクセルは高い値を持つ座標を示し、紫色のピクセルは低い値を示します。

基礎となるデータ構造は、いくつかの非常に巧妙な (私がそう言うなら) 補間アルゴリズムを使用して、マップの詳細への任意の深いズームを可能にします。

この時点で、(二次ベジエ曲線を使用して) いくつかの地形等高線を描画したいと考えていますが、これらの曲線を見つけるための効率的なアルゴリズムを説明している適切な文献を見つけることができませんでした。

私が考えていることのアイデアを提供するために、これは貧しい人の実装です (レンダラーは、輪郭線と交差するピクセルに遭遇するたびに黒の RGB 値を使用するだけです):

ゲットー トポ ラインによる連続カラー

ただし、このアプローチにはいくつかの問題があります。

  • 勾配が急なグラフの領域では、トポ ラインが細くなります (しばしば壊れます)。理想的には、すべてのトポ ラインが連続している必要があります。

  • 勾配がより平坦なグラフの領域では、トポ ラインが広くなります (特にレンダリング領域の外周では、領域全体が黒くなることがよくあります)。

だから私は、それらの素晴らしい、完璧な 1 ピクセルの太さの曲線を得るためのベクトル描画アプローチを検討しています。アルゴリズムの基本構造には、次の手順を含める必要があります。

  1. トポ ラインを描画する個別の標高ごとに、その座標の標高が目的の標高に非常に近い (任意のイプシロン値を指定) 座標のセットを見つけます。

  2. 余分なポイントを削除します。たとえば、3 つの点が完全に直線上にある場合、曲線の形状を変更せずに中心点を削除できるため、中心点は冗長です。同様に、ベジェ曲線では、隣接するコントロール ポイントの位置を調整することで、特定のアンカー ポイントを削除できることがよくあります。

  3. 2 つのポイント間の各セグメントが高度に中立な軌道に近似し、2 つのライン セグメントがパスを交差しないように、残りのポイントをシーケンスに組み立てます。各ポイント シーケンスは、閉じた多角形を作成するか、レンダリング領域の境界ボックスと交差する必要があります。

  4. 各頂点について、ステップ 2 で削除された冗長点に関して、結果の曲線が最小の誤差を示すような制御点のペアを見つけます。

  5. 現在のレンダリング スケールで表示される地形のすべてのフィーチャが適切な地形線で表されていることを確認します。たとえば、データに標高の高いスパイクが含まれているが、直径が非常に小さい場合でも、トポ ラインを描画する必要があります。垂直方向の特徴は、それらの特徴の直径が画像の全体的なレンダリングの粒度よりも小さい場合にのみ無視する必要があります。

しかし、これらの制約の下でも、行を見つけるためのいくつかの異なるヒューリスティックを考えることができます。

  • レンダリング境界ボックス内の高点を見つけます。その高い地点から、いくつかの異なる軌道に沿って下り坂を進みます。トラバーサル ラインが標高のしきい値を超えるたびに、そのポイントを標高固有のバケットに追加します。トラバーサル パスが極小値に達したら、コースを変更して上り坂に移動します。

  • レンダリング領域の長方形のバウンディング ボックスに沿って高解像度のトラバーサルを実行します。各標高のしきい値 (および勾配が方向を反転する変曲点) で、それらのポイントを標高固有のバケットに追加します。境界トラバーサルが終了したら、それらのバケットの境界点から内側にトレースを開始します。

  • レンダリング領域全体をスキャンし、一定間隔で標高を測定します。測定ごとに、標高しきい値への近さをメカニズムとして使用して、その近傍の補間測定を行うかどうかを決定します。この手法を使用すると、レンダリング領域全体のカバレッジがより確実に保証されますが、結果のポイントをパスを構築するための適切な順序に組み立てるのは困難です。

だから、それらは私の考えの一部です...

実装を深く掘り下げる前に、StackOverflow の他の誰かがこの種の問題の経験があり、正確で効率的な実装への指針を提供できるかどうかを確認したかった.

編集:

ellisbben による "Gradient" の提案に特に興味があります。そして、私の核となるデータ構造 (最適化補間ショートカットの一部を無視して) は、完全に微分可能な一連の 2D ガウス関数の合計として表すことができます。

3 次元の勾配を表すデータ構造と、任意の点でその勾配ベクトルを計算する関数が必要になると思います。頭のてっぺんから、それを行う方法がわかりません(簡単なように思えますが)が、数学を説明するリンクがあれば、私は大いに感謝します!

アップデート:

ellisbben と Azim による優れた貢献のおかげで、フィールド内の任意の点の等高線角度を計算できるようになりました。実際のトポ ラインの描画はすぐに続きます。

これは、私が使用してきたゲットー ラスター ベースの topo-renderer を使用した場合と使用しない場合の、更新されたレンダリングです。各画像には、赤い点で表される 1000 のランダムなサンプル ポイントが含まれています。その点の等高線は白い線で表されます。場合によっては、(補間の粒度に基づいて)特定のポイントで勾配を測定できなかったため、対応する等高線なしで赤い点が発生します。

楽しみ!

(注: これらのレンダリングでは、以前のレンダリングとは異なる表面トポグラフィを使用しています。これは、プロトタイプを作成している間に、反復ごとにデータ構造をランダムに生成するためです。ただし、コアのレンダリング方法は同じであるため、アイデア。)

代替テキスト

代替テキスト

ここに興味深い事実があります。これらのレンダリングの右側に、完全な水平および垂直角度で奇妙な等高線がたくさん表示されます。これらは、補間プロセスのアーティファクトです。補間プロセスでは、補間子のグリッドを使用して、コアのレンダリング操作を実行するために必要な計算の数を (約 500%) 削減します。これらの奇妙な等高線はすべて、2 つの補間グリッド セル間の境界に発生します。

幸いなことに、これらのアーティファクトは実際には重要ではありません。アーティファクトは勾配の計算中に検出できますが、異なるビット深度で動作するため、最終的なレンダラーはそれらに気づきません。


再度更新:

そして、寝る前の最後の楽しみとして、もう 1 組のレンダリングを示します。1 つは昔ながらの「連続カラー」スタイルで、もう 1 つは 20,000 のグラデーション サンプルを使用しています。この一連のレンダリングでは、ポイント サンプルの赤い点を削除しました。これは、イメージが不必要に乱雑になるためです。

ここでは、補間コレクションのグリッド構造のおかげで、前に言及した補間アーティファクトを実際に見ることができます。これらのアーティファクトは、最終的なコンター レンダリングでは完全に見えなくなることを強調しておく必要があります (隣接する 2 つのインターポレーター セル間の大きさの差は、レンダリングされたイメージのビット深度よりも小さいため)。

ボナペティ!!

代替テキスト

代替テキスト