fastchart 1.3.0 — SVG vs PNG vs JPG vs WebP

58 chart variants from the README, rendered four ways: renderSvg() (vector source), renderPng() (plutovg + libpng), renderJpeg() at default quality 88 (plutovg + libjpeg-turbo), renderWebp() (plutovg + libwebp). Generated 2026-06-19 14:25.

Total bytes: SVG 2,640.4 KB · PNG 3,513.9 KB · JPG 3,346.9 KB · WebP 1,633.0 KB.

1. LineChart — daily active users

Source: docs/examples/01_line_basic.php

SVG (vector) 41.3 KB
PNG (plutovg → libpng) 48.7 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 45.5 KB
JPG render
WebP (plutovg → libwebp) 21.8 KB
WebP render

2. AreaChart — stacked tiers

Source: docs/examples/27_area_stacked.php

SVG (vector) 56.9 KB
PNG (plutovg → libpng) 59.4 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 55.0 KB
JPG render
WebP (plutovg → libwebp) 28.2 KB
WebP render

3. BarChart — grouped (tickets opened vs closed)

Source: docs/examples/03_bar_grouped.php

SVG (vector) 64.0 KB
PNG (plutovg → libpng) 48.3 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 67.9 KB
JPG render
WebP (plutovg → libwebp) 23.1 KB
WebP render

4a. BarChart — horizontal, stacked, with SLA bands

Source: docs/examples/04_bar_horizontal.php

SVG (vector) 61.9 KB
PNG (plutovg → libpng) 44.3 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 60.5 KB
JPG render
WebP (plutovg → libwebp) 21.6 KB
WebP render

4b. BarChart — floating bars (forecast salary band)

Source: docs/examples/28_bar_variants.php

SVG (vector) 66.3 KB
PNG (plutovg → libpng) 44.6 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 48.1 KB
JPG render
WebP (plutovg → libwebp) 18.9 KB
WebP render

4c. BarChart — layered stack (visual envelope)

Source: docs/examples/28_bar_variants.php

SVG (vector) 56.7 KB
PNG (plutovg → libpng) 42.0 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 51.5 KB
JPG render
WebP (plutovg → libwebp) 19.9 KB
WebP render

4. ScatterChart — with quadratic trend

Source: docs/examples/06_scatter_trend.php

SVG (vector) 66.8 KB
PNG (plutovg → libpng) 65.1 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 56.2 KB
JPG render
WebP (plutovg → libwebp) 28.4 KB
WebP render

5. BubbleChart — risk vs effort vs cost

Source: docs/examples/14_bubble.php

SVG (vector) 45.8 KB
PNG (plutovg → libpng) 53.3 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 42.2 KB
JPG render
WebP (plutovg → libwebp) 19.7 KB
WebP render

6. StockChart — OHLCV + MA overlays + volume

Source: docs/examples/07_stock_candle_ma.php

SVG (vector) 96.9 KB
PNG (plutovg → libpng) 118.8 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 173.0 KB
JPG render
WebP (plutovg → libwebp) 77.7 KB
WebP render

7. RadarChart — feature parity scorecard

Source: docs/examples/08_radar.php

SVG (vector) 46.5 KB
PNG (plutovg → libpng) 113.4 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 67.7 KB
JPG render
WebP (plutovg → libwebp) 40.8 KB
WebP render

8. PolarChart — antenna gain pattern

Source: docs/examples/16_polar.php

SVG (vector) 24.9 KB
PNG (plutovg → libpng) 126.9 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 67.1 KB
JPG render
WebP (plutovg → libwebp) 41.0 KB
WebP render

9. SurfaceChart — 2D scalar field

Source: docs/examples/15_surface_contour.php

SVG (vector) 33.7 KB
PNG (plutovg → libpng) 18.0 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 47.8 KB
JPG render
WebP (plutovg → libwebp) 12.8 KB
WebP render

10. ContourChart — filled isolines

Source: docs/examples/15_surface_contour.php

SVG (vector) 51.6 KB
PNG (plutovg → libpng) 78.7 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 61.4 KB