Pygraphistry
PyGraphistry is a Python library to quickly load, shape, embed, and explore big graphs with the GPU-accelerated Graphistry visual graph analyzer
[](https://join.slack.com/t/graphistry-community/shared_invite/zt-53ik36w2-fpP0Ibjbk7IJuVFIRSnr6g) The project is written primarily in Python, distributed under the BSD 3-Clause "New" or "Revised" License license, first published in 2015. It has gained significant community traction with 2,489 stars and 228 forks on GitHub. Key topics include: csv, cudf, cugraph, gpu, graph.
PyGraphistry: Leverage the power of graphs & GPUs to visualize, analyze, and scale your data
<img src="https://img.shields.io/badge/slack-Graphistry%20chat-orange.svg?logo=slack">
PyGraphistry is an open source Python library for data scientists and developers to leverage the power of graph visualization, analytics, AI, including with native GPU acceleration:
-
Python dataframe-native graph processing: Quickly ingest & prepare data in many formats, shapes, and scales as graphs. Use tools like Pandas, Spark, RAPIDS (GPU), and Apache Arrow.
-
Integrations: Connect to graph databases, data platforms, Python tools, and more.
Category Connector Tutorials Data Platforms, SQL & Logs Graph Databases Python Tools & Libraries -
Prototype locally and deploy remotely: Prototype from notebooks like Jupyter and Databricks using local CPUs & GPUs, and then power production dashboards & pipelines with Graphistry Hub and your own self-hosted servers.
-
Query graphs with GFQL: Use GFQL, the first fully vectorized dataframe-native graph query language with an open-source GPU runtime, to ask relationship questions that are difficult for tabular tools without requiring a database. It supports friendly Cypher syntax and declarative graph semantics through
g.gfql("MATCH ..."), with the same execution model available on the current bound graph or remotely viag.gfql_remote([...]). -
graphistry[ai]: Call streamlined graph ML & AI methods to benefit from clustering, UMAP embeddings, graph neural networks, automatic feature engineering, and more.
-
Visualize & explore large graphs: In just a few minutes, create stunning interactive visualizations with millions of edges and many point-and-click built-ins like drilldowns, timebars, and filtering. When ready, customize with Python, JavaScript, and REST APIs.
-
Columnar & GPU acceleration: CPU-mode ingestion and wrangling is fast due to native use of Apache Arrow and columnar analytics, and the optional RAPIDS-based GPU mode delivers 100X+ speedups.
From global 10 banks, manufacturers, news agencies, and government agencies, to startups, game companies, scientists, biotechs, and NGOs, many teams are tackling their graph workloads with Graphistry.
AI Assistant Integration
For LLM coding assistants (Claude Code, Cursor, Codex, etc.), install the official graphistry-skills package for better PyGraphistry code generation:
bashnpx skills add graphistry/graphistry-skills
Skills improve AI success rates from ~50% to ~90% on PyGraphistry tasks by providing context-aware guidance for graph ETL, visualization, GFQL queries, and AI workflows.
Gallery
The notebook demo gallery shares many more live visualizations, demos, and integration examples
<table> <tr valign="top"> <td width="33%" align="center"><a href="https://hub.graphistry.com/graph/graph.html?dataset=Twitter&splashAfter=true" target="_blank">Twitter Botnet<br><img width="266" src="https://i.imgur.com/qm5MCqS.jpg"></a></td> <td width="33%" align="center">Edit Wars on Wikipedia<br><a href="https://i.imgur.com/074zFve.png" target="_blank"><img width="266" src="https://i.imgur.com/074zFve.png"></a><em>(<a href="https://snap.stanford.edu" target="_blank">data</a></em>)</td> <td width="33%" align="center"><a href="https://hub.graphistry.com/graph/graph.html?dataset=bitC&splashAfter=true" target="_blank">100,000 Bitcoin Transactions<br><img width="266" height="266" src="https://i.imgur.com/axIkjfd.png"></a></td> </tr> <tr valign="top"> <td width="33%" align="center">Port Scan Attack<br><a href="http://i.imgur.com/vKUDySw.png" target="_blank"><img width="266" src="http://i.imgur.com/vKUDySw.png"></a></td> <td width="33%" align="center"><a href="http://hub.graphistry.com/graph/graph.html?dataset=PyGraphistry/M9RL4PQFSF&usertag=github&info=true&static=true&contentKey=Biogrid_Github_Demo&play=3000¢er=false&menu=true&goLive=false&left=-2.58e+4&right=4.35e+4&top=-1.72e+4&bottom=2.16e+4&legend={%22title%22:%22%3Ch3%3EBioGRID%20Repository%20of%20Protein%20Interactions%3C/h3%3E%22,%22subtitle%22:%22%3Cp%3EEach%20color%20represents%20an%20organism.%20Humans%20are%20in%20light%20blue.%3C/p%3E%22,%22nodes%22:%22Proteins/Genes%22,%22edges%22:%22Interactions%20reported%20in%20scientific%20publications%22}" target="_blank">Protein Interactions <br><img width="266" src="http://i.imgur.com/nrUHLFz.png" target="_blank"></a><em>(<a href="http://thebiogrid.org" target="_blank">data</a>)</em></td> <td width="33%" align="center"><a href="http://hub.graphistry.com/graph/graph.html?&dataset=PyGraphistry/PC7D53HHS5&info=true&static=true&contentKey=SocioPlt_Github_Demo&play=3000¢er=false&menu=true&goLive=false&left=-236&right=265&top=-145&bottom=134&usertag=github&legend=%7B%22nodes%22%3A%20%22%3Cspan%20style%3D%5C%22color%3A%23a6cee3%3B%5C%22%3ELanguages%3C/span%3E%20/%20%3Cspan%20style%3D%5C%22color%3Argb%28106%2C%2061%2C%20154%29%3B%5C%22%3EStatements%3C/span%3E%22%2C%20%22edges%22%3A%20%22Strong%20Correlations%22%2C%20%22subtitle%22%3A%20%22%3Cp%3EFor%20more%20information%2C%20check%20out%20the%20%3Ca%20target%3D%5C%22_blank%5C%22%20href%3D%5C%22https%3A//lmeyerov.github.io/projects/socioplt/viz/index.html%5C%22%3ESocio-PLT%3C/a%3E%20project.%20Make%20your%20own%20visualizations%20with%20%3Ca%20target%3D%5C%22_blank%5C%22%20href%3D%5C%22https%3A//github.com/graphistry/pygraphistry%5C%22%3EPyGraphistry%3C/a%3E.%3C/p%3E%22%2C%20%22title%22%3A%20%22%3Ch3%3ECorrelation%20Between%20Statements%20about%20Programming%20Languages%3C/h3%3E%22%7D" target="_blank">Programming Languages<br><img width="266" src="http://i.imgur.com/0T0EKmD.png"></a><em>(<a href="http://lmeyerov.github.io/projects/socioplt/viz/index.html" target="_blank">data</a>)</em></td> </tr> </table>Install
Common configurations:
-
Minimal core
Includes: The GFQL dataframe-native graph query language, built-in layouts, Graphistry visualization server client
pythonpip install graphistryDoes not include
graphistry[ai], plugins -
No dependencies and user-level
pythonpip install --no-deps --user graphistry -
GPU acceleration - Optional
Local GPU: Install RAPIDS and/or deploy a GPU-ready Graphistry server
Remote GPU: Use the remote endpoints.
For further options, see the installation guides
Visualization quickstart
Quickly go from raw data to a styled and interactive Graphistry graph visualization:
pythonimport graphistry import pandas as pd # Raw data as Pandas CPU dataframes, cuDF GPU dataframes, Spark, ... df = pd.DataFrame({ 'src': ['Alice', 'Bob', 'Carol'], 'dst': ['Bob', 'Carol', 'Alice'], 'friendship': [0.3, 0.95, 0.8] }) # Bind g1 = graphistry.edges(df, 'src', 'dst') # Override styling defaults g1_styled = g1.encode_edge_color('friendship', ['blue', 'red'], as_continuous=True) # Connect: Free GPU accounts and self-hosting @ graphistry.com/get-started graphistry.register(api=3, username='your_username', password='your_password') # Upload for GPU server visualization session g1_styled.plot()
Explore 10 Minutes to Graphistry Visualization for more visualization examples and options
PyGraphistry[AI] & GFQL quickstart - CPU & GPU
CPU graph pipeline combining graph ML, AI, mining, and visualization:
pythonfrom graphistry import n, e, e_forward, e_reverse # Graph analytics g2 = g1.compute_igraph('pagerank') assert 'pagerank' in g2._nodes.columns # Graph ML/AI g3 = g2.umap() assert ('x' in g3._nodes.columns) and ('y' in g3._nodes.columns) # Graph querying with GFQL g4 = g3.gfql([ n(query='pagerank > 0.1'), e_forward(), n(query='pagerank > 0.1') ]) assert (g4._nodes.pagerank > 0.1).all() # Upload for GPU server visualization session g4.plot()
The automatic GPU modes require almost no code changes:
pythonimport cudf from graphistry import n, e, e_forward, e_reverse # Modified -- Rebind data as a GPU dataframe and swap in a GPU plugin call g1_gpu = g1.edges(cudf.from_pandas(df)) g2 = g1_gpu.compute_cugraph('pagerank') # Unmodified -- Automatic GPU mode for all ML, AI, GFQL queries, & visualization APIs g3 = g2.umap() g4 = g3.gfql([ n(query='pagerank > 0.1'), e_forward(), n(query='pagerank > 0.1') ]) g4.plot()
Explore 10 Minutes to PyGraphistry for a wider variety of graph processing.
PyGraphistry documentation
- Main PyGraphistry documentation
- 10 Minutes to: PyGraphistry, Visualization, GFQL
- Get started: Install, UI Guide, Notebooks
- Performance: PyGraphistry CPU+GPU & GFQL CPU+GPU
- API References
- PyGraphistry API Reference: Visualization & Compute, PyGraphistry Cheatsheet
- GFQL Documentation: GFQL Cheatsheet and GFQL Operator Cheatsheet
- Plugins: Databricks, Splunk, Neptune, Neo4j, RAPIDS, and more
- Web: iframe, JavaScript, REST
Graphistry ecosystem
-
Graphistry server:
- Launch - Graphistry Hub, Graphistry cloud marketplaces, and self-hosting
- Self-hosting: Administration (including Docker) & Kubernetes
-
Graphistry client APIs:
-
Additional projects:
- Louie.ai: GenAI-native notebooks & dashboards to talk to your databases & Graphistry
- graph-app-kit: Streamlit Python dashboards with batteries-include graph packages
- cu-cat: Automatic GPU feature engineering
Community and support
- Blog for tutorials, case studies, and updates
- Slack: Join the Graphistry Community Slack for discussions and support
- Twitter & LinkedIn: Follow for updates
- GitHub Issues open source support
- Graphistry ZenDesk dedicated enterprise support
Contribute
See CONTRIBUTING and DEVELOP for participating in PyGraphistry development, or reach out to our team
Contributors
Showing top 12 contributors by commit count.