Hi,
I need to draw a rose diagram, however, my data is grouped already. Is it possible to generate a rose diagram for discrete data? Is there any way I can do that? Here is the data I need to plot, for example for 0 degrees I have 56 observations for 10 degrees - 30 observations and so on. I'd appreciate any help. Thank you
  • 0 56
  • 10 30
  • 20 11
  • 30 11
  • 40 5
  • 50 3
  • 60 6
  • 70 8
  • 80 14
  • 90 16
  • 100 15
  • 110 7
  • 120 6
  • 130 9
  • 140 7
  • 150 10
  • 160 21
  • 170 39
  • 180 56
  • 190 30
  • 200 11
  • 210 11
  • 220 5
  • 230 3
  • 240 6
  • 250 8
  • 260 14
  • 270 16
  • 280 15
  • 290 7
  • 300 6
  • 310 9
  • 320 7
  • 330 10
  • 340 21
  • 350 39

 채택된 답변

Star Strider
Star Strider 2015년 3월 23일

5 개 추천

The rose function isn’t cooperating. This is likely as close as you can get:
th_x = [0 56 % Original Data Matrix
10 30
20 11
30 11
40 5
50 3
... ];
xr = [repmat(th_x(:,2)', 10, 1); zeros(1,36)];
xr = [0 reshape(xr, 1, [])];
th = linspace(0, 359, length(xr));
figure(1)
polar(th*pi/180, xr)
producing this plot:

댓글 수: 6

Martin
Martin 2018년 1월 1일
Hi,
Is it possible to move the bins from the edges to the centres?
Star Strider
Star Strider 2018년 1월 1일
If you want to define them as centres rather than edges with this code, you will have to use the centres to define the edges, then use the edges.
Note that in R2016b polarhistogram (link) appeared, and in R2016a, polarplot (link) appeared, with significant improvements over polar (that still exists).
Martin
Martin 2018년 1월 1일
Hi, Thanks for the quick reply. I am sorry; I do not really follow how that is done. I work mainly with ArcGIS, so my Matlab skills are still quite poor.
I have determined wind directions from some landforms and now I am trying to plot it in a rose diagram. I have grouped the data in bins of 10 degrees, just like in the example above. However, since the bins are plotted at the edges you get the impression that the winds were blowing from a slightly different angle than the data suggests.
My pleasure.
One option is to simply offset the centres by ±½ the bin width (the ‘±’ depending on how your angles are defined).
See if this does what you want (with the original ‘th_x’ matrix here):
polar((th-5)*pi/180, xr)
This shifts them by -5°, so the centres are lined up with the angles.
Experiment to get the result you want.
Martin
Martin 2018년 1월 1일
Now it looks really good, thank you!
Star Strider
Star Strider 2018년 1월 1일
As always, my pleasure!
(A vote for my Answer would be appreciated!)

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

추가 답변 (1개)

Magda
Magda 2015년 3월 23일

0 개 추천

thank you so much!!!!

댓글 수: 1

Star Strider
Star Strider 2015년 3월 23일
My pleasure!
That was an interesting challenge!

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

카테고리

도움말 센터File Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

질문:

2015년 3월 23일

댓글:

2018년 1월 1일

Community Treasure Hunt

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

Start Hunting!

Translated by