How to plot z values against year in x-axis and months in y-axis?

조회 수: 1 (최근 30일)
shravani banerjee
shravani banerjee 2020년 4월 17일
편집: dpb 2020년 4월 17일
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!

채택된 답변

Ameer Hamza
Ameer Hamza 2020년 4월 17일
편집: Ameer Hamza 2020년 4월 17일
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);

추가 답변 (1개)

dpb
dpb 2020년 4월 17일
편집: dpb 2020년 4월 17일
[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.

카테고리

Help CenterFile Exchange에서 Contour Plots에 대해 자세히 알아보기

태그

제품


릴리스

R2014a

Community Treasure Hunt

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

Start Hunting!

Translated by