xii-enlargement of matlab models

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.

Figure Plotting Diagram

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.

Heatmap on Cylinder Image

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: Heatmap Plotting Method

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.

Heatmap With Placeable Markers

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.

Leave a Comment

Your email address will not be published.

Scroll to Top