DEV Community

Cover image for VizBlend: Solving the Challenge of Interactive Data Reporting with Python ๐Ÿš€
Mahmoud Housam
Mahmoud Housam

Posted on

2

VizBlend: Solving the Challenge of Interactive Data Reporting with Python ๐Ÿš€

JS, HTML and CSS are not a requirement for a data analyst/scientist to learn to use in daily tasks. As a Python data analyst, I've always suffered from lacking of delivering analytics reports to stakeholders in a practical, informative, easy-to-use, and yet interactive way. I have to wait for another job that builds the report and sends it to them. This job requires additional skills that are not included in any roadmap designed for a data analyst.

Here is the challenge! Develop a tool that data analysts can use to build their interactive reports with some help from JS, HTML, and CSS without exposing them to learning anything more than their current skills.

Dealing with this challenge leads me to build and launch VizBlend. A Python package that:
๐ŸŒŸ Blends multiple Plotly figures into a single interactive report.
๐ŸŒŸ Offers keyboard-based navigation to move between slides like a PowerPoint presentation (Arrow keys, Home, End).
๐ŸŒŸ Auto-sliding feature with a 10-second timeframe between each slide (use Space to start/stop timing).

How to use VizBlend
1๏ธโƒฃ Install VizBlend

pip install vizblend
Enter fullscreen mode Exit fullscreen mode

2๏ธโƒฃ Import VizBlend and add figures

from vizblend import CreateReport  
import plotly.graph_objects as go  

report = CreateReport(report_title="Sales Report")  
bar_fig = go.Figure(go.Bar(x=["A", "B", "C"], y=[10, 20, 30]))  
report.add_figure(bar_fig, {"title": "Sales Data"})
Enter fullscreen mode Exit fullscreen mode

3๏ธโƒฃ Generate the report

report_file = report.blend_graphs_to_html()  
print(f"Report saved to {report_file}") 
Enter fullscreen mode Exit fullscreen mode

๐Ÿš€ Hereโ€™s How You Can Support the Journey:
1๏ธโƒฃ Star the GitHub Repository ๐ŸŒŸ: GitHub Repo
2๏ธโƒฃ Download VizBlend on PyPI โฌ‡๏ธ: pip install vizblend
3๏ธโƒฃ Share Your Feedback and Contribute: Let me know how VizBlend can integrate into your workflow.

Learning Purpose
Adding a beginner level of DevOps to your stack is beneficial and makes you a more independent developer. I want to learn some CI/CD with GitHub Actions since my workplace is heavily dependent on them. Also, the process of building a Python package with setuptools, source distribution and build distribution wheels are out-of-analytics-stack but useful for a Python developer even if you only use Python for data analysis. VizBlend helps me understand, write, run, and monitor CI/CD workflows with GitHub Actions to build and release it on PyPI.

Image of Timescale

Timescale โ€“ the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

Top comments (3)

Collapse
 
hatemhosny profile image
Hatem Hosny โ€ข

Very nice ๐Ÿ‘

Collapse
 
aremo_john profile image
Aremo John โ€ข

Great package. Please include an example of real data where you use the package to create a report.

Collapse
 
mahmoudhousam profile image
Mahmoud Housam โ€ข

Thanks@aremo_john. I wrote a test to create a 100-chart and embed them to an HTML file but it would be great to leave an example of real data from Kaggle e.g.

Thanks again

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

๐Ÿ‘‹ Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay