Plot data Excel sheet

2 visualizaciones (últimos 30 días)
AHMED FAKHRI
AHMED FAKHRI el 9 de Abr. de 2021
Comentada: Soumya Paliwal el 9 de Abr. de 2021
Hi
I have the attached Excel sheet, and I want to plot the years from 2022 to 2050 on the x-axis.
On the y-axis, I want to plot the cumulative emissions for each year above.For instance, the code should add any emission generated for the same year such that the cumulative is avaialble for each year.
Can you help please? thanks

Respuesta aceptada

Soumya Paliwal
Soumya Paliwal el 9 de Abr. de 2021
The following script should help you with the problem:
% Read from the excel file
rawData = readmatrix('data.xlsx');
% Find unique years
uniqueYears = unique(rawData(:,1));
cumulativeValues = zeros(length(uniqueYears),1);
mapping = containers.Map(uniqueYears,cumulativeValues);
% Find cumulative eemissions for each year
for i=1:length(rawData)
mapping(rawData(i,1)) = mapping(rawData(i,1))+rawData(i,2);
end
plot_uniqueYear = mapping.keys;
plot_cumulativeValues = mapping.values;
bar(cell2mat(plot_uniqueYear),cell2mat(plot_cumulativeValues));
xlabel('Years');
ylabel('CUmulative Emissions');
  2 comentarios
AHMED FAKHRI
AHMED FAKHRI el 9 de Abr. de 2021
Many thanks that works, thanks for your help.
One last thing please, I need to add the value of the previous year always with the next so they become linear
So 2022 in x axis, then 2022+2023 in the (2023) year x-axis, and so on.
Similar to the below part in this image shaded in 'yellow'
Soumya Paliwal
Soumya Paliwal el 9 de Abr. de 2021
You can add a small code snippet for this. Please refer to the following script:
rawData = readmatrix('data.xlsx');
uniqueYears = unique(rawData(:,1));
cumulativeValues = zeros(length(uniqueYears),1);
mapping = containers.Map(uniqueYears,cumulativeValues);
for i=1:length(rawData)
mapping(rawData(i,1)) = mapping(rawData(i,1))+rawData(i,2);
end
plot_uniqueYear = mapping.keys;
%%%%% new code snippet %%%%%
for i=2:length(plot_uniqueYear)
mapping(plot_uniqueYear{i}) = mapping(plot_uniqueYear{i}) + mapping(plot_uniqueYear{i-1});
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
plot_cumulativeValues = mapping.values;
bar(cell2mat(plot_uniqueYear),cell2mat(plot_cumulativeValues));
xlabel('Years');
ylabel('Cumulative Emissions');

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by