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.
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)
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)
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)
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)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
397bdb5d86cad1edc3d711bbf5891bc0e19faa3eeb70a5cd0f0bab49f9427396
|
|
| MD5 |
ac2a14097da30d9ae4f3836f55964805
|
|
| BLAKE2b-256 |
1185e854366de6abc326042c30d72f2d5575a12bd1a50a08dbda692bff591ba7
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c20b96080e37ed1217f9f2697ed4db688a195a6f3c250ee36fcb16ba0fb524c1
|
|
| MD5 |
af4f0ab944bf61c4b9175d48f0c206a4
|
|
| BLAKE2b-256 |
1e7af715f94cc885c7e2b6930790387af3b08f5192c3ee1726aed13c4e82a51f
|