## Resizing Figure Window

Copying your script to a `.m`

and running it instead of a live `.mlx`

file will automatically create all the figures in a separate window by default. To adjust the size of the figures the following the `position`

property can be modified. To adjust the scale functions `xticks()`

, `yticks()`

and `zticks()`

can be used. These three scale functions take in an array representing all the line markers along the respective axis/scale.

## Test Plot Script:

```
X_Position = 10;
Y_Position = 10;
Width = 1000;
Height = 500;
%Configuring the figure settings%
figure('Position', [X_Position Y_Position Width Height])
%Test plot (replace with your plot)%
Data = [1 2 3 4 5 6];
plot(Data);
```

# Plotting Heatmaps on a Cylindrical Surfaces

## Method 1: Using `warp()`

Function

Haven’t delved into which orientation the data should be set as but this is an option to use the `warp()`

function to wrap the heatmap around a cylinder. They’re most likely other 3D plotting options if specific points are of interest. The points of the cylinder to be plotted are generated using the `cylinder()`

function which returns the xyz-coordinates of the cylinder’s wireframe. The fourth input argument into the `warp()`

function serves and a `colormap`

in this case it is proportional to the heatmap values.

```
load('HeatMapMatrix.mat');
%Setting up the figure%
clf;
close all;
figure('Position', [10 10 1000 500])
%Creating the cylinder%
Cylinder_Radius = 360;
Cylinder_Height = 512;
[X,Y,Z] = cylinder(Cylinder_Radius,Cylinder_Height-1);
%Warping the heatmap along the cylinder%
subplot(1,2,1); warp(X,Y,Cylinder_Height.*Z,map100');
colormap(gca,'jet');
subplot(1,2,2); warp(X,Y,Cylinder_Height.*Z,map100);
colormap(gca,'jet');
```

## Method 2: Plotting All Points and Using `surf()`

Function:

In this case, the coordinates for a cylinder are generated by first finding the coordinates of the circumference of the cylinder. This is done by using the `sin()`

and `cos()`

relationships:

**X-Points = Radius × cos(𝜃)**

**Y-Points = Radius × sin(𝜃)**

This results in the xy-coordinates of the cylinder’s circle. These xy-coordinates need to be duplicated using `repmat()`

to be later used for the varying heights. The process can be described best with a diagram as follows:

Four matrices above are created to plot each `Heat Data`

point corresponding to an xyz-coordinate. The x and y coordinates are repeated in every row of matrices `X-Points`

and `Y_Points`

since those are constant for the repeating circles. The columns of the matrix `Z-Points`

are also duplicates of each other since the heights should be constant for each row corresponding to each circle.

```
load('HeatMapMatrix.mat');
Radius = 20;
Number_Of_Data_Points = 360;
Theta = linspace(0,2*pi,Number_Of_Data_Points);
%The xy values according to radius and number of points%
X_Points = Radius*cos(Theta);
Y_Points = Radius*sin(Theta);
map100 = rot90(map100);
Sample_Range = 255 - 0;
Temperature_Range = 450 - 50;
Multiplier = Temperature_Range/Sample_Range;
map100 = map100.*Multiplier + 50;
Height = 512;
X_Points = repmat(X_Points,Height,1);
Y_Points = repmat(Y_Points,Height,1);
Z_Points = (1:512)';
Z_Points = repmat(Z_Points,1,Number_Of_Data_Points);
clf;
close;
figure('Position', [10 10 800 500])
Offset = 200;
subplot(1,3,1:2); Surface = surf(Y_Points,X_Points,Z_Points,'Cdata',map100);
title("3D Heatmap Plot");
zlabel("Height");
shading interp
colorbar
% direction = [0 1 0];
% rotate(Surface,direction,90)
Maximum_Value = 450;
Minimum_Value = 50;
caxis([Minimum_Value Maximum_Value]);
subplot(1,3,3); imshow(rot90(rot90(map100)));
colormap(gca, 'default');
title("Flat Heatmap Plot");
caxis([Minimum_Value Maximum_Value]);
colorbar;
```

**Ran using MATLAB R2019b**

CLICK HERE to find out more related problems solutions.