| name | energy-data-visualizer |
| description | Interactive visualization for oil and gas production data analysis using Plotly dashboards |
| type | reference |
| capabilities | [] |
| requires | [] |
| see_also | [] |
| tags | [] |
| category | data |
| version | 1.0.0 |
Energy Data Visualizer Skill
Interactive visualization for oil & gas data analysis using Plotly
When to Use This Skill
Use this skill when you need to:
- Create production time series charts
- Visualize decline curves and forecasts
- Build economic scenario comparison charts
- Generate field/block comparison visualizations
- Create interactive HTML dashboards
Core Pattern
"""
ABOUTME: Interactive visualization toolkit for energy data analysis
ABOUTME: Provides chart templates for production, economics, and mapping
"""
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import pandas as pd
class ProductionChartBuilder:
"""Build interactive production charts."""
def production_time_series(
self,
df: pd.DataFrame,
date_col: str = "date",
rate_cols: list = ["oil_bopd", "gas_mcfd"]
) -> go.Figure:
"""Create production rate vs time chart."""
fig = make_subplots(rows=2, cols=1, shared_xaxes=True)
colors = {"oil_bopd": "#2E7D32", "gas_mcfd": "#D32F2F"}
for col in rate_cols:
if col in df.columns:
fig.add_trace(
go.Scatter(x=df[date_col], y=df[col], name=col),
row=1, col=1
)
fig.update_layout(title="Production History", hovermode=)
fig
() -> go.Figure:
fig = go.Figure()
fig.add_trace(go.Scatter(
x=actual_df[],
y=actual_df[],
mode=,
name=
))
forecast_df :
fig.add_trace(go.Scatter(
x=forecast_df[],
y=forecast_df[],
mode=,
name=
))
log_scale:
fig.update_yaxes(=)
fig
:
() -> go.Figure:
names = (components.keys()) + []
values = (components.values())
values.append((values))
fig = go.Figure(go.Waterfall(
x=names,
y=values,
measure=[] * ((values)-) + []
))
fig.update_layout(title=)
fig
() -> go.Figure:
params = (sensitivities.keys())
lows = [s[] - base_npv s sensitivities.values()]
highs = [s[] - base_npv s sensitivities.values()]
fig = go.Figure()
fig.add_trace(go.Bar(y=params, x=lows, orientation=, name=))
fig.add_trace(go.Bar(y=params, x=highs, orientation=, name=))
fig.update_layout(barmode=, title=)
fig