Plotly offers more power and flexibility than chart.js and provides a much simpler API than D3 (it has D3 and webgl renderers).
The ecosystem is broad and includes React, Angular and other wrappers and language-interfaces for Python, Rust, Go, Scala and many others (incl Common Lisp).
If you start plotting a lot of data it can grow with you since it supports typed arrays and webgl rendering without undue boilerplate.
I like Plotly’s interactivity, but the Python API would be so much better if it was typed. I need to google which attributes to change to get anything done all the time. Copilot helps a bit but also constantly hallucinates plausible but not implemented plotly settings.
I also failed when trying to create a nice violin plot as implemented with matplotlib in the Shap library.
That said I tried using other charting libraries but Plotly’s interactivity is a killer feature others don’t offer in the same way.
If you start plotting a lot of data it can grow with you since it supports typed arrays and webgl rendering without undue boilerplate.
Disclaimer... I work for Plotly