Controu plot from matlab table
Ältere Kommentare anzeigen
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
Antworten (1)
KSSV
am 18 Mär. 2021
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 Kommentare
Morten Nissov
am 8 Apr. 2021
KSSV
am 8 Apr. 2021
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
am 8 Apr. 2021
KSSV
am 8 Apr. 2021
Yes..use the present given code.
Morten Nissov
am 8 Apr. 2021
Bearbeitet: Morten Nissov
am 8 Apr. 2021
KSSV
am 8 Apr. 2021
That should work...but the data arrangment should be considered.
Morten Nissov
am 8 Apr. 2021
KSSV
am 9 Apr. 2021
The gird looks fine when you use
scatter(X(:),Y(:),[],Z(:),'.')
Show me the PAndas code which worked for you.
Morten Nissov
am 9 Apr. 2021
Kategorien
Mehr zu Graphics Object Properties finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!