{"id":21068404,"url":"https://github.com/yworks/yfiles-jupyter-graphs","last_synced_at":"2025-04-06T22:07:36.420Z","repository":{"id":39490476,"uuid":"446354729","full_name":"yWorks/yfiles-jupyter-graphs","owner":"yWorks","description":"The home of the Jupyter notebook graph visualization widget powered by yFiles for HTML","archived":false,"fork":false,"pushed_at":"2024-04-24T11:24:50.000Z","size":4656,"stargazers_count":106,"open_issues_count":11,"forks_count":11,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-04-24T15:46:14.125Z","etag":null,"topics":["diagrams","graphs","igraph","jupyter-notebook","jupyter-notebooks","jupyterlab","neo4j","networkx","nodes-2022","python","visualization","widget"],"latest_commit_sha":null,"homepage":"https://www.yworks.com/products/yfiles-graphs-for-jupyter","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yWorks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-10T09:18:12.000Z","updated_at":"2024-06-03T15:40:57.819Z","dependencies_parsed_at":"2023-01-30T18:30:56.506Z","dependency_job_id":"9c035a24-856c-447c-bcd3-f4a0b2396665","html_url":"https://github.com/yWorks/yfiles-jupyter-graphs","commit_stats":{"total_commits":23,"total_committers":4,"mean_commits":5.75,"dds":"0.30434782608695654","last_synced_commit":"63f7103da57a93ca85ada79d40c1a79dad4ef2e4"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yWorks%2Fyfiles-jupyter-graphs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yWorks%2Fyfiles-jupyter-graphs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yWorks%2Fyfiles-jupyter-graphs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yWorks%2Fyfiles-jupyter-graphs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yWorks","download_url":"https://codeload.github.com/yWorks/yfiles-jupyter-graphs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247557767,"owners_count":20958047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["diagrams","graphs","igraph","jupyter-notebook","jupyter-notebooks","jupyterlab","neo4j","networkx","nodes-2022","python","visualization","widget"],"created_at":"2024-11-19T18:20:44.799Z","updated_at":"2025-04-06T22:07:36.410Z","avatar_url":"https://github.com/yWorks.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/yWorks/yfiles-jupyter-graphs/main/screenshots/yfiles-jupyter-graphs-logo.svg\" alt='yFiles Graphs for Jupyter logo'  width=\"400px\" style='max-width: 400px'\u003e\n\u003c/p\u003e\n\n[![PyPI - Version](https://img.shields.io/pypi/v/yfiles-jupyter-graphs?label=pypi%20package\u0026color=%234c1)](https://pypi.org/project/yfiles-jupyter-graphs/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/yfiles-jupyter-graphs)](https://pypi.org/project/yfiles-jupyter-graphs/) [![Docs - Latest](https://img.shields.io/badge/docs-latest-green?color=%234c1)](https://yworks.github.io/yfiles-jupyter-graphs/)\n\nA graph diagram visualization widget for Jupyter Notebooks and Labs powered by [yFiles for HTML](https://www.yfiles.com/the-yfiles-sdk/web/yfiles-for-html?utm_campaign=yfiles4jupyter\u0026utm_source=github\u0026utm_medium=readme).\n\nEasily visualize graphs from various sources: [Networkx](https://networkx.org/)✅, [igraph](https://igraph.org/python/)✅, [neo4j](https://pypi.org/project/neo4j/)✅, [pygraphviz](https://pygraphviz.github.io/)✅, and any structured Python dictionaries and lists. Many more formats supported indirectly via [Networkx imports](https://networkx.org/documentation/stable/reference/readwrite/index.html#reading-and-writing-graphs)!\n\nThe widget is supported in the default Jupyter environments, but also in other environments like VS Code or Google Colab.\n\n[![yFiles Graphs for Jupyter](https://raw.githubusercontent.com/yWorks/yfiles-jupyter-graphs/main/screenshots/yfiles-jupyter-graphs.gif)](https://player.vimeo.com/video/715615671)\n\nTry the [Showcase](https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/feature-releases/showcase.ipynb) notebook on Google Colab [here](https://colab.research.google.com/github/yWorks/yfiles-jupyter-graphs/blob/main/examples/feature-releases/showcase.ipynb). Or see the simple [Introduction](https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/01_introduction.ipynb)\nnotebook.\n\n## `yfiles-jupyter-graphs-for-neo4j`\n\nFor working with Neo4j databases, we\nbuilt [yfiles-jupyter-graphs-for-neo4j](https://github.com/yWorks/yfiles-jupyter-graphs-for-neo4j/), an open-source\nextension on top of `yfiles-jupyter-graphs`. This extension provides an easier Python interface for the\ndriver and allows direct configuration of data mappings depending on the label or type of the node or relationship.\n\n## `yfiles-jupyter-graphs-for-sparql`\n\nFor working with RDF databases and SPARQL queries, we built \n[yfiles-jupyter-graphs-for-sparql](https://github.com/yWorks/yfiles-jupyter-graphs-for-sparql/), an open-source\nextension on top of `yfiles-jupyter-graphs`. This extension provides a specifically tailored API for easier and more\ndomain specific usage in RDF databases with SPARQL. \n\nSo if you are planning to use the extension with Neo4j databases, consider\nusing [yfiles-jupyter-graphs-for-neo4j](https://github.com/yWorks/yfiles-jupyter-graphs-for-neo4j/).\n\n## Supported Environments\n- [JupyterLab or Jupyter Notebook](https://jupyter.org/)\n- [Visual Studio Code](https://code.visualstudio.com/)\n- [Google Colaboratory](https://colab.research.google.com/)\n- [Google Vertex AI Workbench](https://cloud.google.com/vertex-ai)\n- [Google Dataproc](https://cloud.google.com/dataproc)\n- [Azure Machine Learning Studio Notebooks](https://azure.microsoft.com/en-us/products/machine-learning/)\n- [Amazon SageMaker](https://aws.amazon.com/sagemaker/)\n- [Kaggle](https://www.kaggle.com)\n- Just try it in your preferred platform for Jupyter notebooks\n\n## Requirements\n- [python](https://www.python.org/) \u003e= 3.6\n- [jupyter](https://jupyter.org/install) notebook or lab\n- [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) \u003e= 7.6.0\n\n## Installation\n\nIf you already have Jupyter installed, just `pip install` the prebuilt extension from the [Python Package Index](https://pypi.org/).\n\n```bash\npip install yfiles_jupyter_graphs\n```\n\u003e [!IMPORTANT]  \n\u003e To install `yfiles_jupyter_graphs` from within a Jupyter Notebook cell, use `%pip` instead of `!pip` to ensure that it\n\u003e is installed in the correct Python environment.\n\nIf you want to start clean and get a fresh new Jupyter Lab with the widget readily installed and available, you can use [`docker`](https://www.docker.com/), too:\n\nFrom a shell, create a docker image that contains all that is required:\n\n```bash\nmkdir yfiles-jupyter \u0026\u0026 cd yfiles-jupyter\necho -e \"FROM jupyter/scipy-notebook\\nRUN pip install yfiles-jupyter-graphs\" \u003e Dockerfile\ndocker build -t yfiles-jupyter-graphs-on-docker .\n```\n\n(the above has been tested successfully with `scipy-notebook:lab-3.4.7` and `yfiles-jupyter-graphs==1.2.1`), but we want to make sure that it will also work with upcoming versions - file an issue if it doesn't work for you!)\n\nYou can then create a fresh new instance of your server from this image like so:\n\n```bash\ndocker run -it -p 8888:8888 --name yfiles-jupyter yfiles-jupyter-graphs-on-docker\n```\n\n## Usage\n\nIn a notebook which has the widget installed in the server, in a Python cell, you can then do this:\n\n```python\n\"\"\"Execute in jupyter notebook or jupyter lab\"\"\"\nfrom yfiles_jupyter_graphs import GraphWidget\n# shows empty widget\nGraphWidget()\n```\n\nYou can find the full documentation [here](https://yworks.github.io/yfiles-jupyter-graphs/).\n\n## Features\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/28_little-alchemy_example.ipynb\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/yWorks/yfiles-jupyter-graphs/main/screenshots/neighborhood.png\" title=\"See Node Neighborhood\" alt=\"neighborhood sidebar\"\u003e\u003c/a\u003e\n        \u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/28_little-alchemy_example.ipynb\"\u003eSee Node Neighborhood\u003c/a\u003e\u003cbr\u003e\u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/yWorks/yfiles-jupyter-graphs/blob/main/examples/28_little-alchemy_example.ipynb\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/22_layouts.ipynb\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/yWorks/yfiles-jupyter-graphs/main/screenshots/layouts.png\" title=\"Choose Graph Layout\" alt=\"layouts\"\u003e\u003c/a\u003e\n        \u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/22_layouts.ipynb\"\u003eChoose Graph Layout\u003c/a\u003e\u003cbr\u003e\u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/yWorks/yfiles-jupyter-graphs/blob/main/examples/22_layouts.ipynb\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/23_sidebar.ipynb\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/yWorks/yfiles-jupyter-graphs/main/screenshots/data.png\" title=\"Investigate Nodes and Edges Data\" alt=\"data sidebar\"\u003e\u003c/a\u003e\n        \u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/23_sidebar.ipynb\"\u003eInvestigate Nodes or Edges Data\u003c/a\u003e\u003cbr\u003e\u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/yWorks/yfiles-jupyter-graphs/blob/main/examples/23_sidebar.ipynb\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/23_sidebar.ipynb\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/yWorks/yfiles-jupyter-graphs/main/screenshots/search.png\" title=\"Search for Nodes or Edges\" alt=\"search sidebar\"\u003e\u003c/a\u003e\n        \u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/23_sidebar.ipynb\"\u003eSearch for Nodes or Edges\u003c/a\u003e\u003cbr\u003e\u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/yWorks/yfiles-jupyter-graphs/blob/main/examples/23_sidebar.ipynb\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/13_networkx_import.ipynb\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/yWorks/yfiles-jupyter-graphs/main/screenshots/importer.png\" title=\"Import Graph Data\" alt=\"importer\"\u003e\u003c/a\u003e\n        \u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/13_networkx_import.ipynb\"\u003eImport Graph Data\u003c/a\u003e\u003cbr\u003e\u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/yWorks/yfiles-jupyter-graphs/blob/main/examples/13_networkx_import.ipynb\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/03_color_mapping.ipynb\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/yWorks/yfiles-jupyter-graphs/main/screenshots/element_color_mapping.png\" title=\"Make Data Dependent Property Changes\" alt=\"element color mapping\"\u003e\u003c/a\u003e\n        \u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/03_color_mapping.ipynb\"\u003eMake Data Dependent Property Changes\u003c/a\u003e\u003cbr\u003e\u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/yWorks/yfiles-jupyter-graphs/blob/main/examples/03_color_mapping.ipynb\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/29_heat_mapping.ipynb\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/yWorks/yfiles-jupyter-graphs/main/screenshots/heat_mapping.png\" title=\"Define a heatmap background\" alt=\"heat mapping\"\u003e\u003c/a\u003e\n        \u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/29_heat_mapping.ipynb\"\u003eDefine a Heatmap Background\u003c/a\u003e\u003cbr\u003e\u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/yWorks/yfiles-jupyter-graphs/blob/main/examples/29_heat_mapping.ipynb\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/30_leaflet_mapping.ipynb\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/yWorks/yfiles-jupyter-graphs/main/screenshots/leaflet_map.png\" title=\"Use a Map background\" alt=\"leaflet mapping\"\u003e\u003c/a\u003e\n        \u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/30_leaflet_mapping.ipynb\"\u003eUse a Map Background\u003c/a\u003e\u003cbr\u003e\u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/yWorks/yfiles-jupyter-graphs/blob/main/examples/30_leaflet_mapping.ipynb\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/31_nested_graphs.ipynb\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/yWorks/yfiles-jupyter-graphs/main/screenshots/nesting.png\" title=\"Visualize nested data\" alt=\"nested graph\"\u003e\u003c/a\u003e\n        \u003ca href=\"https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/31_nested_graphs.ipynb\"\u003eVisualize nested data\u003c/a\u003e\u003cbr\u003e\u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/yWorks/yfiles-jupyter-graphs/blob/main/examples/31_nested_graphs.ipynb\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\nFor example code look [here](https://github.com/yWorks/yfiles-jupyter-graphs/tree/master/examples).\n\n### Google Colab Examples\nYou can try the [example notebooks](https://github.com/yWorks/yfiles-jupyter-graphs/tree/master/examples) in Google Colab by\nopening GitHub notebook URL: `https://colab.research.google.com/github/yWorks/yfiles-jupyter-graphs/blob/main/examples/\u003cnotebook.ipynb\u003e`.\n\nFor example the [Introduction](https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/examples/01_introduction.ipynb) notebook: \u003cbr\u003e\nhttps://colab.research.google.com/github/yWorks/yfiles-jupyter-graphs/blob/main/examples/01_introduction.ipynb\n\n## Documentation\nYou can find the documentation [here](https://yworks.github.io/yfiles-jupyter-graphs/).\n\n## Code of Conduct\nThis project and everyone participating in it is governed by the [Code of Conduct](https://github.com/yWorks/yfiles-jupyter-graphs/blob/master/CODE_OF_CONDUCT.md).\nBy participating, you are expected to uphold this code.\nPlease report unacceptable behavior to [contact@yworks.com](mailto:contact@yworks.com).\n\n## Feedback\nThis widget is by no means perfect.\nIf you find something is not working as expected\nwe are glad to receive an issue report from you.\nPlease make sure to [search for existing issues](https://github.com/yWorks/yfiles-jupyter-graphs/search?q=is%3Aissue+repo%3AyWorks%2Fyfiles-jupyter-graphs\u0026type=issues) first\nand check if the issue is not an unsupported feature or known issue.\nIf you did not find anything related, report a new issue with necessary information.\nPlease also provide a clear and descriptive title and stick to the issue templates.\nSee [issues](https://github.com/yWorks/yfiles-jupyter-graphs/issues).\n\n## Dependencies\n- [yFiles for HTML](https://www.yfiles.com/the-yfiles-sdk/web/yfiles-for-html)\n- [@ctrl/tinycolor](https://github.com/scttcper/tinycolor)\n- [@jupyter-widgets/base](https://github.com/jupyter-widgets/ipywidgets)\n- [@mdi/js](https://github.com/Templarian/MaterialDesign-JS)\n- [Vue](https://vuejs.org/)\n- [vue-json-viewer](https://github.com/chenfengjw163/vue-json-viewer)\n\n## License\nSee [LICENSE](https://github.com/yWorks/yfiles-jupyter-graphs/blob/main/LICENSE.md) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyworks%2Fyfiles-jupyter-graphs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyworks%2Fyfiles-jupyter-graphs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyworks%2Fyfiles-jupyter-graphs/lists"}