Install
openclaw skills install csv-to-chartUse when (1) user pastes or uploads CSV data and asks to generate a chart, graph, or visualization. (2) user wants to "plot" or "visualize" tabular data. (3) user provides data and says "make a chart", "show this as a graph", or "visualize this".
openclaw skills install csv-to-chartUse when (1) user pastes or uploads CSV data and asks to generate a chart, graph, or visualization. (2) user wants to "plot" or "visualize" tabular data. (3) user provides data and says "make a chart", "show this as a graph", or "visualize this".
This skill solves the specific problem of: user has tabular CSV data and needs a visual chart — not the raw numbers.
This skill IS NOT:
This skill IS activated ONLY when: chart/graph/visualization intent + CSV data are both present.
/csv-to-chartDefault mode. Reads CSV data and outputs a chart specification or renders the chart directly.
When to use: User provides CSV and explicitly asks for a chart, plot, graph, or visualization.
/csv-to-chart/suggestSuggests the most appropriate chart type based on data structure without generating the chart.
When to use: User is unsure which chart type fits their data.
Choose the most appropriate chart based on data shape:
| Data Shape | Recommended Chart |
|---|---|
| 1 numeric col + 1 category col | Bar chart (vertical or horizontal) |
| 2+ numeric cols, 1 category col | Grouped/stacked bar, line |
| 1 time-series numeric col | Line chart |
| 2 numeric cols (correlation) | Scatter plot |
| Proportions summing to 100% | Pie / donut chart |
| Single numeric column | Histogram |
| 3+ numeric cols, many rows | Heatmap or radar |
If user specified a chart type, validate it makes sense for the data; warn if mismatched.
Produce chart using a library appropriate to context:
matplotlib or plotlychart.js or plotly.jsmermaid flowchart for simple dataOutput the complete, runnable code block with the chart. Include axis labels, title, and legend.
A good output:
A bad output:
| Scenario | Bad Output | Good Output |
|---|---|---|
| Monthly sales data | Line chart with year as Y-axis | Line chart with month on X, sales on Y, labeled axes |
| Product categories | Pie chart with 20 slices | Horizontal bar chart, top 10 + "Other" |
| Two numeric columns | Static image without context | Scatter plot with axis labels and trend line |
| CSV with missing values | Drops rows silently | "Note: 3 rows omitted due to missing Q3 sales; treated as 0" |
references/ — Chart type decision tree, code templates for plotly/matplotlib/chart.js