5.4 KiB
5.4 KiB
render_data_viz usage guide
This tool renders data visualization resources. Use the uri field to specify the visualization type, and pass all parameters in the data object.
Supported URIs:
ui://data-dashboard/metrics— Metric card dashboardui://data-dashboard/chart— Single chart (line, bar, pie, radar, scatter, gauge)ui://data-dashboard/multi-chart— Multiple charts in a grid layout
1. Metrics — ui://data-dashboard/metrics
When to use: KPIs, stats, numerical summaries, side-by-side comparisons.
render_data_viz(
uri="ui://data-dashboard/metrics",
data={
"title": "Sales Overview",
"metrics": [
{"label": "Revenue", "value": "$12,345", "change": "+12.5%", "change_type": "up"},
{"label": "Users", "value": "1,234", "change": "-3.2%", "change_type": "down"},
{"label": "Conversion", "value": "4.5%", "change_type": "neutral"}
]
}
)
2. Chart — ui://data-dashboard/chart
When to use: trends, comparisons, distributions, compositions, single metric gauges.
Line chart — trends over time
render_data_viz(
uri="ui://data-dashboard/chart",
data={
"title": "Monthly Revenue",
"chart_type": "line",
"data": {
"categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
"series": [
{"name": "2024", "data": [820, 932, 901, 934, 1290, 1330]},
{"name": "2025", "data": [620, 732, 801, 1034, 1190, 1530]}
]
},
"smooth": true
}
)
Bar chart — comparisons
render_data_viz(
uri="ui://data-dashboard/chart",
data={
"title": "Sales by Region",
"chart_type": "bar",
"data": {
"categories": ["North", "South", "East", "West"],
"series": [
{"name": "Q1", "data": [320, 302, 341, 374]},
{"name": "Q2", "data": [220, 182, 191, 234]}
]
},
"stacked": true,
"show_label": true
}
)
Pie chart — proportions
render_data_viz(
uri="ui://data-dashboard/chart",
data={
"title": "Traffic Sources",
"chart_type": "pie",
"data": {
"series": [{
"name": "Sources",
"data": [
{"name": "Search", "value": 1048},
{"name": "Direct", "value": 735},
{"name": "Email", "value": 580},
{"name": "Social", "value": 484}
]
}]
}
}
)
Radar chart — multi-dimensional
render_data_viz(
uri="ui://data-dashboard/chart",
data={
"title": "Skill Assessment",
"chart_type": "radar",
"data": {
"categories": ["Sales", "Admin", "Tech", "Support", "Marketing"],
"series": [
{"name": "Alice", "data": [4200, 3000, 20000, 35000, 50000]},
{"name": "Bob", "data": [5000, 14000, 28000, 26000, 42000]}
]
}
}
)
Scatter chart — correlation
render_data_viz(
uri="ui://data-dashboard/chart",
data={
"title": "Height vs Weight",
"chart_type": "scatter",
"data": {
"series": [
{"name": "Male", "data": [[161, 51], [167, 59], [159, 49], [175, 73]]},
{"name": "Female", "data": [[150, 45], [160, 55], [165, 60], [155, 50]]}
]
}
}
)
Gauge chart — single KPI
render_data_viz(
uri="ui://data-dashboard/chart",
data={
"title": "CPU Usage",
"chart_type": "gauge",
"data": {"series": [{"name": "CPU", "data": [72.5]}]}
}
)
Chart options (inside data):
width: CSS width, default "100%"height: CSS height, default "400px"theme: "light" (default) or "dark"stacked: stack series (line/bar), default falsesmooth: smooth curves (line), default falseshow_label: show data labels, default false
3. Multi-chart — ui://data-dashboard/multi-chart
When to use: comprehensive overviews, multiple related charts, business reports.
render_data_viz(
uri="ui://data-dashboard/multi-chart",
data={
"title": "Monthly Business Report",
"columns": 2,
"theme": "light",
"charts": [
{
"title": "Revenue Trend",
"chart_type": "line",
"data": {
"categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
"series": [{"name": "Revenue", "data": [820, 932, 901, 934, 1290, 1330]}]
},
"smooth": true
},
{
"title": "Sales by Region",
"chart_type": "bar",
"data": {
"categories": ["North", "South", "East", "West"],
"series": [
{"name": "Q1", "data": [320, 302, 341, 374]},
{"name": "Q2", "data": [220, 182, 191, 234]}
]
}
},
{
"title": "Traffic Sources",
"chart_type": "pie",
"data": {
"series": [{"name": "Sources", "data": [
{"name": "Search", "value": 1048},
{"name": "Direct", "value": 735},
{"name": "Social", "value": 484}
]}]
}
},
{
"title": "Server Load",
"chart_type": "gauge",
"data": {"series": [{"name": "CPU", "data": [67]}]},
"height": "300px"
}
]
}
)
Tips:
- Always choose the most appropriate chart_type for the data
- Use line for time-series trends, bar for category comparisons
- Use pie for proportions (limit ~7 segments), radar for multi-dimensional scores
- Use scatter for correlation, gauge for single KPI (0-100)
- Set height: "400px" for most charts, "300px" for gauge
- Multi-chart: columns=2 for 2-4 charts, keep 4-6 max per call