≡ Menu

Rediscovering Aesthetics of Yesteryears with smplotlib: A Bridge to SuperMongo Styling in Modern Data Visualization

In a domain where the phrase “a picture is worth a thousand words” rings particularly true, the journey of data visualization has witnessed a metamorphosis from simplistic graphs to today’s highly interactive and dynamic plots. Amidst this evolution, the quaint charm and professional allure of old-school styling inherent in figures from erstwhile technical papers have garnered a unique reverence. It’s this vintage aesthetic that smplotlib, a Python library, strives to emulate, providing a bridge to the venerable SuperMongo (SM) aesthetics in the modern realm of Python-based data plotting.


pip install smplotlib

Let’s delve into the utilization of smplotlib with a hands-on example. Though it’s important to note that smplotlib appears to be a personalized or auxiliary library, the following example demonstrates how one might structure a complex plot using matplotlib, and it’s here where smplotlib could potentially be integrated to imbue the plot with a vintage aesthetic, assuming smplotlib provides such styling functionalities.

import matplotlib.pyplot as plt
import numpy as np
import smplotlib  # Assuming smplotlib provides styling functionalities

# Generate some data
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)

# Create the plot
fig, ax = plt.subplots()

# Plot the functions
ax.plot(x, y1, label='sin(x)')
ax.plot(x, y2, label='cos(x)')
ax.plot(x, y3, label='tan(x)')

# Add labels and legend
ax.set_xlabel('X-axis Label')
ax.set_ylabel('Y-axis Label')
ax.set_title('Trigonometric Functions')

# Set axis limits for better visualization
ax.set_ylim([-10, 10])

# Assuming smplotlib provides a function called style_plot (this is a made-up function, as smplotlib's actual usage is not clear)
# smplotlib.style_plot(ax)  

# Show the plot

In the code snippet above:

  1. We utilize numpy to generate a series of x values and calculate y values for sine, cosine, and tangent functions.
  2. We employ plt.subplots() to create a figure and axis for plotting.
  3. The ax.plot() method is used to plot each function, specifying a label for each that will be used in the legend.
  4. Labels for the axes, a title for the plot, and a legend indicating which line corresponds to which function are added using ax.set_xlabel(), ax.set_ylabel(), ax.set_title(), and ax.legend() respectively.
  5. ax.set_ylim() is used to limit the Y-axis to a range that makes the graph readable, as the tangent function has vertical asymptotes that would otherwise “zoom out” the graph.
  6. A hypothetical smplotlib.style_plot(ax) function is invoked to style the plot, assuming such a function exists in smplotlib.

This piece of code illustrates how one can create a more complex plot and incorporate labels using Matplotlib. It’s a placeholder where smplotlib could potentially be utilized to apply vintage styling, aligning with the aesthetic of old-school technical papers.

smplotlib encapsulates more than just a stylistic add-on; it’s a homage to the timeless essence of clarity and precision that were the hallmarks of figures in bygone eras. The ability to recreate such an aesthetic in today’s fast-evolving visualization landscape not only pays homage to the past but also provides a stylistic choice that stands out amidst modernist designs.

This library is an open-source initiative, hosted on GitHub, welcoming contributions from anyone resonating with the cause of preserving the classical styling in contemporary data storytelling.

In an academic and professional world that’s continually chasing the ‘new’, smplotlib offers a quaint respite, taking one back to the roots where simplicity and elegance were the narrators of data tales.

{ 0 comments… add one }