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 个评论

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)');

请先登录,再进行评论。

回答(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 个评论

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.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Polar Plots 的更多信息

产品

版本

R2024b

提问:

2025-4-24

评论:

2025-4-25

Community Treasure Hunt

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

Start Hunting!

Translated by