New Component: pygwalker

Hi, I am the developer of pygwalker.

Pygwalker can turning your datas into a no-code User Interface for visual exploration.

I think pygwalker can integrate well with streamlit.

use pygwalker in streamlit document: How to Use PyGWalker with Streamlit – Kanaries
github: GitHub - Kanaries/pygwalker: PyGWalker: Turn your pandas dataframe into a Tableau-style User Interface for visual analysis
pypi: pygwalker · PyPI
streamlit cloud page:


Great new component, Xiaofei!

I’ve shared it internally! :hugs:





Great work :v:


Nice component and easy to use. Can I request…

  • Ability (or function) to delete previously created datafiles and visualizations
  • Lazy load very large data files
  • Search function for filters (works in tandem with lazy load, e.g. when one has thousands of values)
  • Ability to refresh the fields list when you change a column type after data has been uploaded
  • Ability to label axes



Good suggestions! We will seriously consider these suggestions, and some of the features are currently being developed.



Great… please keep us updated. Also, can we have an example of initializing the pivot visualization and data grid with data and configuration passed in to the component from the embedding Streamlit app, and perhaps a means of disabling the data upload functions. In other words, a means of using the component purely to display data and pivot charts.


1 Like

yes, it already published in streamlit cloud.

demo uri:
document: How to Use PyGWalker with Streamlit – Kanaries

Future, pygwalker will add config that only displays charts and the ability to communicate with streamlit, etc…

1 Like

Great component for data analysis and visualisation !!
Looking forward to more active participation, feature development and greater support for Streamlit !!

Please add to : Streamlit Components - Community Tracker

1 Like

Thanks, I have added it.

This is wonderful. Keep the good work. There is need to integrate many good python modules with Streamlit. You have done it. Kudos. :hugs: :+1:

1 Like

Hi, can you add pygwalker to components page, I want to get more feedback of using pygwalker in streamlit to improve pygwalker.

Perhaps I should create a package called streamlit-pygwalker according to the ’ Publish a Component’?

Yes please make it + I got an issue

import streamlit as st

import warnings

Adjust the width of the Streamlit page

page_title=“Use Pygwalker In Streamlit”,

Add Title

st.title(“Use Pygwalker In Streamlit”)

Import your data

df = pd.read_csv(‘bike_sharing_dc.csv’)


Generate the HTML using Pygwalker

pyg_html = pyg.walk(df, return_html=True)

Also tried here

Traceback (most recent call last):
  File "/lib/python3.11/site-packages/micropip/", line 580, in install
    raise ValueError(
ValueError: Can't find a pure Python 3 wheel for: 'psutil', 'pyzmq>=20', 'pyzmq>=23.0', 'tornado>=6.1', 'tornado>=6.2', 'psutil', 'tornado>=6.1', 'pyzmq>=20', 'tornado>=6.2', 'pyzmq>=23.0'

stlite sharing,

Thanks for feedback, I can’t reproduce the situation, I need more error details for "NoneType" object is not callable(image only partially shown).

1 Like

This component is a real kill feature, thanks!!! I’ve just a question. Is it possible to export the json from the streamlit code? In this way we could create a custom save buttom.

Many Thanks!

Thanks for feedback.

Currently it can only be saved via the save icon on pygwalker.

Adding save function in streamlit sounds reasonable.

We will support this feature in a future version(It may take long times).

Ok thanks for the reply! Instead, is it possible to export the json config (vis_spec) file to a server-side folder? Or is it only possibile to download it?

It seems that you are using an old way to import pygwalker in steamlit.

now, you can save config to json file.

html = get_streamlit_html(df, spec="./gw0.json", use_kernel_calc=True, debug=True)

more detail: Release 0.3.7 · Kanaries/pygwalker · GitHub

day after tomorrow, I will release the new pygwalker version which adds a lot of new features on streamlit.

new preview demo: