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
JPG render
WebP (plutovg → libwebp) 34.7 KB
WebP render

11. PieChart — donut with exploded slice

Source: docs/examples/05_pie_donut.php

SVG (vector) 32.3 KB
PNG (plutovg → libpng) 64.6 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 46.8 KB
JPG render
WebP (plutovg → libwebp) 25.1 KB
WebP render

12. GaugeChart — zoned half-circle

Source: docs/examples/10_gauge.php

SVG (vector) 20.3 KB
PNG (plutovg → libpng) 42.6 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 30.6 KB
JPG render
WebP (plutovg → libwebp) 18.0 KB
WebP render

13. LinearMeter — horizontal SLA bar

Source: docs/examples/36_linear_meter.php

SVG (vector) 17.0 KB
PNG (plutovg → libpng) 14.7 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 17.0 KB
JPG render
WebP (plutovg → libwebp) 6.7 KB
WebP render

14. GanttChart — Q4 release timeline

Source: docs/examples/17_gantt.php

SVG (vector) 54.9 KB
PNG (plutovg → libpng) 39.8 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 49.1 KB
JPG render
WebP (plutovg → libwebp) 18.9 KB
WebP render

15. BoxPlot — latency by service

Source: docs/examples/09_boxplot.php

SVG (vector) 59.4 KB
PNG (plutovg → libpng) 45.9 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 50.3 KB
JPG render
WebP (plutovg → libwebp) 19.5 KB
WebP render

16. Treemap — revenue by product line

Source: docs/examples/32_treemap.php

SVG (vector) 50.2 KB
PNG (plutovg → libpng) 36.1 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 48.3 KB
JPG render
WebP (plutovg → libwebp) 18.5 KB
WebP render

17. Funnel — signup → paid conversion

Source: docs/examples/33_funnel.php

SVG (vector) 43.9 KB
PNG (plutovg → libpng) 51.4 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 38.4 KB
JPG render
WebP (plutovg → libwebp) 21.0 KB
WebP render

18. Waterfall — Q3 income statement

Source: docs/examples/34_waterfall.php

SVG (vector) 55.5 KB
PNG (plutovg → libpng) 43.6 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 55.2 KB
JPG render
WebP (plutovg → libwebp) 19.1 KB
WebP render

19. Heatmap — hourly traffic, last week

Source: docs/examples/35_heatmap.php

SVG (vector) 35.0 KB
PNG (plutovg → libpng) 20.4 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 58.4 KB
JPG render
WebP (plutovg → libwebp) 16.7 KB
WebP render

20. BulletChart — Q3 revenue vs plan

Source: docs/examples/43_bullet.php

SVG (vector) 18.3 KB
PNG (plutovg → libpng) 15.8 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 16.6 KB
JPG render
WebP (plutovg → libwebp) 7.1 KB
WebP render

21. ParetoChart — defect categories with 80/20 line

Source: docs/examples/44_pareto.php

SVG (vector) 81.4 KB
PNG (plutovg → libpng) 65.6 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 66.7 KB
JPG render
WebP (plutovg → libwebp) 29.2 KB
WebP render

22. CalendarHeatmap — daily activity for one year

Source: docs/examples/45_calendar_heatmap.php

SVG (vector) 59.0 KB
PNG (plutovg → libpng) 35.7 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 66.9 KB
JPG render
WebP (plutovg → libwebp) 33.3 KB
WebP render

23. SunburstChart — engineering workload by team

Source: docs/examples/46_sunburst.php

SVG (vector) 20.6 KB
PNG (plutovg → libpng) 58.1 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 38.3 KB
JPG render
WebP (plutovg → libwebp) 22.6 KB
WebP render

24. SankeyChart — store orders (4-layer: store → category → item → brand)

Source: docs/examples/47_sankey.php

SVG (vector) 158.5 KB
PNG (plutovg → libpng) 121.8 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 123.0 KB
JPG render
WebP (plutovg → libwebp) 60.3 KB
WebP render

25. MarimekkoChart — revenue mix by region & product

Source: docs/examples/48_marimekko.php

SVG (vector) 62.4 KB
PNG (plutovg → libpng) 46.6 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 60.8 KB
JPG render
WebP (plutovg → libwebp) 23.1 KB
WebP render

26. VectorChart — rotational vector field

