Charts

Your AI assistant uses these tools to add data visualizations to your slides — bar charts, pie charts, line graphs, and more. Just describe the data and chart type you want.

Charts are created with slides_create_chart and updated with slides_update_chart. Charts are rendered in the editor and exported to PowerPoint with full data and styling.

For other element types (shapes, text, lines), see Element Operations. For images, see Images.

Why Rideful Charts

  • Theme-aware defaults — Charts auto-inherit your deck's color palette. No manual color picking.
  • Transparent background — Charts render over the slide background, not in a white box. Works on dark and light slides.
  • Agent-driven creation — Describe the chart you want and your AI assistant builds it — no spreadsheets, no chart wizards.
  • Surgical updates — Ask your agent to change one series, update a title, or adjust axis bounds — without recreating the chart.
  • Native PowerPoint export — Charts export as editable PowerPoint charts with embedded data, not images. Click any chart in PowerPoint to view and edit the underlying data.

Creating a Chart

When you ask to “add a bar chart showing quarterly revenue” or “put a pie chart on slide 3,” your assistant uses slides_create_chart to create the chart with your data, position it on the slide, and apply styling options.

Parameters

ParameterTypeRequiredDescription
deckIdstringYesThe deck ID
slideIdstringYesThe slide to add the chart to
x, ynumberYesPosition in pixels from top-left corner
width, heightnumberYesDimensions in pixels. Minimum recommended: 640 × 400
chartTypeenumYes'bar', 'line', 'area', 'pie', 'scatter', 'bubble', 'doughnut', or 'radar'
seriesarrayYesArray of data series. Each: { name, labels, values, color? }. Scatter/bubble charts use xValues (numeric) instead of labels. Bubble charts also require sizes.
titlestringNoChart title displayed above the chart
showLegendbooleanNoShow or hide the legend
legendPosenumNo'b' (bottom), 't' (top), 'l' (left), 'r' (right), 'tr' (top-right)
catAxisTitle, valAxisTitlestringNoAxis titles for category and value axes
showValue, showLabel, showPercentbooleanNoShow data values, category labels, or percentages on data points
dataLabelPositionenumNo'bestFit', 'b', 'ctr', 'inEnd', or 'outEnd'
barGroupingenumNoBar charts only: 'clustered', 'stacked', or 'percentStacked'
barDirenumNoBar charts only: 'col' (vertical) or 'bar' (horizontal)
lineSmoothbooleanNoLine charts only: smooth the line curves
lineDataSymbolenumNoLine charts only: 'circle', 'diamond', 'square', or 'none'
Styling & Axes
showCatGridLine, showValGridLinebooleanNoShow gridlines on category or value axis (default: off for clean presentations)
valAxisMinVal, valAxisMaxValnumberNoSet explicit min/max bounds for the value axis (default: auto-scale)
catAxisHidden, valAxisHiddenbooleanNoHide an axis entirely (useful for minimalist designs; auto-hidden for pie/doughnut/radar)
holeSizenumberNoDoughnut hole size as a percentage, 0–90 (default: 60)
chartFontFamilystringNoFont family for all chart text (title, legend, axis labels, data labels)
chartFontSizenumberNoBase font size in points. Title renders at 1.2×, data labels at 0.85×
chartFontColorstringNoFont color as hex (e.g., "#FFFFFF"). Auto-resolved from slide background if omitted
fillOpacitynumberNoFill opacity for series colors, 0–100. Defaults: 30 for radar, 50 for area, 100 for others

Example — Bar Chart

slides_create_chart({
  deckId: "deck_abc123",
  slideId: "slide_002",
  x: 60, y: 160,
  width: 640, height: 400,
  chartType: "bar",
  series: [
    {
      name: "Revenue",
      labels: ["Q1", "Q2", "Q3", "Q4"],
      values: [120, 180, 150, 210],
      color: "#4472C4"
    },
    {
      name: "Expenses",
      labels: ["Q1", "Q2", "Q3", "Q4"],
      values: [90, 110, 100, 130],
      color: "#ED7D31"
    }
  ],
  title: "Revenue vs Expenses",
  showLegend: true,
  legendPos: "b",
  barGrouping: "clustered",
  valAxisTitle: "USD (thousands)"
})

// Response:
// {
//   elementId: "elem_chart001",
//   type: "chart",
//   slideId: "slide_002",
//   chartType: "bar",
//   seriesCount: 2,
//   position: { x: 60, y: 160 },
//   size: { width: 640, height: 400 }
// }

Example — Pie Chart

slides_create_chart({
  deckId: "deck_abc123",
  slideId: "slide_003",
  x: 320, y: 160,
  width: 640, height: 400,
  chartType: "pie",
  series: [
    {
      name: "Market Share",
      labels: ["Product A", "Product B", "Product C", "Other"],
      values: [45, 25, 20, 10]
    }
  ],
  title: "Market Share 2025",
  showLegend: true,
  showPercent: true
})

