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.9.tar.gz (29.2 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.9-py3-none-any.whl (35.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: glyphx-1.2.9.tar.gz
  • Upload date:
  • Size: 29.2 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.9.tar.gz
Algorithm Hash digest
SHA256 d042ae1eb35b2746292b041f52007e5e8b154e104935080841d2bb396d5b977f
MD5 13b1c09a4a95862333da5dbeea480a4f
BLAKE2b-256 3451ecfd527fffae621bb3e32c4fc70ee3fdc125cbc5a09892e812f77843557b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: glyphx-1.2.9-py3-none-any.whl
  • Upload date:
  • Size: 35.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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 19ba8802157773301b1173d025dfaf3995bcdbffc2b1f890e9c631463b2bab6c
MD5 fc18c9c54f1665beed7587149fff5aaa
BLAKE2b-256 2113273cb9887aa0dd916e620be5625a5ecaf1d1852aaa404f69d78ccc4d91ac

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