Description
Description (*)
Following magento/magento2#21599, Magento recently switched from the deprecated Google Charts API to generating static chart images via image-charts.com (magento/magento2@f92c8fd).
That being said, the new charts are not in any way dynamic, and do not provide a user experience befitting an enterprise software package, for reasons including unclear labels, lack of gridlines, pixelation, branding, and poor styling.
For example, this is the current dashboard chart on a site running 2.3.2 Commerce:
Expected behavior (*)
Use a modern JavaScript chart library to build the dashboard charts on the client side.
Benefits
Using a client-side JS chart library would provide a far superior user experience than the current static images, in design, interactivity (tooltips), and usefulness.
Doing so would also reducing any possible security or privacy concerns from the current approach, which involves sending data to or including a third-party-hosted resource or API for the same purpose. With a client-side library responsible for rendering the data, no data would leave the premises, and no external resources would be added in to the sensitive admin panel area.
Additional information
There are numerous open-source JS chart libraries that would fit the purpose, including https://github.com/chartjs/Chart.js and https://github.com/flot/flot (both licensed MIT). My inclination would be Chart.js, given its more active contributor base, better documentation, and simple out-of-box responsive support.
In the process, the charts should also be switched from line to bar-type, to better reflect the nature of the underlying data (which is discrete sales figures, not continuous).
After integrating such a library, further improvements would be possible in the areas of changing timescale without reload; breaking down data by store; and more.