NCL is quite good indeed, but I would like to know whether there are other options.
Why restrict yourself to dedicated software? In my experience you quickly outgrow dedicated software and find yourself wanting to do something that only general purpose software, with a flexible system, can do.
Often dedicated software is only used because its the convention, or because only it can read the file formats.
If you want real flexibility you need a first-class programming language with a top-notch graphics capability, and that would mean looking at Python or R - both have packages for reading spatial data, and great plotting functions.