Gephi is an open source Java application that creates network visualizations from raw edge and node graph data. It’s very useful for understanding social network information; one of the project’s founders was hired by LinkedIn, and Gephi is now used for LinkedIn visualizations. There are several different layout algorithms, each with multiple parameters you can tweak to arrange the positions of the nodes in your data.
If there are any manual changes you want to make, to either the input data or the positioning, you can do that through the data laboratory, and once you’ve got your basic graph laid out, the preview tab lets you customize the exact appearance of the rendered result. Though Gephi is best known for its window interface, you can also script a lot of its functions from automated backend tools, using its toolkit library.