You can also generate Vega(lite) JSON: https://vega.github.io/vega-lite/
And then pick your favourite language/library that generates that : https://vega.github.io/vega-lite/ecosystem.html
If needed you can switch to a different library/language while keeping the end result the same (or use different libraries/languages for different parts of your visualization, depending on which is best at a particular task)