mcpField
P
pygraphistry-visualization

pygraphistry-visualization

github.com/graphistryデータ・データベース341 回インストール3 日前に更新
リポジトリ

pygraphistry-visualization について

pygraphistry-visualization は、PyGraphistry ユーザー向けのグラフ可視化スキルです。視覚エンコーディング、レイアウト、描画設定、部分グラフ、共有時のプライバシー設定を扱います。

主な機能

  1. 01ノードとエッジの色・サイズ・アイコン設定
  2. 02レイアウトと描画パラメーターの調整
  3. 03ラベル、ホバー強調、UI パネルの設定
  4. 04GFQL による焦点を絞った部分グラフの作成
  5. 05グラフ共有のプライバシーレベル設定

活用シーン

  1. 01カテゴリや値に応じたグラフ属性の表示
  2. 02外部座標を使ったレイアウトの固定
  3. 03大規模グラフ内の部分グラフの調査
  4. 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

レイアウト
パラメーター型デフォルト範囲説明
playint50000-10000 (0, 1000, 2000, 5000)レイアウトの時間(ミリ秒)。0=固定
lockedXboolfalseX 軸をロックします(bind(point_x=...) を使用)
lockedYboolfalseY 軸をロックします(bind(point_y=...) を使用)
lockedRboolfalse半径方向の位置をロックします
linLogboolfalse強い分離を行います。ノード数が 1000 未満の場合に適しています
scalingRatiofloat1.00.1-10 (0.5, 1, 2, 5)拡張比率です。linLog と組み合わせます
strongGravityboolfalse中心へ引き寄せて、コンパクトなレイアウトにします
dissuadeHubsboolfalseレイアウトにおけるハブの優位性を抑えます
gravityfloat1.00.1-10 (0.1, 1, 2, 10)中心へ引き寄せる力です
edgeInfluencefloat1.00-10 (0, 0.7, 1, 2, 5, 7)エッジの重みがレイアウトに与える影響です
precisionVsSpeedfloat1.00.1-10 (0.1, 1, 10)値を大きくすると精度が上がりますが、処理は遅くなります
left/right/top/bottomintauto読み込み時のカメラ境界を手動で設定します
シーン / レンダリング
パラメーター型デフォルト範囲説明
pointSizefloat1.00.1-10 (0.3, 0.5, 1, 2, 3)ポイントサイズの倍率(エンコーディングではありません)
pointOpacityfloat1.00-1 (0.3, 0.5, 0.8, 1)ノードの不透明度
pointStrokeWidthfloat00-5 (0, 1, 2)ノードの境界線の幅
edgeCurvaturefloat00-1 (0, 0.5, 1)エッジの湾曲の度合い
edgeOpacityfloat1.00-1 (0.3, 0.5, 0.8, 1)エッジの不透明度
showArrowsbooltrueエッジの方向を示す矢印を表示します
neighborhoodHighlightstrbothincoming/outgoing/both/nodeホバー時のハイライトモード
neighborhoodHighlightHopsint11-5 (1, 2, 3)ホバー時にハイライトする近傍のホップ数
ラベル / 注目ポイント
パラメーター型デフォルト範囲説明
showLabelsbooltrueすべてのラベルの表示を切り替えます
showLabelOnHoverbooltrueホバー時のみラベルを表示します
showPointsOfInterestbooltrue主要なノードを POI としてハイライトします
showPointsOfInterestLabelbooltruePOI ノードのラベルを表示します
pointsOfInterestMaxint50-100 (0, 5, 10, 20)POI の最大数です。0=無効
shortenLabelsbooltrue長いラベルを切り詰めます
showLabelPropertiesOnHoverboolfalseホバー時に追加のプロパティを表示します
labelOpacityfloat1.00-1 (0.5, 0.8, 1)ラベルの不透明度
labelColorstrhex no # (000000, FFFFFF)ラベルテキストの色
labelBackgroundstrhex no # (000000, FFFFFF)ラベルの背景色

注:URL パラメーターでは # を付けずに 16 進数を指定します。Python API(encode_*、palette)では # を先頭に付けます。

UI コントロール
パラメーター型デフォルト説明
menubooltrueすべてのメニューを表示します
infobooltrueグラフサイズの統計情報を表示します
showHistogramsbooltrueヒストグラムパネルを表示します
showInspectorbooltrueエンティティインスペクターを表示します
showCollectionsboolfalseコレクションパネルを表示します
例
# 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 のようなドット付きの列名は避け、単純な名前を優先してください。
  • 時刻のエンコーディングと時間範囲で区切った比較には、ネイティブの日時型を使用してください。

主要ドキュメント

コメント