Data visualization can be challenging and require development time, especially for users who lack experience with Altair/Vega syntax. This LLM-based app simplifies the process by allowing users to describe their desired charts in plain language, and it automatically generates the corresponding JSON chart configuration for the vega/altair visualisation.
Key Features
File Upload: Users upload a CSV or JSON dataset.
Chatbot Interface: Users ask for visualizations in natural language (e.g., “Show me a line chart of sales over time.”).
Automatic JSON Generation: The chatbot parses the request and creates a Vega/Altair JSON spec.
Live Preview: The generated chart is displayed in Streamlit.
Export Option: Users can download the JSON spec or the rendered visualization.
Thanks! At the moment, this is just an idea I had as part of the Connect Challenge. I haven’t built the app yet, but I’m exploring how to make it feasible. Looking forward to any feedback or suggestions!
I love the idea, I did something very similar which I just released a few days ago, the only difference is that it generates matplotlib code instead of Vega/Altair JSON specs! Would be easy to add the option though.
Hey! I love your work SimplyPlot looks awesome! It’s really cool how you generate Matplotlib code dynamically. If you’re open to sharing some insights, what type of LLM model did you use for this?
Cheers! More than happy to share insights! The actual model being used right now is 4o-mini. I looked at a lot of different LLM orchestration tools, but landed on DSPy because I like their philosophy of auto-prompting optimization. However, I ended up using none of it (yet) haha so it’s basically a fancy wrapper for LiteLLM right now with some nice starter prompts (which tbh gave me quite good out-of-the-box performance simply using their ChainOfThought module).
Also, I really should switch to Gemini Flash 2.0 as it is cheaper and better (and should be as easy as setting up api keys and changing one line of code).
That sounds awesome! You’ve clearly put a lot of thought into this and done some detailed work. I appreciate the insights! I’ll start from what you’ve shared and begin developing, excited to see where it goes! Thanks again for the guidance!
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.