Sorry for me being slow to understand, but yes, you are correct. htmx allows you to load components on a page without full page reloads. What you put in those 'components' is up to you. You could use different javascript libraries for these visual components. htmx has no visual components like this that I'm aware of.
It works well with py4web because it allows py4web grids or forms to be loaded/reloaded dynamically without page reloads.
If your visualization is based on other dynamic data on your page you could force reloads of the visualization portion as the dynamic data changes. But, the visual component would be a javascript library.
Sorry for the confusion, I have a few web2py apps/pages that use javascript charting libraries, but I haven't rewritten them with py4web/htmx yet.
I'll be taking a look at the google datastudio stuff - look interesting.
-Jim