Publication quality plots in matlab

Some functions for easily generating publication quality plots in Matlab with all of the `set()`

and `get()`

stuff built in.

- This is in no way a flexible package ready for general use. I've just been creating functions here and there based on my needs at the time.
- Currently, this uses the viridis colourmap

Scatterplots can be created with the `pqscatter`

function. Title can be added with the `pqtitle`

function, which takes the pqplot object `s`

(in the example below) as the first argument.

```
% Creating a PQ ScatterPlot
rng(123);
x = randn(100, 1);
y = 1.5*x + 0.2*randn(100, 1);
figure();
s = pqscatter(x, y);
pqtitle(s, 'PQ Scatter Plot');
xlabel('X Label');
ylabel('Y Label');
```

This function was originally created to compare accuracy of a model-fitting algorithm's parameter estimates compared to the true ones. As such, there exists an option third argument in `pqscatter`

which accepts a cell array containing one or more of `'match'`

, which plots a diagonal line from the origin to the top right-hand corner, or `'lm'`

which plots an ordinary least-squares regression line to the data series.

```
% Creating an Actual vs. Estimate PQ ScatterPlot
rng(123);
x = randn(100, 1);
y = 1.5*x + 0.2*randn(100, 1);
figure();
s = pqscatter(x, y, {'match'});
pqtitle(s, 'PQ Actual vs. Estimate Plot');
xlabel('Actual');
ylabel('Estimate');
```

```
% Creating an Actual vs. Estimate PQ ScatterPlot with an additional least squares fit line
rng(123);
x = randn(100, 1);
y = 1.5*x + 0.2*randn(100, 1);
figure();
s = pqscatter(x, y, {'match', 'lm'});
pqtitle(s, 'PQ Actual vs. Estimate Plot');
xlabel('Actual');
ylabel('Estimate');
```

`pqscatter`

Just have `y`

be a matrix with each series you wish to plot as an individual column in that matrix.

```
% Plotting multiple series with pqscatter
rng(123);
x = randn(100, 1);
y = meshgrid(0.5:2.5, 1:100).*repmat(x, 1, 3) + 0.2*randn(100, 3);
figure();
s = pqscatter(x, y, {'match', 'lm'});
pqtitle(s, 'PQ Actual vs. Estimate Plot');
xlabel('Actual');
ylabel('Estimate');
```

Bar plots can be created with the `pqbar`

function

```
% Bar plot with pqbar()
rng(123);
labelsx = {'A', 'B', 'C'};
y = rand(1, 3)*10;
figure();
s = pqbar(labelsx, y);
pqtitle(s, 'PQ Bar Plot');
ylabel('Values');
```

The `pqbar`

function can also plot multiple series per xlabel. Just add each series as a new column in the array `y`

:

```
% Bar plot with pqbar()
rng(123);
labelsx = {'A', 'B', 'C'};
y = rand(3, 5)*10;
figure();
s = pqbar(labelsx, y);
pqtitle(s, 'PQ Bar Plot Multi-Series');
ylabel('Values');
```