Example — Styled Doughnut Chart

// Chart on a dark slide with custom styling
slides_create_chart({
  deckId: "deck_abc123",
  slideId: "slide_005",
  x: 60, y: 120,
  width: 640, height: 420,
  chartType: "doughnut",
  series: [
    {
      name: "Budget Allocation",
      labels: ["Engineering", "Marketing", "Sales", "Operations"],
      values: [45, 25, 20, 10],
      colors: ["#5EA8A7", "#277884", "#FE4447", "#AAB7B8"]
    }
  ],
  title: "Budget Allocation 2025",
  showPercent: true,
  holeSize: 70,
  chartFontFamily: "Inter",
  chartFontSize: 12,
  fillOpacity: 90
})

Supported Chart Types

TypeDescriptionBest For
barVertical or horizontal barsComparing categories
lineLine graph with optional markersTrends over time
areaFilled area under a lineVolume or cumulative trends
pieCircular segmentsProportions of a whole
doughnutPie chart with hollow centerProportions with a cleaner look
scatterX-Y data pointsCorrelations between two variables
bubbleScatter with variable-sized points (requires sizes array)Three-dimensional data
radarSpider/web chartMulti-axis comparisons

Updating a Chart

Once a chart is on a slide, your assistant can update its data, styling, position, and size using slides_update_chart. Only the fields you provide are changed — everything else stays the same.

Parameters

ParameterTypeRequiredDescription
deckIdstringYesThe deck ID
elementIdstringYesThe chart element ID. Find chart element IDs via slides_get_slides
chartTypeenumNoChange the chart type
seriesarrayNoReplace all series data
title, optionsvariousNoAny option from slides_create_chart (legend, axes, data labels, bar/line options, gridlines, font styling, fill opacity)
x, y, width, heightnumberNoReposition or resize the chart

Example

// Update the chart with new Q4 data
slides_update_chart({
  deckId: "deck_abc123",
  elementId: "elem_chart001",
  series: [
    {
      name: "Revenue",
      labels: ["Q1", "Q2", "Q3", "Q4"],
      values: [120, 180, 150, 245],
      color: "#4472C4"
    },
    {
      name: "Expenses",
      labels: ["Q1", "Q2", "Q3", "Q4"],
      values: [90, 110, 100, 125],
      color: "#ED7D31"
    }
  ],
  title: "Revenue vs Expenses (Updated)"
})

Chart Placeholders

When building a slide layout with multiple elements, your assistant can include chart placeholders in a single slides_bulk_create_elements call. Pass elementType: "chart" with a chartType to create a chart with auto-generated sample data. Then use slides_update_chart to populate it with real data.

This two-step approach lets the assistant plan the full slide layout atomically, then fill in chart data separately.

Example

// Step 1: Create layout with chart placeholder
slides_bulk_create_elements({
  deckId: "deck_abc123",
  slideId: "slide_004",
  elements: [
    {
      elementType: "shape",
      shapeType: "rectangle",
      x: 0, y: 0,
      width: 1280, height: 80,
      fillColor: "#1C2833",
      text: "Performance Dashboard",
      fontSize: 32,
      textColor: "#FFFFFF",
      role: "title"
    },
    {
      elementType: "chart",
      chartType: "bar",
      x: 60, y: 120,
      width: 560, height: 400
    },
    {
      elementType: "chart",
      chartType: "pie",
      x: 660, y: 120,
      width: 560, height: 400
    }
  ]
})

// Step 2: Populate with real data
slides_update_chart({
  deckId: "deck_abc123",
  elementId: "elem_chart_1",
  series: [{ name: "Revenue", labels: ["Q1","Q2","Q3","Q4"], values: [120,180,150,210] }],
  title: "Quarterly Revenue"
})

Tips

  • Minimum size — 640 × 400 px recommended for readability. Smaller charts may have overlapping labels.
  • Series colors — optional hex values (e.g., "#4472C4"). If omitted, colors are auto-assigned from the deck's theme palette.
  • Labels and values — every series must have the same number of labels and values. A mismatch will return a validation error.
  • Bubble charts — include a sizes array in each series to control point sizes.
  • Deleting charts — use slides_delete_element with the chart's element ID. No special cleanup is needed.
  • Export — charts are exported to PowerPoint with full data and styling. They render as native PowerPoint charts, not images.
  • Auto font color — when chartFontColor is omitted, chart text automatically picks a readable color based on the slide background — dark text on light slides, light text on dark slides. Override with an explicit hex value if needed.
  • Gridlines — gridlines are off by default for clean presentations. Enable with showValGridLine: true when data precision matters. Gridline colors auto-adjust for the slide background.
  • Font sizing chartFontSize is a base size. The title renders at 1.2× and data labels at 0.85× for balanced typography from a single value.

Related