Controu plot from matlab table

8 ビュー (過去 30 日間)
Morten Nissov
Morten Nissov 2021 年 3 月 18 日
コメント済み: Morten Nissov 2021 年 4 月 9 日
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
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 件のコメント
KSSV
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
Morten Nissov 2021 年 4 月 9 日
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('EMAG2_faaborg.csv')
df = df[['lat','lon','upCont']].pivot('lat','lon')
lon = df.columns.levels[1].values
lat = df.index.values
vals = df.values
X,Y = np.meshgrid(lon, lat)
then I can plot using
plt.contourf(X, Y, vals)

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeGeographic Plots についてさらに検索

タグ

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by