Scatter plot with extra features

조회 수: 11(최근 30일)
BeeTiaw
BeeTiaw 2019년 3월 13일
댓글: BeeTiaw 2019년 3월 19일
Hi expert,
I want to create a scatter plot where each individual points have one extra information which I also want to plot, i.e. their azimuth.
The data is shown below
data=[
% Temp Pres Azim
41 78 45
66 44 0
170 66 120
136 27 100
137 52 110];
The azimuth listed in the third column of the data is measured from the top of each data points (or circle) clockwise from [0,360deg].
How do I do this? The following plot has been generated manually by adding the blue line that shows the azimuth of each points.
Picture3.png
Thank you!

채택된 답변

Guillaume
Guillaume 2019년 3월 13일
halflength = 2;
scatter(data(:, 1), data(:, 2), 'MarkerEdgeColor', 'b', 'MarkerFaceColor', 'r')
for row = 1:size(data, 1)
line(data(row, 1) + sind(data(row, 3)) * [-halflength, halflength], ...
data(row, 2) + cosd(data(row, 3)) * [-halflength, halflength], ...
'Color', 'b');
end
  댓글 수: 4
BeeTiaw
BeeTiaw 2019년 3월 19일
Thanks @Akira Agata!

댓글을 달려면 로그인하십시오.

추가 답변(1개)

Akira Agata
Akira Agata 2019년 3월 13일
How about using quiver function? Here is an example.
data = [
% Temp Pres Azim
41 78 45
66 44 0
170 66 120
136 27 100
137 52 110];
u = 10*sind(data(:,3));
v = 10*cosd(data(:,3));
figure
scatter(data(:,1),data(:,2))
hold on
quiver(data(:,1)-u/2,data(:,2)-v/2,u,v,'AutoScale','off')
daspect([1 1 1])
xlabel('Temp','FontSize',12)
ylabel('Pres','FontSize',12)
box on
grid on
quiver.png

Community Treasure Hunt

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

Start Hunting!

Translated by