How to plot (x,y) points and their value, without meshgrid ?
古いコメントを表示
Hello everybody, I am writing about a question on making a 2D plot with colors.
I have 3 arrays of points: x and y represents the positions of the points and l is "its value" I want to plot. They all have a size of 350x350 for example. This means that x(i,j) goes with y(i,j) with the corresponding l(i,j) value. I want to obtain a plot like the one below (a 3D plot would work as well). My problem is that my arrays x and y are not in a meshgrid form and the points are not evenly spread...

The only solution I found seems to take my points, create an interpolation and a meshgrid , and finally evaluate the meshgrid using the interpolation... Here is my code:
% Resize the arrays
X = reshape(abs(x), [], 1);
Y = reshape(abs(y), [], 1);
L = reshape(abs(l), [], 1);
% Create the interpolation
n_pts = 1000;
F = TriScatteredInterp(X,Y,L);
[yi,xi] = ndgrid(min(Y(:)):abs(max(Y(:)))/n_pts:max(Y(:)), ...
min(X(:)):abs(max(X(:)))/n_pts:max(X(:)));
vi = F(xi,yi)/max(L);
% Plot the result
plot_map = figure;
surf(xi, yi, vi, 'EdgeColor','None');
view(2);
xlabel('x')
ylabel('y')
At the end, the creation of my points is much faster than the plotting, which should be the inverse... And it doesn't do exactly what I want... Is there a possibility to obtain this kind of plot by showing exactly the points I obtained and not an interpolation ? Maybe is it possible to reshape my arrays to create a meshgrid ? In the case I have to make an interpolation, is their a faster way ?
I thank you in advance for your time and your answers !
Spyroth
1 件のコメント
Nader Rihan
2021 年 8 月 3 日
編集済み: Nader Rihan
2021 年 8 月 3 日
Hello,
if you have 3 vectors (x,y,z) and you want to plot them as 3D or as contorplot lets do the following (for simplicity lets assume the lengths of x,y and z have square root values = L):
x_axis = reshape(x,L,L);
y_axis = reshape(y,L,L);
z_axis = reshape(z,L,L);
surf(x_axis,y_axis,z_axis)
OR
contourf(x_axis,y_axis,z_axis)
I read the accepted answer, but I found it limited, so the above works well, please accept it if you appriciate it.
Good luck.
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Line Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!