Many classical graph visualization algorithms have already been developed over the past decades. However, these algorithms face difficulties in practice, such as the overlapping node problem, large graph layout and dynamic graph layout. In order to solve these problems, this paper aims to systematically address algorithmic issues related to a novel framework that describes the process of graph visualization applications. First of all, a framework for graph visualization is described. As the important parts of this framework, we then develop two effective algorithms for filtering and clustering large graphs for the layouts. As for the dynamic graph layout, a new approach to removing overlapping nodes called force-transfer algorithm is developed. The framework has been implemented in a prototype called PGA to demonstrate the performance of the proposed algorithms. Finally, a case study is provided.