Chart Prompts

1,337 ways to dress a line or bar chart, 669 light and 668 dark. Open any chart to see it full size and copy a prompt that gives your own chart the same look.

Every chart uses illustrative data. The prompts work with any coding agent and any charting library; they describe colors, type, spacing and marks precisely enough to reproduce each look.

← More from Emergent Mind Labs

Use of Force bar chart, dark theme: Slate transparency report with grouped bars, a rate line and a methodology panel.

Use of Force

DarkBar

Slate transparency report with grouped bars, a rate line and a methodology panel.

  • Deep slate#151B26
  • Steel#8491A6
  • Sky#7DD3FC
  • Apricot#FDBA74
  • Rate white#FFFFFF

Prompt for your coding agent

Paste it with your chart's code. It restyles your data to match this chart.

Restyle my chart in the "Use of Force" style described below. Keep my data, chart type, title meaning and units; change only the presentation. Use the charting library this project already uses (plain SVG if there is none). If the library can't express a detail, draw it in a custom layer instead of dropping it. Measurements assume a 960 x 600 chart; scale them proportionally.

Mood: a public transparency report from a police department, set on deep slate. Sober, careful and accountable: muted accessible colors, a secondary rate line in its own panel and a methodology note that explains how things were counted.

Colors (use these exact values):
- Page: #151B26. Methodology panel: #1C2433 with a 1px #2E3A4F border, 4px radius and a 3px sky stripe on its left edge.
- Series: #8491A6 (steel), #7DD3FC (sky), #FDBA74 (apricot). Rate line and its labels: #FFFFFF.
- Ink: #E8ECF2. Secondary text: #8C97A8. Gridlines #263042, baseline #4A5568. Eyebrow and panel heading in sky.

Typography (Google Fonts):
- Libre Franklin 700 for the title (28px, white, sentence case, stating the rate change) and the panel's headline figure (26px apricot).
- Work Sans for everything else: eyebrow 12px 600 uppercase, 2px letter-spacing; subtitle 13.5px gray naming both panels; legend 12.5px 500; panel titles 12px 600 (rate in white, counts in gray); axis labels 12px (rate panel ink, count panel gray); rate value labels 12px 600 white; panel heading 11.5px 600 uppercase with 1.8px letter-spacing; panel body 12.5px on 19px leading; footer 11.5px.

Layout:
- 56px side margins. Eyebrow y 50, title y 88, subtitle y 114, legend row y 144 with square swatches and a line-with-ring swatch for the rate.
- Two separately framed panels from x 96 to 612 sharing one category axis, never a right-hand second axis: a short rate panel from y 204 to 280 (scale about 20 to 45, gridlines at 20, 30, 40) with its title "Rate per 1,000 arrests" at y 178, then about 58px of clear space, then the counts panel from y 338 to 492 (0 to 500) titled "Incidents" at y 318. Panel titles align with the 56px margin; each panel has its own left axis.
- Methodology panel at x 676 to 904, y 176 to 506: heading, three short note paragraphs, a divider, then a large percent-change figure with a two-line caption.
- Footer rule at y 548, source left, a publication note right.

Axes and grid:
- Horizontal 1px #263042 gridlines in each panel, with a 1px #4A5568 line closing the bottom of each panel. Count bars start at zero; the rate panel may start above zero because it is a line.
- Category labels 22px below the baseline; the latest period in 600 white.

Marks:
- Bar chart: grouped columns, 20px wide with 3px gaps inside a group, 2px top radius, in steel, sky, apricot order. The rate as a thin 1.6px white line in the upper panel with a 5px page-colored halo, open dots (r 3.6, page fill, white stroke) and value labels 13px above each dot, each dot centered over its year's bar group.
- Line chart: one 2.4px line per series in the same three colors with r 3.5 dots, the rate as a thinner 1.6px white line with open dots in its own upper panel, and the same methodology panel.

Avoid: saturated reds, alarm styling, gradients, shadows, 3D, and dual axes (a rate on a right-hand scale over the counts).

When you're done, render the chart and check that each rate equals total incidents divided by arrests times 1,000, the two panels have clear space between them, the rate labels stay inside the rate panel, and the methodology text stays inside its panel.