Are you intrigued by nomograms but have no idea how to go about drawing them? PyNomo is an amazing, free software package for drawing precision nomograms. The output is in vector form in a PDF or EPS file, so it can be printed in any size and still retain its sharpness. PyNomo directly supports 9 basic types of nomograms based simply on the format of the equation, so for these types there is no need to convert the equation to the standard nomographic determinant or use geometric relations. But it also supports compound nomograms as well as more complicated equations that have been cast into general determinant form, so it can produce output for any equation that can be plotted as a nomogram.
When I started writing an essay on using PyNomo my plans were to show three examples of nomograms. But I had so much fun making really cool nomograms that the essay turned out to be more of a user’s manual, with examples of all the supported types and descriptions of the many parameters you can use to customize your nomograms. Leif Roschier, the author of the software, spent a great deal of time reviewing draft versions of the essay and making software updates for new features that were rolled into it, so the essay is comprehensive in scope and quite complete in details and practical advice. PyNomo is clearly my choice for drawing nomograms going forward, and I think you will find it as uniquely wonderful as I have.
The essay is too long and the example nomograms too detailed to be rendered in HTML here. The PDF version of the essay (Version 1.1) can be found here. The PyNomo website, which also contains many examples, is found here.
[NEW – December 21, 2011]: Detailed instructions on downloading and installing all required software applications onto a Windows XP or Windows 7 PC can be found here.
Updated October 19, 2009, to Version 1.1 for the new features of PyNomo Release 0.2.2:
- Automatic spacing of tick marks along scales—more tick marks where space is available and less where it’s crowded.
- Drawing of sample isopleths between specified values on scales.
- Printing of only significant digits of scale values by default, producing a cleaner-looking nomogram overall.
Wow, Ron, that is great – simple and comprehensive.
My nomography time (what little I have had) has been spent on a project that has taken me a lot longer than I had hoped.
My plan is to use the free package R to fit nomographs to data, and then – either using the graphical facilities in R or by linking R with to Pynomo in some fashion (R talks to Python and vice-versa) produce a nomogram.
However, R – while powerful – takes a fair bit of time to learn. I am happy writing functions in it, but getting it to the stage of producing an R-package will be a while yet, and then I have to get Python running on my machine and see what will be easiest. At least this document looks like the Pynomo side of things will be easier for me to learn!
Thanks, Glen. I’d really be interested in seeing your project when it gets to the point where you’re willing to provide a beta version for testing—it sounds very interesting and useful. — Ron
Thanks! — Ron
I’m sure this article helps new users of PyNomo to turn into nomographers and works as a reference for experienced ones. The information on pynomo.org site is still quite limited and this article is a major contribution to the PyNomo documentation. Personally, I think this article is the best acknowledgement for the project since I started writing PyNomo.
When I wrote my first nomography essay a year and a half ago I had just come across your PyNomo site, so I referenced it and wrote that I had not reviewed the software yet. At the time I considered it an unlikely task to write a program to allow someone to create nomograms of much variety and sophistication. Was I wrong about that! Your collection of scripting parameters provides a really versatile set of tools to customize a nomogram in very creative ways. I would try things and think, “It won’t really draw a circular scale, or a scale that bends back around on itself…” and to my surprise it would do exactly that. It’s so versatile I’m planning on using it to create diagrams of scales and lines for computing mechanisms in a future essay (as in the logarithm computer here). — Ron
Ron, this is an incredible, wonderful piece of work, and it reflects your passion for nomography. I am in awe of the work that you and Leif are doing to keep this craft — a beautiful combination of art and science — alive. For awhile I was in despair that nomography was dying, but now I am much more optimistic. And I’m making some progress with the medical users, so we may breathe new life into this part of mathematics. If people only appreciated what a great communication tool nomographs are, bridging the gap in so many domains between the expert specialist and the everyday practitioner.
I look forward to the day when I can build all my nomographs from scratch to finished product using PyNomo.
Hi Joe! This means a lot to me coming from you. When I first started looking on the web for information on nomograms a couple of years ago, your site was one of the very few good ones I found. So you’ve been working to keep these creations alive for longer than I have. I’ve seen some of your nomographic work for the medical community, really high quality work, and I have no doubt that you’ll continue to make successful inroads there. — Ron
Thanks for the background on nomograms and great tutorial on PyNomo.
I downloaded all the requisites and when I installed PyNomo there is no program installed in my computer. Please help.
Hi Epifanio. PyNomo is simply a Python program, so there is no PyNomo program installed on the computer. Rather, the general Python language compiler is installed and then PyNomo is installed as a package in Python. Then you run a PyNomo script by opening a command prompt (or DOS) window for Windows or a Terminal window for Mac OSX and typing the command “python” followed by your PyNomo script filename. Since there are several supporting software packages to install, the best thing to do is to go to the installation page at the PyNomo website here and click on the link for a Windows or a Mac OSX installation, whichever you have. There are detailed steps there that should help with the installation. — Ron
This looks fantastic and I’d really love to try it out, but…
I’ve never used Python before. I downloaded and installed Python, MiKTeX, and all the prerequisite packages/modules, along with PyNomo itself. I can’t get any of the examples to work. I keep getting an error that “close_fds is not supported on windows”. It seems from the Traceback that the problem might be with PyX. Have you any idea how I might resolve this, or where I might find someone who can?
I can send a screengrab of the command window to anyone who’s interested enough to help.
Hugh and I corresponded on this problem right after this comment, and we independently solved the problem. When installing the necessary support packages for PyNomo, the older version 2.6 of Python needs to be installed and also the older version 0.10 of the PyX package. I’ve now updated the essay above to include a link to a PDF file of very detailed instructions on installing PyNomo and the other required packages on a Windows XP or Windows 7 PC, with a helpful addition from Hugh in one section. Thanks, Hugh! — Ron
I am a 50 something chemical engineer. When I was studying, personal computers were not around and nomograms were at the heart of solving many chemical engineering problems. Fast forward to 2012. I lecture post graduate students on a part time basis and want to introduce them to nomograms as the two major benefits I perceive are firstly that it provides a simple and fast method to check the accuracy of a calculation performed either by oneself or others and secondly provides a feel of the solution space which is often only achieved through experience. The installation guide works like a dream and I look forward to using the PyNomo software to pass on the benefits of nomograms to my students. Thank you for your passion and contributions.
Downloaded Python, installed all the libraries, and finished working on my first nomogram. A simple speed time distance formula. Ron, Leif, thank you so much for introducing me to this unique program. I’m new to python and new to nomography so I’m learning all sorts of new things with these two. I’ve been wanting to do more with python but never have found an interesting project to use it on. I’ve done simple programs, like tic tac toe or hangman, learning the basics but nothing productive. Now with PyNomo I can use python to actually produce something of use. Now with PyNomo I can print out a piece of paper to do those calculations that once had me doing repetitive figuring on a calculator. All this you already know, I’m sure. I kinda wish I had been exposed to this back in school.
Anyways, I just wanted to say “Thank You” and am looking forward to learning and making more nomograms in the future.
You’re welcome, Richard! Let me know if you need any help with designing nomograms or have any questions about PyNomo. — Ron
I was trying to access the pynomo website, but it seems to be down…. does anyone know about an alternative site (I was looking for the software documentation page on pynomo.org/wiki but had no luck.
I used the excellent program pynomo to draw the nomogram for this recent article in the Journal of Seismology: https://link.springer.com/article/10.1007/s10950-019-09885-4 entitled “Nomogram to help explain probabilistic seismic hazard”. I strongly recommend pynomo as a very powerful tool for drawing nomograms. The learning curve is a little steep but the examples on the website help as does some trial and error.
Thanks, Ron for this significant contribution to the understanding of how to use appropriately PyNomo software and here, also, my recognition to Leif Roschier who undoubtedly has made a major breakthrough to the applied nomography with PyNomo. As an associate professor at an engineering university, I plan to make nomograms for my students, teach them about this “forgotten” field, and even publish a useful nomogram in a certain scientific journal, if it deserves it.