2D visualization in Slicer (Spectrogram, contour plot)

You can create static plots using any of the Python plotting packages (there are literally hundreds of them). Integrating interactions is a bit more tricky.

Visual appearance of QWT plots are about just as rudimentary as VTK (looks like designed by engineers and not artists). So, I’m not sure it would be a significant step up from VTK, and it would require some work to connect it with VTK data structures (that Slicer uses not just for visualization but as data model) and with the Slicer GUI.

We use VTK plots for real-time spectrogram plots of diffuse reflective spectroscopy, see for example here:

It may be better to use VTK plots for interactive visualization and some Python packages for large, complex, static plots.