Some programs have a graphical interface that allows users to edit the "chart", for example Blender:
Blender
If I have a basic data structure (perhaps a directed graph?), How to draw a clean diagram on the screen without overlapping nodes / confusing users? Are there known algorithms?
There is a free Graphviz tool , it has many built-in diagram layout algorithms. Since this is an open source project, I believe that you can find useful information there.