panel-extensions / panel-graphic-walker

A project providing a Graphic Walker Pane for use with HoloViz Panel.
https://github.com/panel-extensions/panel-graphic-walker
MIT License
32 stars 3 forks source link
business-intelligence data data-analysis data-app data-exploration data-mining data-visualization eda holoviz-panel low-code notebook pivot-table python tableau tableau-alternative vega vega-lite visualization

✨ Welcome to Panel Graphic Walker

License py.cafe

A simple way to explore your data through a Tableau-like interface directly in your Panel data applications.

panel-graphic-walker-plot

What is Panel Graphic Walker?

panel-graphic-walker brings the power of Graphic Walker to your data science workflow, seamlessly integrating interactive data exploration into notebooks and Panel applications. Effortlessly create dynamic visualizations, analyze datasets, and build dashboards—all within a Pythonic, intuitive interface.

Why choose Panel Graphic Walker?

Pin your version!

This project is in its early stages, so if you find a version that suits your needs, it’s recommended to pin your version, as updates may introduce changes.

Installation

Install panel-graphic-walker via pip:

pip install panel-graphic-walker

Usage

Basic Graphic Walker Pane

py.cafe Static Badge

Here’s an example of how to create a simple GraphicWalker pane:

import pandas as pd
import panel as pn

from panel_gwalker import GraphicWalker

pn.extension()

df = pd.read_csv("https://datasets.holoviz.org/windturbines/v1/windturbines.csv.gz", nrows=10000)

GraphicWalker(df).servable()

You can put the code in a file app.py and serve it with panel serve app.py.

Basic Example

Setting the Chart Specification

py.cafe Static Badge

In the GraphicWalker UI, you can save your chart specification as a JSON file. You can then open the GraphicWalker with the same spec:

GraphicWalker(df, spec="spec.json")

Spec Example

Changing the renderer

py.cafe Static Badge

You may change the renderer to one of 'explorer' (default), 'profiler', 'viewer' or 'chart':

GraphicWalker(df, renderer='profiler')

renderer.png

Scaling with Server-Side Computation

py.cafe Static Badge

In some environments, you may encounter message or client-side data limits. To handle larger datasets, you can offload the computation to the server or Jupyter kernel.

First, you will need to install extra dependencies:

pip install panel-graphic-walker[kernel]

Then you can use server-side computation with kernel_computation=True:

walker = GraphicWalker(df, kernel_computation=True)

This setup allows your application to manage larger datasets efficiently by leveraging server resources for data processing.

Please note that if running on Pyodide, computations will always take place on the client.

Explore all the Parameters and Methods

py.cafe Static Badge

To learn more about all the parameters and methods of GraphicWalker, try the panel-graphic-walker Reference App.

Panel Graphic Walker Reference App

Examples

Bike Sharing Dashboard

py.cafe Static Badge

Bike Sharing Dashboard

Earthquake Dashboard

py.cafe Static Badge

Earthquake Dashboard

API

Parameters

Core

Renderer

Style

Other

Methods

Clone

Export and Save Methods

Other Methods

Vision

Our dream is that this package is super simple to use and supports your use cases:

Supported Backends

Name kernel_computation=False kernel_computation=True Comment
Pandas
Polars
DuckDB Relation
Ibis Table Too good to be True. Please report feedback.
Dask Not supported by Pygwalker
Pygwalker Database Connector Not supported by Narwhals

Other backends might be supported if they are supported by both Narwhals and PygWalker.

Via the backends example its possible to explore backends. In the data test fixture you can see which backends we currently test.

❤️ Contributions

Contributions and co-maintainers are very welcome! Please submit issues or pull requests to the GitHub repository. Check out the DEVELOPER_GUIDE for more information.