Graphs are widely used for information visualization purposes, since they provide a natural and intuitive tation of complex abstract structures. The automatic generation of drawings of graphs has applications a variety of fields such as software engineering, database systems, and graphical user interfaces. In this paper, we survey algorithmic techniques for graph drawing that support the expression and satisfaction of user-defined constraints.