{"id":13556179,"url":"https://github.com/vega/ipyvega","last_synced_at":"2025-05-14T19:08:55.788Z","repository":{"id":35875911,"uuid":"40161124","full_name":"vega/ipyvega","owner":"vega","description":"IPython/Jupyter notebook module for Vega and Vega-Lite","archived":false,"fork":false,"pushed_at":"2025-04-01T01:40:43.000Z","size":58604,"stargazers_count":380,"open_issues_count":21,"forks_count":65,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-05-09T21:54:48.795Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vega.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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,"zenodo":null},"funding":{"custom":"https://app.hubspot.com/payments/GyPC972GD9Rt?referrer=PAYMENT_LINK"}},"created_at":"2015-08-04T03:22:47.000Z","updated_at":"2025-04-24T09:52:20.000Z","dependencies_parsed_at":"2023-02-17T00:45:29.973Z","dependency_job_id":"58b339b0-4138-4e19-b41d-63f25f260fb1","html_url":"https://github.com/vega/ipyvega","commit_stats":{"total_commits":671,"total_committers":15,"mean_commits":"44.733333333333334","dds":0.5961251862891207,"last_synced_commit":"8c0cc5fea94521c6cc5d3d86b01ac3c2dbd14da6"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vega%2Fipyvega","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vega%2Fipyvega/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vega%2Fipyvega/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vega%2Fipyvega/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vega","download_url":"https://codeload.github.com/vega/ipyvega/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254209859,"owners_count":22032897,"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":[],"created_at":"2024-08-01T12:03:40.960Z","updated_at":"2025-05-14T19:08:54.882Z","avatar_url":"https://github.com/vega.png","language":"Jupyter Notebook","funding_links":["https://app.hubspot.com/payments/GyPC972GD9Rt?referrer=PAYMENT_LINK"],"categories":["Jupyter Notebook","Interactive Widgets \u0026 Visualization","others","交互式小部件和可视化","数据可视化"],"sub_categories":[],"readme":"# IPython Vega\n[![PyPI](https://img.shields.io/pypi/v/vega.svg)](https://pypi.python.org/pypi/vega)\n[![npm version](https://img.shields.io/npm/v/jupyter-vega.svg)](https://www.npmjs.com/package/jupyter-vega)\n[![Build Status](https://github.com/vega/ipyvega/workflows/Test/badge.svg)](https://github.com/vega/ipyvega/actions)\n\nIPython/Jupyter notebook module for [Vega 5](https://github.com/vega/vega), and [Vega-Lite 4](https://github.com/vega/vega-lite). Notebooks with embedded visualizations can be viewed on [GitHub](https://github.com/vega/ipyvega/blob/master/notebooks/VegaLite.ipynb) and [nbviewer](https://nbviewer.jupyter.org/github/vega/ipyvega/blob/master/notebooks/VegaLite.ipynb). If you use JupyterLab (not the notebook), you don't need to install this extension since JupyterLab comes with built-in support for Vega and Vega-Lite.\n\nAvailable on [pypi](https://pypi.python.org/pypi/vega) and [Conda Forge](https://anaconda.org/conda-forge/vega) as `vega`.\n\n\u003cimg src=\"screenshot.png\" width=\"500\"\u003e\n\n## Install and run\n\n### Python Package Index\n\nTo install `vega` and its dependencies from the Python Package Index using\n`pip`, use the following commands:\n\n```sh\npip install jupyter pandas vega\npip install --upgrade notebook  # need jupyter_client \u003e= 4.2 for sys-prefix below\njupyter nbextension install --sys-prefix --py vega\njupyter nbextension enable --py --sys-prefix vega\n```\n\n### Conda Forge\n\nIf you use Conda, you probably already have the latest versions of the notebook and pandas installed. To install `vega` extension run:\n\n```sh\nconda install vega\n```\n\n## Usage\n\nOnce the package is installed, run\n```sh\njupyter notebook\n```\nto launch the Jupyter notebook server, and use `vega` within the notebook.\nSee the example notebooks for [Vega-Lite](https://github.com/vega/ipyvega/blob/master/notebooks/VegaLite.ipynb) and [Vega](https://github.com/vega/ipyvega/blob/master/notebooks/Vega.ipynb).\n\nTo run the notebooks yourself, you need to get the file [`cars.json`](https://raw.githubusercontent.com/vega/ipyvega/master/notebooks/cars.json).\n\n\n## Developers\n\nThis project uses [Poetry](https://python-poetry.org/). If you prefer a local virtual environment, run `poetry config virtualenvs.in-project true` first. Install requirements: `poetry install`.\n\nThen activate the virtual environment with `poetry shell`.\n\nSymlink files instead of copying files:\n\n```sh\njupyter nbextension install --py --symlink --sys-prefix vega\njupyter nbextension enable --py --sys-prefix vega\n```\n\nRun kernel with `jupyter notebook`. Run the tests with `pytest vega`.\n\nTo rebuild the JavaScript continuously, run `yarn watch`.\n\n### How to make a release\n\n* Update the JavaScript dependencies by changing `package.json` (e.g. with [ncu](https://www.npmjs.com/package/npm-check-updates)).\n* Run `yarn`.\n* Update the version number in `pyproject.toml` (with `poetry version [VERSION]`), `package.json`, `_frontend.py`, and `__init__.py`\n* Rebuild the JavaScript with `yarn build`.\n* Make sure that everything still works (launch notebook and widgets and try the examples).\n* Add a git tag.\n* `git push --tags`.\n* Run `npm publish` to update https://www.npmjs.com/package/jupyter-vega.\n* Then run `poetry publish --build` to update https://pypi.python.org/pypi/vega.\n\nThe Conda feedstock for this package is at https://github.com/conda-forge/vega-feedstock. It should update automatically but we may need to merge a pull request with the updates. \n\n### Visual Regression Tests\n\nipyvega uses the same technical solution as [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) for visual regression testing (i.e. [Galata](https://github.com/jupyterlab/jupyterlab/tree/master/galata)).\n\nTherefore, the instructions provided for [ipywidgets visual regression tests](https://ipywidgets.readthedocs.io/en/stable/dev_testing.html#visual-regression-tests) apply here.\n\nCurrently:\n\n* ipyvega uses `ui-tests/tests/notebooks/vega.ipynb` notebook for testing\n* reference images are in the `ui-tests/tests/vega.test.ts-snapshots/` directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvega%2Fipyvega","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvega%2Fipyvega","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvega%2Fipyvega/lists"}