### 2. Concepts

#### 2.1. Overview

As described in the class diagram below, a complete XY Graph is composed of Legend, Title, Axes, PlotArea. The PlotArea will include Traces, Grids and Annotations. An XYGraph can also be wrapped into a ToolbarArmedXYGraph, which provides a toolbar for the interactive operations functionality.

There are two interfaces `IDataProvider` and `ISample` in the class diagram, which means the user can also implemented there own data provider or sample. This gives the possibilities to implement a different data provider with different data source or data storage structure for special applications, For example, the data source in the data provider could be from user input, database or files etc,. The storage structure could be array, queue, circular buffer or bucket buffer etc,. A default data provider `CircularBufferDataProvider` and sample `Sample` have been provided with the XYGraph plugin.