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
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Fatima Al Ghurabi
el 15 de Abr. de 2024
Comentada: Mathieu NOE
el 28 de Mayo de 2024
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
2 comentarios
Respuesta aceptada
Mathieu NOE
el 16 de Abr. de 2024
Editada: Mathieu NOE
el 16 de Abr. de 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 comentarios
Más respuestas (1)
Fangjun Jiang
el 15 de Abr. de 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.
0 comentarios
Ver también
Categorías
Más información sobre Bar Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!