pygraphistry-visualization について
pygraphistry-visualization は、PyGraphistry ユーザー向けのグラフ可視化スキルです。視覚エンコーディング、レイアウト、描画設定、部分グラフ、共有時のプライバシー設定を扱います。
主な機能
- 01ノードとエッジの色・サイズ・アイコン設定
- 02レイアウトと描画パラメーターの調整
- 03ラベル、ホバー強調、UI パネルの設定
- 04GFQL による焦点を絞った部分グラフの作成
- 05グラフ共有のプライバシーレベル設定
活用シーン
- 01カテゴリや値に応じたグラフ属性の表示
- 02外部座標を使ったレイアウトの固定
- 03大規模グラフ内の部分グラフの調査
- 04共有グラフの閲覧範囲の制御
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ graphistry/ graphistry-skills --skill pygraphistry-visualizationインストール後、Claude Code で/pygraphistry-visualizationを入力して読み込まれたか確認します。
同梱ファイルreferences/fa-icons.md
詳細
PyGraphistry の可視化
ドキュメントのルーティング(ローカル + 正規)
- まず
../pygraphistry/references/pygraphistry-readthedocs-toc.mdでルーティングします。 - セクション単位のショートカットには
../pygraphistry/references/pygraphistry-readthedocs-top-level.tsvを使用します。 - 必要なページが見つからない場合に限り、
../pygraphistry/references/pygraphistry-readthedocs-sitemap.xmlを確認します。 - 詳細ページを読み込む前に、まとめて一度に検索します。
cat *や細かな読み込みを順番に行う方法は避けてください。 references/fa-icons.mdにあるローカルのアイコン参照メモを使用します。- ユーザー向けの回答では、正規の
https://pygraphistry.readthedocs.io/en/latest/...リンクを優先します。
基本パターン
g2 = (
# Keep a plain 'type' column on both nodes and edges for legend-friendly defaults
g.bind(point_label='label', point_color='type', edge_color='type')
.encode_point_color('type', categorical_mapping={'agent': '#3b82f6'}, default_mapping='#94a3b8')
# Optional: default node sizing is often degree for exploratory passes
.encode_point_size('degree')
.settings(url_params={'play': 3000, 'info': True})
)
g2.plot()
外部レイアウトパターン
# nodes_df contains x/y layout columns
g2 = graphistry.edges(edges_df, 'src', 'dst').nodes(nodes_df, 'id').bind(point_x='x', point_y='y').settings(url_params={'play': 0})
g2.plot()
URL パラメーターのリファレンス
settings(url_params={...}) を使用して、可視化の動作を制御します。完全なリファレンス:https://hub.graphistry.com/docs/api/1/rest/url/#urloptions
レイアウト
| パラメーター | 型 | デフォルト | 範囲 | 説明 |
|---|---|---|---|---|
play | int | 5000 | 0-10000 (0, 1000, 2000, 5000) | レイアウトの時間(ミリ秒)。0=固定 |
lockedX | bool | false | X 軸をロックします(bind(point_x=...) を使用) | |
lockedY | bool | false | Y 軸をロックします(bind(point_y=...) を使用) | |
lockedR | bool | false | 半径方向の位置をロックします | |
linLog | bool | false | 強い分離を行います。ノード数が 1000 未満の場合に適しています | |
scalingRatio | float | 1.0 | 0.1-10 (0.5, 1, 2, 5) | 拡張比率です。linLog と組み合わせます |
strongGravity | bool | false | 中心へ引き寄せて、コンパクトなレイアウトにします | |
dissuadeHubs | bool | false | レイアウトにおけるハブの優位性を抑えます | |
gravity | float | 1.0 | 0.1-10 (0.1, 1, 2, 10) | 中心へ引き寄せる力です |
edgeInfluence | float | 1.0 | 0-10 (0, 0.7, 1, 2, 5, 7) | エッジの重みがレイアウトに与える影響です |
precisionVsSpeed | float | 1.0 | 0.1-10 (0.1, 1, 10) | 値を大きくすると精度が上がりますが、処理は遅くなります |
left/right/top/bottom | int | auto | 読み込み時のカメラ境界を手動で設定します |
シーン / レンダリング
| パラメーター | 型 | デフォルト | 範囲 | 説明 |
|---|---|---|---|---|
pointSize | float | 1.0 | 0.1-10 (0.3, 0.5, 1, 2, 3) | ポイントサイズの倍率(エンコーディングではありません) |
pointOpacity | float | 1.0 | 0-1 (0.3, 0.5, 0.8, 1) | ノードの不透明度 |
pointStrokeWidth | float | 0 | 0-5 (0, 1, 2) | ノードの境界線の幅 |
edgeCurvature | float | 0 | 0-1 (0, 0.5, 1) | エッジの湾曲の度合い |
edgeOpacity | float | 1.0 | 0-1 (0.3, 0.5, 0.8, 1) | エッジの不透明度 |
showArrows | bool | true | エッジの方向を示す矢印を表示します | |
neighborhoodHighlight | str | both | incoming/outgoing/both/node | ホバー時のハイライトモード |
neighborhoodHighlightHops | int | 1 | 1-5 (1, 2, 3) | ホバー時にハイライトする近傍のホップ数 |
ラベル / 注目ポイント
| パラメーター | 型 | デフォルト | 範囲 | 説明 |
|---|---|---|---|---|
showLabels | bool | true | すべてのラベルの表示を切り替えます | |
showLabelOnHover | bool | true | ホバー時のみラベルを表示します | |
showPointsOfInterest | bool | true | 主要なノードを POI としてハイライトします | |
showPointsOfInterestLabel | bool | true | POI ノードのラベルを表示します | |
pointsOfInterestMax | int | 5 | 0-100 (0, 5, 10, 20) | POI の最大数です。0=無効 |
shortenLabels | bool | true | 長いラベルを切り詰めます | |
showLabelPropertiesOnHover | bool | false | ホバー時に追加のプロパティを表示します | |
labelOpacity | float | 1.0 | 0-1 (0.5, 0.8, 1) | ラベルの不透明度 |
labelColor | str | hex no # (000000, FFFFFF) | ラベルテキストの色 | |
labelBackground | str | hex no # (000000, FFFFFF) | ラベルの背景色 |
注:URL パラメーターでは # を付けずに 16 進数を指定します。Python API(encode_*、palette)では # を先頭に付けます。
UI コントロール
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
menu | bool | true | すべてのメニューを表示します |
info | bool | true | グラフサイズの統計情報を表示します |
showHistograms | bool | true | ヒストグラムパネルを表示します |
showInspector | bool | true | エンティティインスペクターを表示します |
showCollections | bool | false | コレクションパネルを表示します |
例
# Ring layout with strong separation for small graphs (<1000 nodes)
g2 = g.settings(url_params={'play': 3000, 'linLog': True, 'scalingRatio': 2.0})
# Fixed position layout (external coordinates)
g2 = g.bind(point_x='x', point_y='y').settings(url_params={'play': 0, 'lockedX': True, 'lockedY': True})
# Disable POI labels entirely
g2 = g.settings(url_params={'showLabels': False, 'pointsOfInterestMax': 0})
# Larger points, more transparent edges
g2 = g.settings(url_params={'pointSize': 3.0, 'edgeOpacity': 0.3})
# Minimal UI for embedding
g2 = g.settings(url_params={'menu': False, 'info': False, 'showHistograms': False, 'showInspector': False})
アイコン/バッジのパターン
g2 = (
g.encode_point_icon('type', categorical_mapping={'person': 'user', 'org': 'building'})
.encode_point_badge('risk', categorical_mapping={'high': 'exclamation-triangle'})
)
g2.plot()
有効な Font Awesome 名を使用し、アイコンの対応付けは type に基づくカテゴリ別にしてください。
参照リンクと例については、references/fa-icons.md をご覧ください。
連続色のパターン(カテゴリ別マップ以外)
g2 = g.encode_edge_color('amount', palette=['#46327e', '#1fa187', '#fde724'], as_continuous=True)
g2.plot()
フォーカスしたサブグラフの表示(コレクションのようなワークフロー)
# Use GFQL slices to publish multiple focused views from one base graph (use .gfql(), not deprecated .chain())
high_risk = g.gfql([...]).name('high-risk-slice')
partner_flow = g.gfql([...]).name('partner-flow-slice')
urls = [high_risk.plot(render=False), partner_flow.plot(render=False)]
プライバシーに配慮した共有パターン
graphistry.privacy(mode='private')
plot_url = g.plot(render=False)
- 共有リンクをプロットする前に、
graphistry.privacy(mode='private'|'organization'|'public')を明示的に使用してください。 as_filesやmemoizeなどのplot()のキーワード引数を、プライバシー制御として扱わないでください。
よくあるタスク
- エンコーディング:
encode_point_color、encode_edge_color、encode_point_size、encode_point_icon、encode_point_badge。 - レイアウト:ランタイムのフォースレイアウト設定、リング/GIB/モジュラリティ、graphviz/igraph/cugraph プラグインのレイアウト。
- 静的出力:SVG/PNG 用の
plot_static()と、graphviz-dot/mermaid-codeなどのテキストエンジン。 - 共有制御:
graphistry.privacy(mode='private'|'organization'|'public')。 - 高度なグラデーションには、
encode_point_color/encode_edge_colorでas_continuous=Trueを指定し、palette=[...]を使用してください。 - 大規模な調査では、1 つの過負荷なプロットではなく、複数のフォーカスした GFQL スライスを生成してください。
大規模グラフのデフォルト設定
- プロットの前にフィルタリングと集約を行ってください。
- 必要最小限の列だけを残してください(必要でない限り、大きなテキストデータは削除してください)。
- フォーカスしたサブグラフを使用してください(時間範囲、1 ホップ近傍、上位 k 件のシグナルなど)。
- ノードとエッジの両方で単純な
type列を優先し、凡例とデフォルトのカテゴリ別エンコーディングが安定するようにしてください。 node.type/edge.typeのようなドット付きの列名は避け、単純な名前を優先してください。- 時刻のエンコーディングと時間範囲で区切った比較には、ネイティブの日時型を使用してください。
主要ドキュメント
- ビジュアライゼーションのハブ:https://pygraphistry.readthedocs.io/en/latest/visualization/index.html
- 10 分で学ぶビジュアライゼーション:https://pygraphistry.readthedocs.io/en/latest/visualization/10min.html
- レイアウトガイド:https://pygraphistry.readthedocs.io/en/latest/visualization/layout/intro.html
- レイアウトカタログ:https://pygraphistry.readthedocs.io/en/latest/visualization/layout/catalog.html
- URL パラメーターのリファレンス:https://hub.graphistry.com/docs/api/1/rest/url/#urloptions
- プライバシー/共有:https://pygraphistry.readthedocs.io/en/latest/server/privacy.html
- ビジュアライゼーションのノートブック一覧:https://pygraphistry.readthedocs.io/en/latest/notebooks/visualization.html
- アイコン参照先:
references/fa-icons.md
コメント
Markdown 対応