Source: docs/examples/49_vector.php

SVG (vector) 39.2 KB
PNG (plutovg → libpng) 171.7 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 131.1 KB
JPG render
WebP (plutovg → libwebp) 83.4 KB
WebP render

27a. Code128 — alphanumeric, human-readable text

Source: docs/examples/41_code128.php

SVG (vector) 7.6 KB
PNG (plutovg → libpng) 8.0 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 19.5 KB
JPG render
WebP (plutovg → libwebp) 5.0 KB
WebP render

27b. Code128 — pure digits (encoded entirely in subset C)

Source: docs/examples/41_code128.php

SVG (vector) 8.8 KB
PNG (plutovg → libpng) 7.0 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 17.3 KB
JPG render
WebP (plutovg → libwebp) 4.8 KB
WebP render

27c. Code128 — compact bars only, no human-readable text

Source: docs/examples/41_code128.php

SVG (vector) 3.3 KB
PNG (plutovg → libpng) 2.0 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 11.9 KB
JPG render
WebP (plutovg → libwebp) 2.6 KB
WebP render

28a. QrCode — ECC level L (~7% recovery, smallest symbol)

Source: docs/examples/42_qrcode.php

SVG (vector) 13.6 KB
PNG (plutovg → libpng) 7.6 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 39.4 KB
JPG render
WebP (plutovg → libwebp) 11.5 KB
WebP render

28b. QrCode — ECC level M (~15% recovery, default)

Source: docs/examples/42_qrcode.php

SVG (vector) 13.6 KB
PNG (plutovg → libpng) 7.6 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 39.4 KB
JPG render
WebP (plutovg → libwebp) 11.5 KB
WebP render

28c. QrCode — ECC level Q (~25% recovery, logo overlays)

Source: docs/examples/42_qrcode.php

SVG (vector) 17.6 KB
PNG (plutovg → libpng) 10.4 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 45.8 KB
JPG render
WebP (plutovg → libwebp) 13.6 KB
WebP render

28d. QrCode — ECC level H (~30% recovery, outdoor / damaged)

Source: docs/examples/42_qrcode.php

SVG (vector) 21.6 KB
PNG (plutovg → libpng) 8.2 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 50.2 KB
JPG render
WebP (plutovg → libwebp) 16.8 KB
WebP render

29. Funnel — STYLE_CONE (3D-look band edges)

Source: docs/examples/52_funnel_cone.php

SVG (vector) 49.6 KB
PNG (plutovg → libpng) 67.4 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 45.1 KB
JPG render
WebP (plutovg → libwebp) 28.8 KB
WebP render

30. AreaChart — setBandMode (confidence envelope)

Source: docs/examples/53_area_band.php

SVG (vector) 60.5 KB
PNG (plutovg → libpng) 50.5 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 51.3 KB
JPG render
WebP (plutovg → libwebp) 25.6 KB
WebP render

31. PolarChart — INTERP_SMOOTH + addVectors

Source: docs/examples/54_polar_smooth_vectors.php

SVG (vector) 26.5 KB
PNG (plutovg → libpng) 105.7 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 63.1 KB
JPG render
WebP (plutovg → libwebp) 38.1 KB
WebP render

32. BubbleChart — log Y axis

Source: docs/examples/55_bubble_log_axis.php

SVG (vector) 36.3 KB
PNG (plutovg → libpng) 80.1 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 51.0 KB
JPG render
WebP (plutovg → libwebp) 28.0 KB
WebP render

33. BarChart — setImageMap (HTML hot-spots)

Source: docs/examples/56_image_map_bar_pie.php

Hover a bar to see the tooltip — hot-spots come from getImageMap(). Hrefs are defused to # in this demo.

PNG + HTML <map> 25.0 KB
Chart with hot-spots

34. ArcDiagram — module dependencies

Source: docs/examples/57_arc_diagram.php

SVG (vector) 28.9 KB
PNG (plutovg → libpng) 65.7 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 47.2 KB
JPG render
WebP (plutovg → libwebp) 29.4 KB
WebP render

35. ChordDiagram — travel between European cities

Source: docs/examples/58_chord_diagram.php

SVG (vector) 40.7 KB
PNG (plutovg → libpng) 161.5 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 98.0 KB
JPG render
WebP (plutovg → libwebp) 68.0 KB
WebP render

