# Types of 2-D discrete data plots in MATLAB

Any data or variable that is limited to having certain values is known as discrete data. Many examples of discrete data can be observed in real life such as:

- The output of a dice roll can take any whole number from 1 to 6.
- The marks obtained by any student in a test can range from 0 to 100.
- The number of children in a house.

When dealing with such data, we may require to plot graphs, histograms, or any other form of visual representation to analyze the data and achieve desired results.

MATLAB offers a wide variety of ways to plot discrete data. These include:

- Vertical or Horizontal Bar-graphs
- Pareto Charts
- Stem charts
- Scatter plots
- Stairs

Let us first take some sample 2-D data to work with while demonstrating these different types of plots.

The above data shows the yearly revenue of a company for the duration of 5 years. This data can be shown in any of the above-mentioned plots:

**Bar Graph**:

This plot draws bars at positions specified by the array “Year” with the heights as specified in the array “Revenue”

**Example: **

## Matlab

`% MATLAB code for Bar graph` `% creating array for years` `year = 2014:1:2018;` ` ` `% creating array for revenue` `revenue = [1.72 2.00 2.08 2.67 2.03];` ` ` `% bar plot` `bar(year,revenue)` ` ` `% label for X-axis ` `xlabel(` `'Year'` `);` ` ` `% label for Y-axis ` `ylabel(` `'Revenue'` `); ` ` ` `% title for plot` `title(` `'Yearly Revenue'` `)` |

**Output:**

**Horizontal Bar Graph:**

This plot draws horizontal bars at positions specified by the array “Year” with the lengths as specified in the array “Revenue”.

**Example:**

## Matlab

`% MATLAB code for horizontal bar graph` `% creating array for years` `year = 2014:1:2018;` ` ` `% creating array for revenue` `revenue = [1.72 2.00 2.08 2.67 2.03];` ` ` `% horizontal bar plot` `barh(year,revenue)` ` ` `% label for X-axis ` `xlabel(` `'Revenue (in Cr.)'` `);` ` ` `% label for Y-axis ` `ylabel(` `'Year'` `); ` ` ` `% title for plot` `title(` `'Yearly Revenue'` `)` |

**Output:**

**Pareto Charts: **

This plot shows vertical bars corresponding to the values of the data in descending order of value. This also shows a curve made with the cumulative values above each bar. In addition to this, the right side of the graph has a percentage scale that shows how much percentage each bar contributes to the sum of all values.

**Example:**

## Matlab

`% MATLAB code for Pareto Charts example` `% creating array for years` `year = 2014:1:2018;` ` ` `% creating array for revenue` `revenue = [1.72 2.00 2.08 2.67 2.03];` ` ` `% pareto chart plot` `pareto(revenue,year)` ` ` `% label for X-axis ` `xlabel(` `'Year'` `);` ` ` `% label for Y-axis ` `ylabel(` `'Revenue (in Cr.)'` `); ` ` ` `% title for plot` `title(` `'Yearly Revenue'` `)` |

**Output:**

Bar Graphs (both vertical and horizontal) and Pareto charts can be used to represent data such as marks of a student in different subjects, rainfall received in different months, and many other data sets.

**Stem Charts: **

This plot shows a straight line with a bulb at the top (or bottom for negative values) corresponding to the values given in the data. The X-axis is scaled from the least to the highest value given. which may result in the first and last value being situated right at the border of the graph.

**Example:**

## Matlab

`% MATLAB code for Stem Charts ` `% creating array for years` `year = 2014:1:2018;` ` ` `% creating array for revenue` `revenue = [1.72 2.00 2.08 2.67 2.03];` ` ` `% stem chart plot` `stem(year,revenue)` ` ` `% label for X-axis ` `xlabel(` `'Year'` `);` ` ` `% label for Y-axis ` `ylabel(` `'Revenue (in Cr.)'` `); ` ` ` `% title for plot` `title(` `'Yearly Revenue'` `)` |

**Output:**

**Scatter Plot: **

This plot shows dots placed at the values given in the data. The Y-axis is scaled from the lowest to the highest value in the data. The X-axis is scaled similarly as in stem charts, from least to highest value.

**Example: **

## Matlab

`% MATLAB code for Scatter Plot example` `% creating array for years` `year = 2014:1:2018;` ` ` `% creating array for revenue` `revenue = [1.72 2.00 2.08 2.67 2.03];` ` ` `% scatter plot` `scatter(year,revenue)` ` ` `% label for X-axis ` `xlabel(` `'Year'` `);` ` ` `% label for Y-axis ` `ylabel(` `'Revenue (in Cr.)'` `); ` ` ` `% title for plot` `title(` `'Yearly Revenue'` `)` |

**Output:**

**Stairstep Plot:**

This plot shows a staircase-like structure with each step beginning at the next value given in the data. Similar to the scatter plot, X and Y axes scale from the lowest to the highest values given.

**Example:**

## Matlab

`% MATLAB code for Stairstep Plot ` `% creating array for years` `year = 2014:1:2018;` ` ` `% creating array for revenue` `revenue = [1.72 2.00 2.08 2.67 2.03];` ` ` `% stairstep plot` `stairs(year,revenue)` ` ` `% label for X-axis ` `xlabel(` `'Year'` `);` ` ` `% label for Y-axis ` `ylabel(` `'Revenue (in Cr.)'` `); ` ` ` `% title for plot` `title(` `'Yearly Revenue'` `)` |

**Output:**

Stem, Scatter, and Stairstep plots are ideally used when working with digital signals.