Scatter plots and lines

I am wanting to add in a line like the graph below, but cannot seem to get the black line to stop going upwards. The gradient of the line is 4, please see my code and help!
clearvars;
close all;
clc;
% Extracted data
L = [0.2, 0.21, 0.22, 0.23, 0.24, 0.25]; % Length in µm
G = [0.002073593, 0.002034555, 0.00198774, 0.00194322, 0.00191650, 0.00188695]; % G in µm⁻¹
V = [33.4790, 35.0453, 35.5131, 35.7370, 36.2533, 36.3155]; % V in µm/s
% Plotting
figure;
hold on;
% Plot G vs V as a regular line plot
plot(V, G, 'o', 'LineWidth', 2, 'Color', 'b', 'MarkerFaceColor', 'b', 'DisplayName', 'Data');
% Add a black line with gradient = 4 starting from the origin
m = 4; % Gradient
V_line = linspace(0, max(V)+1, 100); % Start from 0
G_line = m * V_line;
plot(V_line, G_line, 'k-', 'LineWidth', 2, 'DisplayName', 'Gradient = 4 (from origin)');
% Formatting the plot
xlabel('Velocity V (µm/s)', 'FontSize', 30);
ylabel('Thermal Gradient G (µm⁻¹)', 'FontSize', 30);
title('G vs V for Varying Separation Distances', 'FontSize', 35);
legend('Location', 'northeast', 'FontSize', 20);
grid on;
xlim([min(0, min(V)-0.5), max(V)+0.5]);
ylim([min(0, min(G)-0.00001), max(G)+0.00001]);

3 Comments

The gradient of the line in the graphics (in [°C / s]) is approximately
(2.5e-3-1.4e-3)/(44-25)
ans = 5.7895e-05
Your question does not indicate where you want the black line to stop ?
Your code does not recreate the image shown.
Note that you have defined the equation of the line to go from 0 to 37.3155 along X and 0 to 4*(36.3155 + 1), or 149.2620, along Y:
% Add a black line with gradient = 4 starting from the origin
m = 4; % Gradient
V_line = linspace(0, max(V)+1, 100); % Start from 0
G_line = m * V_line;
plot(V_line, G_line, 'k-', 'LineWidth', 2, 'DisplayName', 'Gradient = 4 (from origin)');

Sign in to comment.

Answers (1)

Could you add a thick black line as indicated by the dotted lines? The dotted lines serve as a tracing task, helping you become familiar with forming lines, which is a crucial step in learning to plot in MATLAB.
clearvars;
close all;
clc;
% Extracted data
L = [0.2, 0.21, 0.22, 0.23, 0.24, 0.25]; % Length in µm
G = [0.002073593, 0.002034555, 0.00198774, 0.00194322, 0.00191650, 0.00188695]; % G in µm⁻¹
V = [33.4790, 35.0453, 35.5131, 35.7370, 36.2533, 36.3155]; % V in µm/s
% Plotting
figure;
hold on;
%% ------- Added or modified :: Start -------
lgd = legend('');
Warning: Ignoring extra legend entries.
title(lgd, 'L (cm)')
% Plot G vs V as a regular line plot
plot(V(1), G(1), 'o', 'LineWidth', 2, 'Color', 'r', 'MarkerFaceColor', 'r', 'DisplayName', '20');
plot(V(2), G(2), 'o', 'LineWidth', 2, 'Color', 'y', 'MarkerFaceColor', 'y', 'DisplayName', '21');
plot(V(3), G(3), 'o', 'LineWidth', 2, 'Color', 'g', 'MarkerFaceColor', 'g', 'DisplayName', '22');
plot(V(4), G(4), 'o', 'LineWidth', 2, 'Color', 'c', 'MarkerFaceColor', 'c', 'DisplayName', '23');
plot(V(5), G(5), 'o', 'LineWidth', 2, 'Color', 'b', 'MarkerFaceColor', 'b', 'DisplayName', '24');
plot(V(6), G(6), 'o', 'LineWidth', 2, 'Color', 'm', 'MarkerFaceColor', 'm', 'DisplayName', '25');
xLine = [25 45.8];
yLine = [1.4e-3 2.5e-3];
line(xLine, yLine, 'Color', 'k', 'LineStyle', '--')
lgd.String(7) = '';
lgd.Location = 'northeast';
text(26.3, 2.3e-3, 'Stable', 'FontSize', 12)
text(45.3, 1.3e-3, 'Unstable', 'FontSize', 12)
xlim([25 50])
ylim([1e-3 2.5e-3])
%% ------- Added or modified :: End -------
% Add a black line with gradient = 4 starting from the origin
m = 4; % Gradient
V_line = linspace(0, max(V)+1, 100); % Start from 0
G_line = m * V_line;
% plot(V_line, G_line, 'k-', 'LineWidth', 2, 'DisplayName', 'Gradient = 4 (from origin)');
% Formatting the plot
xlabel('Velocity V (µm/s)');
ylabel('Thermal Gradient G (µm⁻¹)');
title('G vs V for Varying Separation Distances');
% legend('Location', 'northeast', 'FontSize', 20);
grid on;
% xlim([min(0, min(V)-0.5), max(V)+0.5]);
% ylim([min(0, min(G)-0.00001), max(G)+0.00001]);

2 Comments

Same code, just leveraging some of the capabilities of MATLAB to consolidate.
% Extracted data
L = [0.2, 0.21, 0.22, 0.23, 0.24, 0.25]; % Length in µm
G = [0.002073593, 0.002034555, 0.00198774, 0.00194322, 0.00191650, 0.00188695]; % G in µm⁻¹
V = [33.4790, 35.0453, 35.5131, 35.7370, 36.2533, 36.3155]; % V in µm/s
% Plotting
% Plot G vs V as a regular line plot
p=gscatter(V, G, L*100,'rygcbm');
hold on
plot([25 45.8], [1.4e-3 2.5e-3], 'k--')
hold off
% Formatting the plot
xlabel('Velocity V (µm/s)');
ylabel('Thermal Gradient G (µm⁻¹)');
title('G vs V for Varying Separation Distances');
lgd = legend(p,'Location', 'northeast');
title(lgd,"L (cm)")
grid on;
text(26.3, 2.3e-3, 'Stable', 'FontSize', 12)
text(45.3, 1.3e-3, 'Unstable', 'FontSize', 12)
xlim([25 50]);
ylim([1 2.5]*1e-3);
Thank you, @Cris LaPierre, I learned new stuff today.

Sign in to comment.

Products

Release

R2024b

Asked:

on 24 Apr 2025

Commented:

on 25 Apr 2025

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!