1. gojsの紹介gojs は、インタラクティブなビジュアル ダイアグラムを作成するための js ライブラリです。カスタマイズ可能なテンプレートとレイアウトを使用して複雑なノード、リンク、グループを作成し、フローチャート、マインド マップ、組織図、ガント チャートなどの単純なものから複雑なものまでさまざまなダイアグラムを作成します。また、ドラッグ アンド ドロップ、コピー アンド ペースト、インプレース テキスト編集など、ユーザー操作のための高度な機能も多数提供します。 gojs は Northwoods Software の製品です。 Northwoods Software は 1995 年に設立され、インタラクティブ グラフィック コントロールとライブラリを専門としています。同社のビジョンは優れたグラフィカル ユーザー インターフェイスを提供することであり、現在ではさまざまなプラットフォームにわたるインタラクティブなダイアグラム コンポーネントとライブラリの世界クラスのサプライヤーに成長しました。 2. Gojsのアプリケーションシナリオgojs の高い構築可能性に基づいて、多くの種類の視覚化を描くことができます。
3. gojs を選ぶ理由:echarts、highcharts、antv series、d3、今日の主人公 gojs など、視覚化ライブラリは数多くあります。 図面のカスタマイズ度合いで並べ替え:
要件が単純で、カスタム チャート要素が必要ない場合は、デモ効果に最適なライブラリ (echarts または highcharts) を選択できます。 グラフ要素をある程度カスタマイズする必要がある場合は、antv g2/g6 デモがニーズを満たせるかどうかを確認できます。ほとんどのグラフ要素をカスタマイズできます。 上記でニーズを満たせない場合は、高度にカスタマイズできます。d3js と gojs を検討するか、最初にデモを見て、どちらがニーズに近いかを確認してから採用してください。 概要: gojs は高度にカスタマイズ可能で、複雑なグラフ操作に非常に適しています。 4. Gojs 入門ガイド
目的は、gojs で何ができるかを大まかに理解し、どのケース効果がニーズに近いかを見つけて確認することです。ケース コードを参照してニーズを満たし、半分の労力で 2 倍の結果を達成できます。また、始めるための非常に優れた参考資料でもあります。 1 つまたは 2 つのケース コードを読んだ後、gojs 描画の基本的な理解も得られます。
ケースコードを読んだ後、gojs 描画の基本を理解しました。描く前に描画の概念と構造を理解しておくとより役立ちます。それは、書く前にアウトラインを知っておくようなもので、書くアイデアがより明確になり、効率的になります。
// ダイアグラム コンテナー <div id="myDiagramDiv" style="height:600px;width:100%;border:1px solid black"></div> // 参照 <script src="https://unpkg.com/gojs/release/go-debug.js"></script> <スクリプト> // グラフインスタンスを作成する var $ = go.GraphObject.make; var diagram = new go.Diagram("myDiagramDiv"); // データをバインドする diagram.model = new go.GraphLinksModel( [ // ノード { キー: "Alpha", 色: "lightblue" }, { キー: "ベータ"、色: "オレンジ" }, { キー: "ガンマ"、色: "ライトグリーン" }, { キー: "デルタ"、色: "ピンク" } ]、 [ // 接続 { from: "Alpha", to: "Beta" }, { から: "アルファ"、から: "ガンマ" }, { から: "ベータ"、 から: "ベータ" }, { から: "ガンマ"、から: "デルタ" }, { から: 「デルタ」、から: 「アルファ」 } ] ); </スクリプト> レイアウト、スタイル、ノード、グループ、接続、イベントなどを制御する場合は、対応するテンプレートをカスタマイズできます。以下はノードを例にしています。 // ノードテンプレートは各ノードの構築方法を記述します。diagram.nodeTemplate = $(go.Node, "Auto", $(go.Shape、"RoundedRectangle"、新しいgo.Binding("fill"、"color"))、 $(go.TextBlock、新しいgo.Binding("テキスト", "キー")) ); 詳細: ガイド、API 5. ヒント(非常に実用的)
ライブラリのソースコードで 7eba17a4ca3b1a8346 を検索し、その場所を見つけます。 a.yr=bV[Ra("7eba17a4ca3b1a8346")][Ra("78a118b7")](bV,Kk,4,4); コードをコメント化または削除し、次のように変更します。 a.yr=関数(){trueを返します。};
透かしを削除する必要があるため、ライブラリのソースコードをダウンロードする必要があり、現在、フロントエンド プロジェクトは基本的に es6 モジュール構成ファイルに基づいています。 したがって、必要なファイルにインポートできるように、go-module.js をダウンロードする必要があります。 './go-module.js' から go として * をインポートします。 さらに、go-module.js はパッケージ化されているため、このファイルをパッケージ化から除外するようにパッケージを構成して、パッケージ化時間を短縮できます。 webpack を例にとると、変更は次のようになります。 { テスト: /\.js$/, ローダー: 'babel-loader', インクルード: [resolve('src'), resolve('test')], + exclude: [resolve('src/assets/lib/')] //パッケージ化されたライブラリはこのディレクトリに配置されます}
.diagram キャンバス { 境界線: なし; アウトライン: なし; } diagram はダイアグラム コンテナーのクラス名です。 6. 演習: ノードのグループ化関係の視覚的なインタラクティブグラフの実装
インターフェースデータ 定数データ = { 「プロパティ」: [ { "key": "t-2272", "parentKey": "j-1051", "name": "哈哈" }, { "キー": "p-344", "親キー": "g--1586357764", "名前": "テスト" }, { "key": "t-2271", "parentKey": "j-1051", "name": "クエリ" }, { "key": "t-2275", "parentKey": "j-1052", "name": "ハッピー" }, { "key": "j-1054", "parentKey": "p-344", "name": "嘻嘻" }, { "key": "t-2274", "parentKey": "j-1052", "name": "クエリ" }, { "キー": "j-1051", "親キー": "p-444", "名前": "こんにちは" }, { "key": "j-1052", "parentKey": "p-444", "name": "編集" }, { "key": "t-2281", "parentKey": "j-1054", "name": "嘻嘻" }, { "キー": "p-444", "親キー": "g--1586357624", "名前": "テスト" }, { "key": "g--1586357624", "name": "データグループ1" }, { "key": "g--1586357764", "name": "データグループ2" }, { "key": "t-2273", "parentKey": "j-1051", "name": "新規" } ]、 「依存関係」: [ { "ソースキー": "t-2272", "ターゲットキー": "t-2274" }, { "ソースキー": "t-2274", "ターゲットキー": "t-2275" }, { "ソースキー": "t-2273", "ターゲットキー": "t-2272" }, { "ソースキー": "t-2271", "ターゲットキー": "t-2272" }, { "ソースキー": "t-2272", "ターゲットキー": "t-2281" } ] }
やっと次回は効果を実現するためのアイデアを共有します。ご興味があれば、データを使用し、この記事で共有されたデモと知識を参照して、自分で実装することができます。 私も初心者(gojs を使ったことがなかった)から始めましたが、ようやく効果が得られました。この記事に不足や誤りがあったり、良い提案があれば、ぜひ指摘してください。 どうもありがとうございます! ! ! これで、インタラクティブな視覚化 js ライブラリ gojs の使用法とテクニックに関するこの記事は終了です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援して頂ければ幸いです。 以下もご興味があるかもしれません:
|
<<: CSS を使用して三角形を実装する一般的な手法 (複数の方法)
私は CentOS に実装された LDAP ユーザー管理を使用しています。これはインターネット上のほ...
導入Ubuntu のデフォルトのソースは国内サーバーではないため、更新されたソフトウェアのダウンロー...
ウェブサイトリンク: http://strml.net/サミュエル・リード著ヒント: 昨日、Mome...
この記事では、二次リンクを実現するためのReactの具体的なコードを参考までに共有します。具体的な内...
今日はdockerを使ってイメージをpullしたのですが、速度が悪くて見れず最後まで待ち続けました。...
概要:ファイルシステム モジュールは、標準の POSIX ファイル I/O 操作セットをラップしたシ...
システムメンテナンス中は、いつでも CPU 使用率を確認し、対応する情報に基づいてシステムの状態を分...
イベント応答の更新: 要求されたときのみ更新1. JS HTML DOM または jQuery を介...
この記事の例では、ショッピングカート機能を実装するためのvuexの具体的なコードを参考までに共有して...
解決:リンクのターゲット属性値をターゲット フレームワーク名と同じに設定するだけです。具体的な手順:...
Servermanager 起動時の接続データベース エラーmgrstart.batを実行しますエラ...
Linux C/C++ では、スレッド レベルの操作は通常、pthread ライブラリを通じて実行さ...
まず、Windows 64 ビット用の最新の MySQL 5.7.17 コミュニティ圧縮バージョンを...
<base target=_blank> は、基本リンクのターゲット フレームを新しいペ...
MySQL 8 の新機能: MySQL をバージョン 5.x から 8.x に直接アップグレードする...