~/projects-hub/projects/plot-this
Archived
PlotThis icon
Web ApplicationData VisualizationAnalytics
PythonStreamlitPlotly ExpressPandasNumPy

PlotThis

A local, privacy-focused interactive web application to analyze structured datasets, suggest the most appropriate chart types, and generate automated statistical insights, without using Artificial Intelligence (AI) or third-party APIs.

The Problem

Analyzing datasets, choosing the right visualizations, and generating statistical insights dynamically without relying on external AI APIs or compromising data privacy.

The Solution

A local Streamlit application that uses a custom, highly-optimized pure Pandas/NumPy engine in the background to infer semantic types and compile summaries in milliseconds (replacing third-party profiling libraries that caused 60+ second multiprocessing deadlocks), while using Plotly Express for premium-styled charts.

Key Learnings

  • Discovering that heavy third-party data profiling libraries cause severe multiprocessing deadlocks in Streamlit's reactive environment, and replacing them with a custom native Pandas engine.
  • Implementing a deterministic rules engine using Pearson/Spearman coefficients and mean variances to recommend specific chart types.
  • Fine-tuning Plotly layouts (custom typography, removing axis borders, and applying curated color palettes) to produce modern, publication-ready charts.

Custom Pandas Engine Instead of Heavy Profiling Libraries

PlotThis replaced third-party data-profiling libraries after they caused multiprocessing deadlocks inside Streamlit’s reactive runtime:

  • Native Pandas/NumPy Engine: A custom, highly-optimized Pandas/NumPy engine infers semantic column types and compiles statistical summaries in milliseconds — replacing third-party profiling libraries that took 60+ seconds and deadlocked inside Streamlit’s multiprocessing model.
  • Deterministic Chart Recommendation: A rules engine built on Pearson/Spearman correlation coefficients and variance comparisons suggests the chart type that best fits each dataset, without calling any AI API.

Local-First, Privacy-Focused Analysis

  • Plotly Express Styling: Custom typography, borderless axes, and curated color palettes turn default Plotly charts into publication-ready visuals.
  • No External APIs: Every computation runs locally inside the Streamlit app — datasets never leave the machine.

Note: Archived after validating the local-first analysis approach — the source is available on GitHub.