Hi, i want to plot two columns of values of data from excel, the graph includes a zero while the excel sheet doesn't. Here is my code and the graph I got vs what I should get

7 ビュー (過去 30 日間)
This is my code
clear all;
clc;
% Load data from Excel
data = xlsread('Results_1.xlsx'); % Replace 'Results_1.xlsx' with your file name
% Extract columns from the data
q = data(:, 2); % Assuming q is in the second column
D_q = data(:, 5); % Assuming D_q is in the fifth column
errors = data(:, 6); % Assuming errors in D_q are in the sixth column
% Plot with error bars and colored line
errorbar(q, D_q, errors, 'o', 'MarkerSize', 8, 'MarkerFaceColor', 'b', 'MarkerEdgeColor', 'b');
hold on; % Keep the current graph and add new data to it
plot(q, D_q, 'Color', 'r', 'LineWidth', 2); % Red colored line
% Customize axis labels
xlabel('q', 'FontSize', 14); % Customize the font size
ylabel('D_q', 'FontSize', 14); % Customize the font size
% Set x-axis and y-axis limits to exclude the origin
xlim([-11, 11]); % Adjust the limits according to your data range
ylim([1.5, 4]); % Adjust the limits according to your data range
grid on;
What I got :
What I should get (similar to it):
My Exel sheet

採用された回答

Mathieu NOE
Mathieu NOE 2024 年 4 月 16 日
編集済み: Mathieu NOE 2024 年 4 月 16 日
hello again
so your arrays contains 0 after row 22 til the end, that's why your plot goes back to the origin point (this was already pointed out by @Fangjun Jiang in his comment above)
you need to remove the invalid data from your plot
the first option is to simply specify which rows you want to plot - here we need row 1 to 21
clear all;
clc;
% Load data from Excel
data = xlsread('Results_1.xlsx'); % Replace 'Results_1.xlsx' with your file name
% Extract columns from the data
rows = (1:21); % define valid rows (non zeros in all columns)
q = data(rows, 2); % Assuming q is in the second column
D_q = data(rows, 5); % Assuming D_q is in the fifth column
errors = data(rows, 6); % Assuming errors in D_q are in the sixth column
% Plot with error bars and colored line
errorbar(q, D_q, errors, 'o', 'MarkerSize', 8, 'MarkerFaceColor', 'b', 'MarkerEdgeColor', 'b');
hold on; % Keep the current graph and add new data to it
plot(q, D_q, 'Color', 'r', 'LineWidth', 2); % Red colored line
% Customize axis labels
xlabel('q', 'FontSize', 14); % Customize the font size
ylabel('D_q', 'FontSize', 14); % Customize the font size
% Set x-axis and y-axis limits to exclude the origin
xlim([-11, 11]); % Adjust the limits according to your data range
ylim([1.5, 4]); % Adjust the limits according to your data range
grid on;
  3 件のコメント
Mathieu NOE
Mathieu NOE 2024 年 5 月 28 日
hello again
problem solved ?
do you mind accepting my answer ? tx

サインインしてコメントする。

その他の回答 (1 件)

Fangjun Jiang
Fangjun Jiang 2024 年 4 月 15 日
I think the last data point (un-wanted) is at (0,0). Your data shows it. You can look at the value of q and D_q.

カテゴリ

Help Center および File ExchangeBar Plots についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by