Controu plot from matlab table
古いコメントを表示
I have a table with values extracted from a csv I want to make a contour plot from.
Let's use this table as an example
tdata.x = [1;2;1;2];
tdata.y = [3;3;4;4];
tdata.z = randn(4,1);
tdata=struct2table(tdata);
>> tdata
tdata =
4×3 table
x y z
_ _ _______
1 3 0.53767
2 3 1.8339
1 4 -2.2588
2 4 0.86217
I would like to pivot this such that I can use it for plotting a contour, so in principle I want a 2x2 z matrix where rows/columns are given by y and x respectively, something in this direction:
x 1 2
y
3 0.53767 1.8339
4 -2.2588 0.86217
回答 (1 件)
KSSV
2021 年 3 月 18 日
x = T.x ;
y = T.y ;
z = T.z ;
nx = length(unique(x)) ;
ny = length(unique(y)) ;
X = reshape(x,nx,ny) ;
Y = reshape(y,nx,ny) ;
Z = reshape(z,nx,ny) ;
contour(X,Y,Z)
9 件のコメント
Morten Nissov
2021 年 4 月 8 日
KSSV
2021 年 4 月 8 日
file = 'EMAG2_amsterdam.csv';
map = readtable(file);
lon = map.lon;
lat = map.lat;
z = map.upCont;
m = 100 ; n = 100 ;
x = linspace(min(lon),max(lon),m) ;
y = linspace(min(lat),max(lat),n) ;
[X,Y] = meshgrid(x,y) ;
Z = griddata(lon,lat,z,X,Y) ;
figure(1)
contourf(X,Y,Z)
xlabel('longitude')
ylabel('latitude')

Morten Nissov
2021 年 4 月 8 日
KSSV
2021 年 4 月 8 日
Yes..use the present given code.
Morten Nissov
2021 年 4 月 8 日
編集済み: Morten Nissov
2021 年 4 月 8 日
KSSV
2021 年 4 月 8 日
That should work...but the data arrangment should be considered.
Morten Nissov
2021 年 4 月 8 日
KSSV
2021 年 4 月 9 日
The gird looks fine when you use
scatter(X(:),Y(:),[],Z(:),'.')
Show me the PAndas code which worked for you.
Morten Nissov
2021 年 4 月 9 日
カテゴリ
ヘルプ センター および File Exchange で Graphics Object Properties についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!