フィルターのクリア

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

3 ビュー (過去 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 Center および File ExchangeSurface and Mesh Plots についてさらに検索

タグ

製品


リリース

R2014a

Community Treasure Hunt

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

Start Hunting!

Translated by