Examples

This page demonstrates various use cases for pmpl.

Horizontal Bar Chart

import matplotlib.pyplot as plt
import pmpl

# Using context manager
with pmpl.style("horizontal"):
    fig, ax = plt.subplots(figsize=(8, 5))
    categories = ['Category A', 'Category B', 'Category C', 'Category D']
    values = [23, 45, 56, 78]
    ax.barh(categories, values)
    ax.set_xlabel('Value')
    plt.tight_layout()
    plt.show()

Vertical Bar Chart

import matplotlib.pyplot as plt
import pmpl

# Using formatter
fig, ax = plt.subplots(figsize=(8, 5))
categories = ['Q1', 'Q2', 'Q3', 'Q4']
values = [100, 150, 120, 180]
ax.bar(categories, values)
pmpl.format_vertical(ax)
ax.set_ylabel('Revenue ($M)')
plt.tight_layout()
plt.show()

Line Plot

import matplotlib.pyplot as plt
import numpy as np
import pmpl

# Set global defaults
pmpl.set_defaults("vertical")

fig, ax = plt.subplots(figsize=(8, 5))
x = np.linspace(0, 10, 100)
ax.plot(x, np.sin(x), label='sin(x)')
ax.plot(x, np.cos(x), label='cos(x)')
ax.legend()
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.tight_layout()
plt.show()

Grouped Bar Chart

import matplotlib.pyplot as plt
import numpy as np
import pmpl

with pmpl.style("vertical"):
    fig, ax = plt.subplots(figsize=(10, 6))

    categories = ['A', 'B', 'C', 'D']
    group1 = [20, 35, 30, 35]
    group2 = [25, 32, 34, 20]

    x = np.arange(len(categories))
    width = 0.35

    ax.bar(x - width/2, group1, width, label='Group 1')
    ax.bar(x + width/2, group2, width, label='Group 2')

    ax.set_xticks(x)
    ax.set_xticklabels(categories)
    ax.legend()
    plt.tight_layout()
    plt.show()

Custom Spine Configuration

import matplotlib.pyplot as plt
import pmpl

# Format with custom spine visibility
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [1, 4, 2])
pmpl.format_vertical(ax, grid=True, grid_alpha=0.2, left=True, top=True)
plt.show()

Style Override

import matplotlib.pyplot as plt
import pmpl

# Apply style with custom overrides
with pmpl.style("horizontal", **{"figure.dpi": 150, "font.size": 12}):
    fig, ax = plt.subplots()
    ax.barh(['A', 'B', 'C'], [1, 2, 3])
    plt.show()