Creating energy profile diagrams for publication Is there automated software to create energy profile diagrams like the ones below?




One could use something like Illustrator or Inkscape, but they aren't automated, are expensive (Illustrator), are difficult to use, and wouldn't be practical for anything with more than a dozen energy levels. These diagrams don't look like they were hand-drawn, but I could be mistaken.

Ideally, it would be written in Python, but something in LaTeX or TikZ would be workable as well.

More specifically, I think this could be improved upon quite a bit.
PyEnergyDiagrams

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()
diagram.add_level(0,'Separated Reactants')
diagram.add_level(-5.4,'mlC1')
diagram.add_level(-15.6,'mlC2','last',)
diagram.add_level(28.5,'mTS1',color='g')
diagram.add_level(-9.7,'mCARB1')
diagram.add_level(-19.8,'mCARB2','last')
diagram.add_level(20,'mCARBX','last')


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 show_IDs=True:

diagram.plot(show_IDs=True)




And then you can use:

 diagram.add_link(left_ID_levetobelinked,right_ID_levetobelinked)


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.