Skip to content
Dr. Yasser Mustafa edited this page Feb 16, 2026 · 3 revisions

Welcome to the PipePlotly Wiki 🚀

PipePlotly is a high-level, verb-based visualization library for Python designed to make your data analysis pipelines readable, expressive, and powerful.

🌟 The Big Idea: Functional Visualization

Most Python plotting libraries use Object-Oriented (OO) syntax which can lead to nested, hard-to-read code. PipePlotly brings the "Tidyverse" philosophy to Python, prioritizing a functional flux where data moves smoothly from one step to the next.

⚓ The "Pipe To" Mantra

Think of the >> operator as "pipe to" or "and then".

Instead of reading code from the inside-out, you read it like a sentence from left-to-right:

# Read as: Take the data, # PIPE IT TO a Plot, # AND THEN apply points, # AND THEN show it.df>>Plot() >>plot_points('x', 'y') >>show()

💎 Core Features

1. Unified API, Dual Backends

Write code once. Switch between Publication-Quality Static Plots (plotnine) and Interactive Dashboards (Plotly) with a single verb.

# Static version (Good for papers/reports)df>>Plot() >>plot_lines('date', 'sales') >>show()
# Interactive version (Good for exploration)df>>Plot() >>plot_lines('date', 'sales') >>to_interactive() >>show()

2. Verb-Based Expression

Visualization is described with clear, declarative verbs. No complicated dictionaries or obscure keyword arguments.

  • add_color('category')Color the plot by this column.
  • add_facets(rows='region')Split the plot into rows by region.
  • add_smooth()Overlay a statistical trend.

3. Production-Ready Logic

PipePlotly isn't just for notebooks. It features:

  • Immutability: Every step returns a new Plot object. Your original data and states are never mutated.
  • Type Safety: Full type hints for modern IDE support.
  • Ecosystem Integration: Seamless support for pandas and specifically built for pipeframe.

🛠️ Real-World Example: The Power of the Pipeline

Compare a traditional approach to the PipePlotly approach for a dataset where we need to filter, transform, and then visualize biological data:

The Piped Pipeline:

frompipeframeimportPipeFramefrompipeplotly.verbsimport*
(PipeFrame(iris)
>> (lambdad: d[d['sepal_length'] >5.0]) # Filter data>>Plot() # Initialize Viz>>plot_points('sepal_length', 'sepal_width')
>>add_color('species')
>>add_facets(cols='species')
>>set_theme('minimal')
>>show())

📖 Deep Dives

Ready to master the pipe? Explore our detailed guides:


👨‍💻 Developed by

Dr. Yasser Mustafa
AI & Data Science Specialist
LinkedIn | GitHub