It can be done using Matplotlib if you choose the 'side' option in the command fo the violin plot:
VA = axs.violinplot([Q1a, Q2a, Q3a, Q4a, TotalMarks_a],
side='low', showextrema=False, showmeans=True)
VB = axs.violinplot([Q1b, Q2b, Q3b, Q4b, TotalMarks_b],
side='high', showextrema=False, showmeans=True)
The full example is on https://github.com/iddoamit/PythonGraphGallery/tree/main/Asymmetric%20violin