Evolutionary algorithms (EAs) are widely employed to solve a broad range of optimization problems. Even though they work in an algorithmically simple manner, it is not always easy to understand what is going on during a particular optimization run. It is especially desirable to gain further insight into the state and course of the algorithm if the optimization does not yield the expected results or if we are not sure whether the result achieved is really the best result possible. During an optimization run an EA produces a vast amount of data. The extraction of useful information is a nontrivial task. In this article, we review visualization methods used to extract this useful information. We also demonstrate the application of visualization techniques and explain how they help us to understand the course and state of the EA. This extra information gained by the use of visualization techniques is often the difference between a good result and a very good result. In complex real-world applications, merely achieving a good result often means that the approach has failed. On the other hand, a success means large gains in productivity or safety or a decrease in costs.