Just to clarify, Bokeh is primarily a tool for generating dynamic web visualizations in browsers, although it doe also have APIs for generating PNGs and SVGs (with some optional dependencies installed). But if your only use case is static images, you might also look at Matplotlib.
Just a quick update here - after asking around a bit, I ended up using PIL (Pillow) and was able to write a Python program to produce exactly what I wanted, including glyphs - here’s the finished product, and it’s a lot crisper than the version I originally made, which involved Photoshopping screenshots of the output of a program and adding lots of (not very well lined up) lines and glyphs! And of course, it’s very customisable.
Thanks to people on here and other Python communities for giving me suggestions - I’m very much a Python newbie, so just knowing I wasn’t asking for the impossible was very helpful, and gave me the confidence to just try it all out!