Skip to main content

plot-skill

Plot and compare simulation summary metrics. Use when visualizing time-series results, comparing multiple cases, or analyzing production performance. Supports single and multi-metric plots, case comparisons, and automatic metric keyword resolution.

Source facts

Repository
NVIDIA/GenerativeAIExamples
Last source activity
March 23, 2026 at 16:26
Detected SKILL.md language
English
Stars
4,209
Forks
1,101

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
7 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
plot_skill
description
Plot and compare simulation summary metrics. Use when visualizing time-series results, comparing multiple cases, or analyzing production performance. Supports single and multi-metric plots, case comparisons, and automatic metric keyword resolution.
license
Apache-2.0
metadata
{"author":"sim-agent","version":"1.0","category":"simulator"}
compatibility
Requires matplotlib and simulation output files (.SMSPEC). Uses EclReader for summary (Apache-2.0).
# Plotting Skill This skill provides tools for visualizing and comparing simulation results. ## Overview The Plotting skill enables agents to: - **Plot** summary metrics from simulation outputs - **Compare** multiple cases on the same plot - **Visualize** time-series data (rates, cumulative production, etc.) - **Resolve** metric keywords automatically from user requests ## Tools ### plot_summary_metric Plots one or more summary metrics from simulation outputs on the same plot. **Usage:** ```python plot_summary_metric( output_dir: str, metric_request: str, manual_hint: Optional[str] = None, save_path: Optional[str] = None ) -> str ``` **Parameters:** - `output_dir`: Directory containing simulation output files (must contain .SMSPEC file) - `metric_request`: User request or summary keyword(s). For multiple metrics on one plot, use comma-separated keywords (e.g., "FOPT, FWPT" or "FOPT,FWPT") - `manual_hint`: Optional manual context or retrieved snippet to help map keywords - `save_path`: Optional path to save the plot image **Example:** ``` plot_summary_metric( output_dir="/path/to/output", metric_request="FOPT, FWPT", save_path="/path/to/plot.png" ) ``` **Returns:** Confirmation message with plot details and save path (if provided). Displays the plot. **When to use:** - After simulation run when user asks to plot results (TOOL_DECISION_TREE.md Section 3.1) - When user requests specific metrics (e.g., "Plot cumulative oil production") - For visualizing time-series data from completed simulations **Metric Keywords:** Common summary keywords include: - `FOPT`: Cumulative oil production - `FOPR`: Oil production rate - `FWPT`: Cumulative water production - `FWPR`: Water production rate - `FGPT`: Cumulative gas production - `FGPR`: Gas production rate - `WBHP`: Well bottom-hole pressure - `WOPR`: Well oil production rate ### plot_compare_summary_metric Plots a summary metric for two or more cases on the same axes for comparison. **Usage:** ```python plot_compare_summary_metric( output_dir: str, metric_request: str, case_stems: Optional[str] = None, case_paths: Optional[str] = None, save_path: Optional[str] = None ) -> str ``` **Parameters:** - `output_dir`: Directory to save the plot and, when not using case_paths, directory containing .SMSPEC files to compare - `metric_request`: Summary keyword to compare (e.g., "FOPT" for cumulative oil, "FOPR" for oil rate) - `case_stems`: Comma-separated case name stems to compare (e.g., "SPE10_TOPLAYER,SPE10_TOPLAYER_AGENT_GENERATED"). If omitted and case_paths not set, all .SMSPEC files in output_dir are compared. - `case_paths`: Comma-separated paths to simulator input files (or .SMSPEC) for the cases to compare. Use when comparing cases from different directories (e.g., "BASE/SPE10.DATA,INFILL/SPE10_INFILL.DATA"). - `save_path`: Optional path to save the comparison plot image **Example:** ``` plot_compare_summary_metric( output_dir="/path/to/output", metric_request="FOPT", case_stems="SPE10_TOPLAYER,SPE10_TOPLAYER_AGENT_GENERATED" ) ``` **Returns:** Confirmation message with comparison plot details and save path (if provided). Displays the plot with different line styles for each case. **When to use:** - After running multiple cases when user asks to compare (Section 3.1) - For comparing baseline vs modified scenarios - When analyzing differences between simulation cases ## Workflow Integration This skill integrates with the Simulator Agent's decision tree (TOOL_DECISION_TREE.md): 1. **Plot Results (Section 3.1):** ``` User asks to plot → plot_summary_metric (if run_and_heal exists in history) ``` 2. **Compare Cases (Section 3.1):** ``` User asks to compare → plot_compare_summary_metric (if multiple cases available) ``` 3. **After Simulation (Section 3.3):** ``` run_and_heal → summarize → "Do you want me to plot the results?" ``` ## Implementation Details Tools are implemented as LangChain tools with Pydantic input schemas. The skill uses: - **EclReader**: Apache-2.0 reader for .SMSPEC/.UNSMRY summary files - **Matplotlib**: For generating plots - **Metric resolution**: Automatic keyword mapping from user requests - **Time axis handling**: Supports both date-based and step-based time axes ## Error Handling All tools return descriptive error messages if: - Output directories are not found - .SMSPEC files are missing - Requested metrics are not available - Case files cannot be found - Plot generation fails ## Metric Resolution The tool automatically resolves metric keywords from user requests: - Direct keywords (e.g., "FOPT") are used as-is - Natural language (e.g., "cumulative oil production") is mapped to keywords - Manual hints from `simulator_manual` can help with keyword mapping - Multiple metrics can be plotted together using comma-separated keywords ## References - [Tool Decision Tree](references/TOOL_DECISION_TREE.md) - Routing logic - [Simulation Tools README](../../tools/README.md) - Detailed tool documentation
View on GitHub