Data Visualization — DBX Studio
Chart Types Available
The generate_chart tool supports these types:
| Type | Best For |
|------|----------|
| bar | Comparisons between categories |
| line | Trends over time |
| pie | Part-to-whole relationships (< 7 slices) |
| scatter | Correlation between two numeric values |
| area | Cumulative trends over time |
| histogram | Distribution of a numeric column |
Workflow
- Understand what the user wants to visualize
- Write the SQL query to get the data (
data_query) - Call
generate_chartwith the config - Confirm chart title and axes are meaningful
generate_chart Parameters
{
"chart_type": "bar",
"title": "Monthly Revenue by Product Category",
"x_axis": "category",
"y_axis": "revenue",
"data_query": "SELECT category, SUM(amount) AS revenue FROM orders GROUP BY 1 ORDER BY 2 DESC",
"group_by": "category"
}
Chart Selection Guide
User says "trend" or "over time" → line chart, x_axis = date column
User says "compare" or "by category" → bar chart
User says "breakdown" or "share" → pie chart (only if ≤ 7 categories)
User says "distribution" or "spread" → histogram
User says "relationship" or "correlation" → scatter
Data Query Patterns
Bar: Top N categories
SELECT category, COUNT(*) AS count
FROM orders
GROUP BY category
ORDER BY count DESC
LIMIT 10
Line: Time series
SELECT DATE_TRUNC('day', created_at) AS date, SUM(amount) AS revenue
FROM orders
WHERE created_at >= NOW() - INTERVAL '30 days'
GROUP BY 1
ORDER BY 1
Pie: Proportion breakdown
SELECT status, COUNT(*) AS count
FROM orders
GROUP BY status
Design Principles
- Always give the chart a descriptive title including the time period if relevant
- Keep x_axis and y_axis names human-readable (not raw column names)
- For large result sets, aggregate before charting (avoid raw row-level data)
- Pie charts: max 7 slices, group remainder as "Other"