フィルターのクリア

How can I draw contour lines in my problem ?

2 ビュー (過去 30 日間)
Behrooz Daneshian
Behrooz Daneshian 2023 年 2 月 6 日
編集済み: Voss 2023 年 2 月 8 日
Hi all,
I have created cell array(which is attached here) in which the first and second columns representing latitude and longitude of each weather station exisitng in the Alaska state. The third column is the probability that freezing depth in that station exceeds 1 feet. What I want to do is plot contour lines represing the probability values. Can anyone help me with regard?

採用された回答

Voss
Voss 2023 年 2 月 6 日
load Behi1
data = cell2mat(POFDE1);
I = scatteredInterpolant(data(:,[1 2]),data(:,3));
Warning: Duplicate data points have been detected and removed - corresponding values have been averaged.
[lat,lon] = meshgrid(unique(data(:,1)),unique(data(:,2)));
contour(lon,lat,I(lat,lon),'ShowText','on')
colorbar
  9 件のコメント
Behrooz Daneshian
Behrooz Daneshian 2023 年 2 月 8 日
Thank you so much. Your second solution worked for me.
Another question, in some point on the maps where contours overlape, the numbers on them can be rarely visible.(please see the attached map). Do you have any idea on How I can scale my maps?
Voss
Voss 2023 年 2 月 8 日
編集済み: Voss 2023 年 2 月 8 日
I don't know of a way to guarantee that the labels will always be legible, but you can try changing the LabelSpacing and/or TextStep properties, or set ShowText to 'off' to turn off the text labels entirely.

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

その他の回答 (2 件)

Divyank
Divyank 2023 年 2 月 6 日
The contour plot requires z-coordinates to be specified as a matrix and this matrix must have at least two rows and two columns, and it must contain at least two different values. However, the z-coordinates in POFDE1 is 1x273 cell array, according to my understanding of your problem, you can consider using plot3(X, Y, Z) instead of contour after extracting X, Y and Z co-ordinates from POFDE1 cell array in the following way:
% The input needs to be a scalar, vector or a matrix, hence conversion from
% cell array to vector is needed in this case, you might want to construct
% a matrix instead of a cell array to avoid this conversion.
X = cell2mat(POFDE1(:, 1));
Y = cell2mat(POFDE1(:, 2));
Z = cell2mat(POFDE1(:, 3));
plot3(X, Y, Z, '.');
  1 件のコメント
Walter Roberson
Walter Roberson 2023 年 2 月 6 日
The user specifically asked for contour lines. Voss shows one way of doing scattered contour.

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


Walter Roberson
Walter Roberson 2023 年 2 月 6 日
https://www.mathworks.com/matlabcentral/fileexchange/38858-contour-plot-for-scattered-data is a File Exchange contribution for contour lines for scattered data.
You would probably still need to use cell2mat() like @Voss showed.

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by