How to plot z values against year in x-axis and months in y-axis?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
shravani banerjee
el 17 de Abr. de 2020
I have a CSV file with rainfall values of a place. The rainfall values are places with respect to year (rows) and month(columns). See the attached file. I need to plot a contour plot of rainfall values against year and months with years in x-axis and months in y-axis. KINDLY HELP ME OUT. Thanks in advance!
0 comentarios
Respuesta aceptada
Ameer Hamza
el 17 de Abr. de 2020
Editada: Ameer Hamza
el 17 de Abr. de 2020
try this
T = readtable('RAINFALL_1980.csv');
years = T.YEAR;
months = T.Properties.VariableNames(2:end);
values = T{:,2:end}';
y = years;
m = 1:12;
[Y,M] = meshgrid(y,m);
f = figure();
ax = axes();
surf(Y,M,values);
xlim([min(years) max(years)]);
ylim([1 12]);
ax.YTickLabel = months(ax.YTick);
0 comentarios
Más respuestas (1)
dpb
el 17 de Abr. de 2020
Editada: dpb
el 17 de Abr. de 2020
[Y X]=meshgrid([1:12],tRAIN.YEAR);
contour(X,Y,tRAIN{:,2:end})
yticklabels(tRAIN.Properties.VariableNames(2:end))
Just for comparison, the contour plot originally asked for looks like...
months() must postdate R2019b have here...
ADDENDUM:
NB: One can also use just the two vectors and dispense with the explicit meshgrid call...just have to transpose so X variable matches number of columns in Z.
contour(tRAIN.YEAR,[1:12],tRAIN{:,2:end}.')
produces same plot as above. I'm pretty sure same trick works with surf.
The transpose is same thing as reversing [X Y] in meshgrid (as note both Answers do). A more user-friendly implemenation could take care of that internally at the cost of more input-processing overhead.
0 comentarios
Ver también
Categorías
Más información sobre Contour 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!