I use my own script. I have posted it on GitHub now.
This is the final result:
It is quite easy to use, on the GitHub readme there is a small tutorial. You have to create an instance of ED class and then add the energy levels to it.
from energydiagram import ED
diagram = ED()
To add the links between the levels you can have a look to the IDs of the level using this the argument of the function plot
And then you can use:
Export to pgf,pdf and svg
You can export it just saving the plot from the GUI button or programmatically in different formats for publications using matplotlib backend.
I prefer to export the plot in
.pgf and then I import it in the LaTeX document this allow a full control over fonts and appearance of the figure.
For reaching better quality you have to change a little bit the autogenerated .pgf file.
The first thing you have to do is to find and replace − with -.
Later you can follow the procedure in this answer so that the font of the figure matches with the font size and type of the document.