Chart is the venerable charting library in pure Haskell, and is a front-end to diagrams. It is a full-featured and battle-hardened library, actively maintained and would be my first recommendation if you need to get a chart together.
Compared to Charts and diagrams, chart-svg focuses on producing SVG which makes the backend needs much simpler. It has a philosophy of “turtles all the way down” with a limited number of chart types, and the ability to see an axis (say) as also being just another chart. An error bar is just a type of line bar in chart-svg whereas it’s a specific plot in Chart, so if you need an error bar in chart-svg, you’ll have a bit more work to do. But if you need to thicken all the hud elements a touch and add a blue tinge, then chart-svg has your back, lol.
chart-svg’s automated scaling is probably the main talking point versus any other library or approach. It strives to provide automatic selection of ticks and seamless composition of chart elements so they’re always well-adjusted to each other and to the data. When it works well you won’t notice it happening, but when it breaks, you’ll quickly see a right, royal mess on the screen.
prettychart was inspired by reanimate and especially how it uses runhaskell as a bridge to the browser. There is also hyper-haskell which provides an interactive graphical experience via electron.