Skip to main content

A Multi Y axis Plotting Library based on Plotly

Project description

MultiYPlot: A Flexible Multi Y-Axis (A Plotly based Library)

MultiYPlot is a lightweight and intuitive Python library built on top of Plotly Graph Objects, designed to simplify the creation of multi–Y-axis interactive charts.With PolyY, you can easily visualize multiple datasets with different scales on the same figure — without losing clarity, interactivity, or control. The library provides a clean object-oriented interface to build, customize, and update complex figures in just a few lines of code.

Key Features

🔹 Multi Y-Axis Support: Effortlessly plot multiple series with independent Y-axes while maintaining alignment and scale integrity. 🔹 Built on Plotly Graph Objects: Leverages Plotly’s powerful graph_objects module for high-quality, interactive visualization. 🔹 Full Interactivity: Zoom, pan, hover, and toggle traces directly in the figure — no static images or re-renders needed. 🔹 Fine Figure Control: Access and modify each trace, axis, and layout component with full Plotly compatibility. 🔹 Dynamic Trace Management: Add, update, or restyle traces after creation — ideal for data exploration and dashboard integration.

All Plots

Example 1: Energy Industry Data

import polyY.plotly as plot
import pandas as pd

elect = pd.read_csv(r"data\electricity_consumption_data.csv")
x = elect.timestamp
ys = ['power_kwh', 'voltage_v', 'current_a', 'temperature_c', 'reactive_power_kvar']
clrs = ["pink", "magenta", "green", "purple", "orange"]

figure = plot.MakeFigure("Power Consumption Metrics", "plotly_dark")
for i in range(5):
    figure.add_trace(x, elect[ys[i]].to_list(), name=ys[i], kind="line", color=clrs[i])
figure.get_figure().update_layout(width=1500, height=800)

Energy Consumption

Example 2: Oil and Gas Data

import polyY.plotly as plot
import pandas as pd

data = pd.read_csv(r"data\oil and gas.txt", sep="\t")
x = data.Time_Days
ys = ['Gas_Volume', 'Water_Volume_', 'Casing_Pressure_', 'Active_Pressure_', 'Line_Pressure_', 'Calculated_Sandface_Pressure_']
clrs = ["olive", "blue", "magenta", "red", "orange", "green"]

figure = plot.MakeFigure("Oil and Gas Production Metrics", "none")
for i in range(6):
    figure.add_trace(x, data[ys[i]].to_list(), name=ys[i], kind="line", color=clrs[i])
figure.get_figure().update_layout(width=1500, height=800)

Oil and Gas Metrics

Example 3: Weather and Forecast Data

import polyY.plotly as plot
import pandas as pd

data = pd.read_csv(r"data\weather_data_500.csv")
x = data.timestamp
ys = ['humidity_%', 'wind_speed_m_s', 'rainfall_mm', 'solar_radiation_w_m2', 'pressure_hpa', 'temperature_c']
clrs = ["blue", "orange", "green", "magenta", "red", "olive"]

figure = plot.MakeFigure("Weather and Forecast Metrics", "ggplot2")
for i in range(6):
    figure.add_trace(x, data[ys[i]].to_list(), name=ys[i], kind="line", color=clrs[i])
figure.get_figure().update_layout(width=1500, height=800)

Weather Metrics

Example 4: Combo Chart

import polyY.plotly as plot
import pandas as pd

data = pd.read_csv(r"data\oil and gas.txt", sep="\t")
x = data.Time_Days
ys = ['Gas_Volume', 'Water_Volume_', 'Casing_Pressure_', 'Active_Pressure_']
clrs = ["olive", "blue", "magenta", "red"]
types = ["area", "area", "line", "scatter"]

figure = plot.MakeFigure("Combo Chart Example", "none")
for i in range(4):
    figure.add_trace(x, data[ys[i]].to_list(), name=ys[i], kind=types[i], color=clrs[i])
figure.get_figure().update_layout(width=1500, height=800)

Combo Chart

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

polyy-0.1.0b0.tar.gz (2.8 kB view details)

Uploaded Source

Built Distribution

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

polyy-0.1.0b0-py3-none-any.whl (2.6 kB view details)

Uploaded Python 3

File details

Details for the file polyy-0.1.0b0.tar.gz.

File metadata

  • Download URL: polyy-0.1.0b0.tar.gz
  • Upload date:
  • Size: 2.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for polyy-0.1.0b0.tar.gz
Algorithm Hash digest
SHA256 397bdb5d86cad1edc3d711bbf5891bc0e19faa3eeb70a5cd0f0bab49f9427396
MD5 ac2a14097da30d9ae4f3836f55964805
BLAKE2b-256 1185e854366de6abc326042c30d72f2d5575a12bd1a50a08dbda692bff591ba7

See more details on using hashes here.

File details

Details for the file polyy-0.1.0b0-py3-none-any.whl.

File metadata

  • Download URL: polyy-0.1.0b0-py3-none-any.whl
  • Upload date:
  • Size: 2.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for polyy-0.1.0b0-py3-none-any.whl
Algorithm Hash digest
SHA256 c20b96080e37ed1217f9f2697ed4db688a195a6f3c250ee36fcb16ba0fb524c1
MD5 af4f0ab944bf61c4b9175d48f0c206a4
BLAKE2b-256 1e7af715f94cc885c7e2b6930790387af3b08f5192c3ee1726aed13c4e82a51f

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