Plotting variables of continuously array with different colors
2 ビュー (過去 30 日間)
古いコメントを表示
Hello everyone,
Is it possible to :
(1) Change the value of Station column of this array (excel attached) into ordered rank Station? Anyone knows the code to do this? FYI, the number of stations is in hundreds (I put here for example only 3 stations) so, doing this in loop is preferable solution.
(2) Plot those three Station's profile of variable "s" vs depth from those three stations with different colors of line plots? Anyone knows the code to do this also?
Thank you!
0 件のコメント
採用された回答
Star Strider
2023 年 10 月 10 日
編集済み: Star Strider
2023 年 10 月 10 日
T1 = readtable('datax.xlsx')
[Us,ix1,ix2] = unique(T1.Station, 'stable');
T1.Station = ix2
figure
stem3(T1.Station, T1.depth, T1.salinity, ':k', 'Marker','none')
hold on
scatter3(T1.Station, T1.depth, T1.salinity, 150, T1.salinity, 'p', 'filled')
hold off
xlabel('Station')
ylabel('Depth')
zlabel('Salinity')
xticks(1:3)
This uses the third output of unique to get serial indices (note that I use the 'stable' argument to avoid sorting the results). The findgroups function works similarly to produce a grouping variable. The grouping variable vector is used here as the new value for ‘Station’.
EDIT — Added plots.
.
12 件のコメント
Star Strider
2023 年 10 月 11 日
That is correct.
Actually:
LON = StaData{k}.lon(1);
or:
LON(k) = StaData{k}.lon(1);
depending on the result you want.
(I was away for a few minutes running errands.)
その他の回答 (1 件)
Sulaymon Eshkabilov
2023 年 10 月 10 日
Logical indexing would be an easy way of sorting the data and assigning new values to column 'station'. Then use the sorted data indecies to plot the data: s vs. depth
Here is one of the ways of doing it:
F = readmatrix('datax.xlsx');
Idx1=F(:,1)==2;
Idx2=F(:,1)==7;
Idx3=F(:,1)==31;
F(Idx1,1) = 1;
F(Idx2,1) = 2;
F(Idx3,1) = 3;
% Plotting the data
plot(F(Idx1, 5),F(Idx1, 4), '-o','linewidth', 2), hold all
plot(F(Idx2, 5),F(Idx2, 4), '-s','linewidth', 2)
plot(F(Idx3, 5),F(Idx3, 4), '-d','linewidth', 2)
legend('Station: 1', 'Station: 2', 'Station: 3', 'location', 'best')
grid on
xlabel('s')
ylabel('depth')
参考
カテゴリ
Help Center および File Exchange で Resizing and Reshaping Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!