# Documentation

## Plot Categorical Data

This example shows how to plot data from a categorical array.

Load sample data gathered from 100 patients.

```load patients whos ```
``` Name Size Bytes Class Attributes Age 100x1 800 double Diastolic 100x1 800 double Gender 100x1 12212 cell Height 100x1 800 double LastName 100x1 12416 cell Location 100x1 15008 cell SelfAssessedHealthStatus 100x1 12340 cell Smoker 100x1 100 logical Systolic 100x1 800 double Weight 100x1 800 double ```

### Create Categorical Arrays from Cell Arrays of Strings

The workspace variable, `Location`, is a cell array of strings that contains the three unique medical facilities where patients were observed.

To access and compare data more easily, convert `Location` to a categorical array.

```Location = categorical(Location); ```

Summarize the categorical array.

```summary(Location) ```
``` County General Hospital 39 St. Mary's Medical Center 24 VA Hospital 37 ```

39 patients were observed at County General Hospital, 24 at St. Mary's Medical Center, and 37 at the VA Hospital.

The workspace variable, `SelfAssessedHealthStatus`, contains four unique values, `Excellent`, `Fair`, `Good`, and `Poor`.

Convert `SelfAssessedHealthStatus` to an ordinal categorical array, such that the categories have the mathematical ordering `Poor < Fair < Good < Excellent`.

```SelfAssessedHealthStatus = categorical(SelfAssessedHealthStatus,... {'Poor' 'Fair' 'Good' 'Excellent'},'Ordinal',true); ```

Summarize the categorical array, `SelfAssessedHealthStatus`.

```summary(SelfAssessedHealthStatus) ```
``` Poor 11 Fair 15 Good 40 Excellent 34 ```

### Plot Histogram

Create a histogram bar plot directly from a categorical array.

```figure histogram(SelfAssessedHealthStatus) title('Self Assessed Health Status From 100 Patients') ```

The function `hist` accepts the categorical array, `SelfAssessedHealthStatus`, and plots the category counts for each of the four categories.

Create a histogram of the hospital location for only the patients who assessed their health as `Fair` or `Poor`.

```figure histogram(Location(SelfAssessedHealthStatus<='Fair')) title('Location of Patients in Fair or Poor Health') ```

### Create Pie Chart

Create a pie chart directly from a categorical array.

```figure pie(SelfAssessedHealthStatus); title('Self Assessed Health Status From 100 Patients') ```

The function `pie` accepts the categorical array, `SelfAssessedHealthStatus`, and plots a pie chart of the four categories.

### Create Pareto Chart

Create a Pareto chart from the category counts for each of the four categories of `SelfAssessedHealthStatus`.

```figure A = countcats(SelfAssessedHealthStatus); C = categories(SelfAssessedHealthStatus); pareto(A,C); title('Self Assessed Health Status From 100 Patients') ```

The first input argument to `pareto` must be a vector. If a categorical array is a matrix or multidimensional array, reshape it into a vector before calling `countcats` and `pareto`.

### Create Scatter Plot

Convert the cell array of strings to a categorical array.

```Gender = categorical(Gender); ```

Summarize the categorical array, `Gender`.

```summary(Gender) ```
``` Female 53 Male 47 ```

`Gender` is a 100-by-1 categorical array with two categories, `Female` and `Male`.

Use the categorical array, `Gender`, to access `Weight` and `Height` data for each gender separately.

```X1 = Weight(Gender=='Female'); Y1 = Height(Gender=='Female'); X2 = Weight(Gender=='Male'); Y2 = Height(Gender=='Male'); ```

`X1` and `Y1` are 53-by-1 numeric arrays containing data from the female patients.

`X2` and `Y2` are 47-by-1 numeric arrays containing data from the male patients.

Create a scatter plot of height vs. weight. Indicate data from the female patients with a circle and data from the male patients with a cross.

```figure h1 = scatter(X1,Y1,'o'); hold on h2 = scatter(X2,Y2,'x'); title('Height vs. Weight') xlabel('Weight (lbs)') ylabel('Height (in)') ```