36. NetworkChart — force-directed clustered network

Source: docs/examples/59_network.php

SVG (vector) 37.9 KB
PNG (plutovg → libpng) 111.2 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 65.4 KB
JPG render
WebP (plutovg → libwebp) 38.1 KB
WebP render

37. PopulationPyramid — age and sex breakdown

Source: docs/examples/60_population_pyramid.php

SVG (vector) 47.2 KB
PNG (plutovg → libpng) 39.4 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 64.3 KB
JPG render
WebP (plutovg → libwebp) 18.5 KB
WebP render

38. ViolinPlot — request latency distribution

Source: docs/examples/61_violin.php

SVG (vector) 34.6 KB
PNG (plutovg → libpng) 61.6 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 46.6 KB
JPG render
WebP (plutovg → libwebp) 25.6 KB
WebP render

39. CirclePacking — source size by package

Source: docs/examples/62_circle_packing.php

SVG (vector) 42.4 KB
PNG (plutovg → libpng) 134.6 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 73.3 KB
JPG render
WebP (plutovg → libwebp) 45.2 KB
WebP render

40. Pictogram — pictorial fraction

Source: docs/examples/63_pictogram.php

SVG (vector) 25.5 KB
PNG (plutovg → libpng) 53.1 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 51.0 KB
JPG render
WebP (plutovg → libwebp) 30.6 KB
WebP render

41. VennDiagram — skill overlap across roles

Source: docs/examples/64_venn.php

SVG (vector) 27.6 KB
PNG (plutovg → libpng) 76.4 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 47.4 KB
JPG render
WebP (plutovg → libwebp) 30.5 KB
WebP render

42. WordCloud — issue tags by frequency

Source: docs/examples/65_wordcloud.php

SVG (vector) 64.2 KB
PNG (plutovg → libpng) 75.9 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 66.5 KB
JPG render
WebP (plutovg → libwebp) 39.7 KB
WebP render

43. SerpentineTimeline — release roadmap

Source: docs/examples/66_serpentine_timeline.php

SVG (vector) 43.3 KB
PNG (plutovg → libpng) 39.5 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 34.4 KB
JPG render
WebP (plutovg → libwebp) 17.0 KB
WebP render

44. Dendrogram — chart taxonomy tree

Source: docs/examples/67_dendrogram.php

SVG (vector) 58.0 KB
PNG (plutovg → libpng) 39.2 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 40.6 KB
JPG render
WebP (plutovg → libwebp) 17.5 KB
WebP render

45. Partition — icicle of source size

Source: docs/examples/68_partition.php

SVG (vector) 54.2 KB
PNG (plutovg → libpng) 34.7 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 43.9 KB
JPG render
WebP (plutovg → libwebp) 17.7 KB
WebP render

46. AreaChart — smooth stacked fill

Source: docs/examples/69_area_smooth.php

SVG (vector) 71.6 KB
PNG (plutovg → libpng) 55.5 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 56.3 KB
JPG render
WebP (plutovg → libwebp) 26.5 KB
WebP render

47. PieChart — variable-radius (rose)

Source: docs/examples/70_rose_pie.php

SVG (vector) 39.0 KB
PNG (plutovg → libpng) 63.5 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 46.6 KB
JPG render
WebP (plutovg → libwebp) 24.6 KB
WebP render

48. BarChart — radial (circular) bars

Source: docs/examples/71_radial_bar.php

SVG (vector) 29.8 KB
PNG (plutovg → libpng) 134.1 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 104.4 KB
JPG render
WebP (plutovg → libwebp) 61.8 KB
WebP render

49. StockChart — VWAP + ZigZag overlays, ATR/CCI/Williams %R panes

Source: docs/examples/38_stock_indicators.php

SVG (vector) 107.2 KB
PNG (plutovg → libpng) 141.0 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 151.8 KB
JPG render
WebP (plutovg → libwebp) 79.8 KB
WebP render

50. StockChart — Aroon + StdDev panes with SMA

Source: docs/examples/38_stock_indicators.php

SVG (vector) 108.1 KB
PNG (plutovg → libpng) 111.4 KB
PNG render
JPG q88 (plutovg → libjpeg-turbo) 133.6 KB
JPG render
WebP (plutovg → libwebp) 64.8 KB
WebP render