Effacer les filtres
Effacer les filtres

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

4 vues (au cours des 30 derniers jours)
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

Réponse acceptée

Mathieu NOE
Mathieu NOE le 16 Avr 2024
Modifié(e) : Mathieu NOE le 16 Avr 2024
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 commentaires
Mathieu NOE
Mathieu NOE le 28 Mai 2024
hello again
problem solved ?
do you mind accepting my answer ? tx

Connectez-vous pour commenter.

Plus de réponses (1)

Fangjun Jiang
Fangjun Jiang le 15 Avr 2024
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.

Catégories

En savoir plus sur 2-D and 3-D Plots dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by