Skip to main content

"A next-gen Python plotting library with SVG-first rendering, interactivity, themes, and clean defaults — better than matplotlib.pyplot"

Project description

GlyphX

A Better, Faster, and Simpler Python Visualization Library

PyPI version Documentation Status


GlyphX is a modern alternative to matplotlib.pyplot with interactive, SVG-based charts that automatically display in:

  • Jupyter notebooks
  • CLI environments
  • IDEs

It provides simplicity, high-quality rendering, built-in tooltips, zoom/pan, and export options — without ever needing plt.show().


Features

Feature GlyphX Matplotlib
Auto-display
Interactive tooltips
Zoom / pan (in browser)
Built-in export buttons ✅ SVG/PNG/JPG
Multi-plot grid layout
Seaborn-style charts ✅ (lmplot, pairplot, etc.) Partial
Hover highlighting
Colorblind-friendly mode
Shared axes support
Font & theme customization

Installation

pip install glyphx

Quick Example

from glyphx import plot

fig = plot(x=[1, 2, 3], y=[2, 4, 6], kind="line", label="Demo")
# No need for fig.show(); it auto-displays in Jupyter or saves via fig.save()

Chart Types

  • Line chart
  • Bar chart (including grouped bars)
  • Scatter plot
  • Pie / Donut chart
  • Box plot
  • Histogram
  • Swarm plot
  • Violin plot
  • Count plot
  • lmplot, jointplot, pairplot
  • Faceted charts (FacetGrid, facet_plot)

Interactivity

All charts support:

  • Mouseover tooltips
  • Zoom / pan (mouse wheel + drag)
  • Click-to-download buttons (SVG, PNG, JPG)

Export Options

fig.save("my_chart.png")
fig.save("my_chart.svg")

Grid Layout

from glyphx.layout import grid

charts = [plot(...), plot(...), plot(...)]
html = grid(charts, cols=2)

Theming

from glyphx.themes import themes
theme = themes["dark"]

Comparison with Matplotlib

📈 Line Plot

MatplotlibGlyphX
import matplotlib.pyplot as plt
<p>plt.plot([1, 2, 3], [4, 5, 6])
plt.title("Simple Line Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.show()
from glyphx import plot</p>
<p>plot(x=[1, 2, 3], y=[4, 5, 6],
kind="line", title="Simple Line Plot",
xlabel="X Axis", ylabel="Y Axis")

📊 Bar Chart

MatplotlibGlyphX
import matplotlib.pyplot as plt
<p>plt.bar(["A", "B", "C"], [5, 3, 7])
plt.title("Bar Chart")
plt.xlabel("Categories")
plt.ylabel("Values")
plt.show()
from glyphx import plot</p>
<p>plot(x=["A", "B", "C"], y=[5, 3, 7],
kind="bar", title="Bar Chart",
xlabel="Categories", ylabel="Values")

🔵 Scatter Plot

MatplotlibGlyphX
import matplotlib.pyplot as plt
<p>plt.scatter([1, 2, 3, 4], [4, 1, 3, 5])
plt.title("Scatter Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.show()
from glyphx import plot</p>
<p>plot(x=[1, 2, 3, 4], y=[4, 1, 3, 5],
kind="scatter", title="Scatter Plot",
xlabel="X Axis", ylabel="Y Axis")

🥧 Pie Chart

MatplotlibGlyphX
import matplotlib.pyplot as plt
<p>labels = ["A", "B", "C"]
sizes = [30, 45, 25]
plt.pie(sizes, labels=labels)
plt.title("Pie Chart")
plt.show()
from glyphx import plot</p>
<p>plot(data=[30, 45, 25],
kind="pie", labels=["A", "B", "C"],
title="Pie Chart")

Subplot Grid Example

from glyphx import Figure, series, themes
<p>fig = Figure(rows=2, cols=2, theme=themes["dark"])</p>
<p>ax1 = fig.add_axes(0, 0)
ax1.add(series.LineSeries([1, 2], [3, 4], label="Line"))
ax1.legend_pos = "right"</p>
<p>ax2 = fig.add_axes(1, 0)
ax2.add(series.ScatterSeries([1, 2, 3, 4], [4, 1, 3, 5], label="Scatter"))
ax2.legend_pos = "right"</p>
<p>ax3 = fig.add_axes(0, 1)
ax3.add(series.BarSeries(x=["A", "B", "C"], y=[5, 3, 7], label="Bar"))
ax3.legend_pos = "right"</p>
<p>ax4 = fig.add_axes(1, 1)
ax4.add(series.PieSeries(values=[30, 45, 25], labels=["A", "B", "C"]))</p>
<p>fig.plot()

import matplotlib.pyplot as plt
import numpy as np
<p>fig, axs = plt.subplots(2, 2, figsize=(10, 8))</p>
<p>axs[0, 0].plot([1, 2], [3, 4])
axs[0, 0].set_title("Line")</p>
<p>axs[1, 0].scatter([1, 2, 3, 4], [4, 1, 3, 5])
axs[1, 0].set_title("Scatter")</p>
<p>axs[0, 1].bar(["A", "B", "C"], [5, 3, 7])
axs[0, 1].set_title("Bar")</p>
<p>axs[1, 1].pie([30, 45, 25], labels=["A", "B", "C"])
axs[1, 1].set_title("Pie")</p>
<p>plt.tight_layout()
plt.show()

License

MIT License
(c) 2025 GlyphX contributors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

glyphx-1.2.10.tar.gz (30.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

glyphx-1.2.10-py3-none-any.whl (36.7 kB view details)

Uploaded Python 3

File details

Details for the file glyphx-1.2.10.tar.gz.

File metadata

  • Download URL: glyphx-1.2.10.tar.gz
  • Upload date:
  • Size: 30.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.22

File hashes

Hashes for glyphx-1.2.10.tar.gz
Algorithm Hash digest
SHA256 96e838da7f6db84d77a6c7466e2b261d4b167519f3370535b5db7e25b0ca296a
MD5 881c785cd0d3d59249faacf2fb297f83
BLAKE2b-256 65ffa2f63ce6f9bce1bec979588a8936da843fcd43cf72a228fa23fc45c38706

See more details on using hashes here.

File details

Details for the file glyphx-1.2.10-py3-none-any.whl.

File metadata

  • Download URL: glyphx-1.2.10-py3-none-any.whl
  • Upload date:
  • Size: 36.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.22

File hashes

Hashes for glyphx-1.2.10-py3-none-any.whl
Algorithm Hash digest
SHA256 106257b1c5d54a0a63472872b25fd2805e9c559ac253d4207db977bb8da42210
MD5 520b626743fe6fdb67fb9c7908970454
BLAKE2b-256 6f98232f935bd5ccebb59e343df64060c99e3f94b64a45eeb8d948fcdad00bb5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page