Hi Hadley,

Thank you very much!

The idea of plotting a wind rose must be fairly common.  I wonder if  
it would make sense to have a switch that would wrap data around the  
ends of a continuous scale?

All the best,
Tom

On Dec 6, 2009, at 7:51 PM, hadley wickham wrote:

> Hi Tom,
>
> The problem was that the bars have width 22.5, so setting the limits
> to c(0, 360) chopped off the last bar.  To get around that, you needed
> to add half a bar width (11.25) to the start and end limits, and then
> rotate the polar coordinate system so that 0 lines up again.
>
> ggplot(wind.data, aes(x = degree, y = time, fill = wind)) +
> geom_bar(stat = "identity", aes(width = 22.5)) +
> scale_x_continuous(limits = c(0 + 11.25, 360 + 11.25), breaks = c(90,
> 180, 270, 360)) +
> coord_polar(start = 11.25 / 180 * pi) +
> scale_fill_brewer(pal = "Blues")
>
> Or now I've correctly identified the problem, we don't need to
> manually set the limits:
>
> ggplot(wind.data, aes(x = degree, y = time, fill = wind)) +
> geom_bar(stat = "identity", aes(width = 22.5)) +
> scale_x_continuous(breaks = c(90, 180, 270, 360)) +
> coord_polar(start = 11.25 / 180 * pi) +
> scale_fill_brewer(pal = "Blues")
>
>
> Hadley
>
> On Sun, Dec 6, 2009 at 7:30 PM, Thomas S. Dye <t...@tsdye.com> wrote:
>> Hi Hadley,
>> I don't know if you saw the message below.  I've worked with
>> scale_continuous() a bit in the interim to see if changing the  
>> limits would
>> bring back the 16th bar, but without success.  If I don't add in
>> scale_continuous(), then the 16th bar is shown.
>> Is this a ggplot2 bug?
>> I apologize for my persistence on this, but I'm working under a  
>> project
>> deadline.  I'm captivated by the grammar of graphics and would like  
>> to produce
>> all my graphs with ggplot2.  If there is a bug that swallows the  
>> 16th bar,
>> though, then I'll make my wind rose with another package and wait  
>> patiently
>> until ggplot2 plots the full compass.
>> Thanks again for a terrific software package.
>> All the best,
>> Tom
>> Begin forwarded message:
>>
>> From: "Thomas S. Dye" <t...@tsdye.com>
>> Date: December 3, 2009 9:42:27 PM HST
>> To: hadley wickham <h.wick...@gmail.com>
>> Cc: "r-help@r-project.org" <r-help@r-project.org>
>> Subject: Re: [R] [ggplot2] Wind rose orientation
>> Hi Hadley,
>>
>> That solved a lot of problems.  Thanks!
>>
>> Do you get a vertically oriented bar?  Here I get 15 bars with a  
>> space where
>> the north bar, the 16th bar, should be.
>>
>> All the best,
>> Tom
>>
>> On Dec 3, 2009, at 8:16 PM, hadley wickham wrote:
>>
>> Hi Thomas,
>>
>> Ok, the key thing that you were missing was:
>>
>> scale_x_continuous(limits = c(0, 360))
>>
>> Since you don't have any data at 0, and because ggplot2 doesn't know
>>
>> that your variable had intrinsic meaning as a degree, it was starting
>>
>> zero degrees at 22.5.
>>
>> A few other tweaks below:
>>
>> wind.data$wind <- factor(wind.data$wind,
>>
>> c("calm", "< 3", "4 - 12", "13 - 24", "> 25"))
>>
>> ggplot(wind.data, aes(x = degree, y = time, fill = wind)) +
>>
>> xlab(NULL) + ylab(NULL) +
>>
>> geom_bar(stat = "identity", aes(width = 22.5)) +
>>
>> scale_x_continuous(limits = c(0, 360), breaks = c(0, 90, 180, 270)) +
>>
>> coord_polar() +
>>
>> scale_fill_brewer(pal = "Blues")
>>
>> Regards,
>>
>> Hadley
>>
>> On Fri, Dec 4, 2009 at 12:02 AM, Thomas S. Dye <t...@tsdye.com> wrote:
>>
>> Aloha Hadley,
>>
>> Thanks very much for ggplot.  It's a terrific piece of work.   
>> Specifying
>>
>> width = 1 in the call to geom_bar didn't change the orientation of  
>> the
>>
>> coordinates.  If you run the example, you'll see that 100 is  
>> horizontal,
>>
>> where 90 would be on the compass.
>>
>> Here is a reproducible example.  The data are shown here as the  
>> results of
>>
>> evaluating the read-data source code block, displayed as an Org- 
>> mode table.
>>
>> A csv file is also attached (if it makes it through the list).
>>
>> #+srcname: read-data
>>
>> #+begin_src R :session
>>
>> wind.data <- read.csv("pmrf_windrose_info_new.csv")
>>
>> #+end_src
>>
>> #+resname: read-data
>>
>> | "E"   |    90 | 4.9 | "calm"    |
>>
>> | "ENE" |  67.5 | 4.9 | "calm"    |
>>
>> | "NE"  |    45 | 4.9 | "calm"    |
>>
>> | "NNE" |  22.5 | 4.9 | "calm"    |
>>
>> | "N"   |   360 | 4.9 | "calm"    |
>>
>> | "NNW" | 337.5 | 4.9 | "calm"    |
>>
>> | "NW"  |   315 | 4.9 | "calm"    |
>>
>> | "WNW" | 292.5 | 4.9 | "calm"    |
>>
>> | "W"   |   270 | 4.9 | "calm"    |
>>
>> | "WSW" | 247.5 | 4.9 | "calm"    |
>>
>> | "SW"  |   225 | 4.9 | "calm"    |
>>
>> | "SSW" | 202.5 | 4.9 | "calm"    |
>>
>> | "S"   |   180 | 4.9 | "calm"    |
>>
>> | "SSE" | 157.5 | 4.9 | "calm"    |
>>
>> | "SE"  |   135 | 4.9 | "calm"    |
>>
>> | "ESE" | 112.5 | 4.9 | "calm"    |
>>
>> | ""    |    90 |   9 | "< 3"     |
>>
>> | ""    |  67.5 |   3 | "< 3"     |
>>
>> | ""    |    45 |   3 | "< 3"     |
>>
>> | ""    |  22.5 |   1 | "< 3"     |
>>
>> | ""    |   360 |   1 | "< 3"     |
>>
>> | ""    | 337.5 | 0.5 | "< 3"     |
>>
>> | ""    |   315 |   1 | "< 3"     |
>>
>> | ""    | 292.5 | 0.5 | "< 3"     |
>>
>> | ""    |   270 |   1 | "< 3"     |
>>
>> | ""    | 247.5 | 0.5 | "< 3"     |
>>
>> | ""    |   225 | 0.5 | "< 3"     |
>>
>> | ""    | 202.5 | 0.5 | "< 3"     |
>>
>> | ""    |   180 |   1 | "< 3"     |
>>
>> | ""    | 157.5 | 0.5 | "< 3"     |
>>
>> | ""    |   135 |   3 | "< 3"     |
>>
>> | ""    | 112.5 |   2 | "< 3"     |
>>
>> | ""    |    90 |   6 | "4 - 12"  |
>>
>> | ""    |  67.5 |   4 | "4 - 12"  |
>>
>> | ""    |    45 |   5 | "4 - 12"  |
>>
>> | ""    |  22.5 |   2 | "4 - 12"  |
>>
>> | ""    |   360 |   5 | "4 - 12"  |
>>
>> | ""    | 337.5 |   4 | "4 - 12"  |
>>
>> | ""    |   315 |   7 | "4 - 12"  |
>>
>> | ""    | 292.5 |   4 | "4 - 12"  |
>>
>> | ""    |   270 |   6 | "4 - 12"  |
>>
>> | ""    | 247.5 |   2 | "4 - 12"  |
>>
>> | ""    |   225 |   4 | "4 - 12"  |
>>
>> | ""    | 202.5 | 1.5 | "4 - 12"  |
>>
>> | ""    |   180 | 1.5 | "4 - 12"  |
>>
>> | ""    | 157.5 | 1.5 | "4 - 12"  |
>>
>> | ""    |   135 |   5 | "4 - 12"  |
>>
>> | ""    | 112.5 | 2.5 | "4 - 12"  |
>>
>> | ""    |    90 |   0 | "13 - 24" |
>>
>> | ""    |  67.5 |   0 | "13 - 24" |
>>
>> | ""    |    45 |   0 | "13 - 24" |
>>
>> | ""    |  22.5 |   0 | "13 - 24" |
>>
>> | ""    |   360 |   1 | "13 - 24" |
>>
>> | ""    | 337.5 | 0.5 | "13 - 24" |
>>
>> | ""    |   315 | 0.5 | "13 - 24" |
>>
>> | ""    | 292.5 |   1 | "13 - 24" |
>>
>> | ""    |   270 |   1 | "13 - 24" |
>>
>> | ""    | 247.5 |   0 | "13 - 24" |
>>
>> | ""    |   225 |   0 | "13 - 24" |
>>
>> | ""    | 202.5 |   0 | "13 - 24" |
>>
>> | ""    |   180 | 0.5 | "13 - 24" |
>>
>> | ""    | 157.5 | 0.5 | "13 - 24" |
>>
>> | ""    |   135 |   1 | "13 - 24" |
>>
>> | ""    | 112.5 |   0 | "13 - 24" |
>>
>> | ""    |    90 |   0 | "> 25"    |
>>
>> | ""    |  67.5 |   0 | "> 25"    |
>>
>> | ""    |    45 |   0 | "> 25"    |
>>
>> | ""    |  22.5 |   0 | "> 25"    |
>>
>> | ""    |   360 |   0 | "> 25"    |
>>
>> | ""    | 337.5 |   0 | "> 25"    |
>>
>> | ""    |   315 |   0 | "> 25"    |
>>
>> | ""    | 292.5 |   0 | "> 25"    |
>>
>> | ""    |   270 |   0 | "> 25"    |
>>
>> | ""    | 247.5 |   0 | "> 25"    |
>>
>> | ""    |   225 |   0 | "> 25"    |
>>
>> | ""    | 202.5 |   0 | "> 25"    |
>>
>> | ""    |   180 |   0 | "> 25"    |
>>
>> | ""    | 157.5 |   0 | "> 25"    |
>>
>> | ""    |   135 |   0 | "> 25"    |
>>
>> | ""    | 112.5 |   0 | "> 25"    |
>>
>>
>> #+begin_src R :session
>>
>> library(ggplot2)
>>
>> <<read-data>>
>>
>> wind <- ggplot(wind.data, aes(x = degree, y = time, fill = wind,
>>
>> xlab(NULL), ylab(NULL)))
>>
>> wind.bar <- wind + geom_bar(stat = "identity", width = 1)
>>
>> wind.bar + coord_polar()
>>
>> #+end_src
>>
>> All the best,
>>
>> Tom
>>
>>
>>
>> On Dec 3, 2009, at 4:35 PM, hadley wickham wrote:
>>
>> Hi Thomas,
>>
>> I suspect you want  geom_bar(stat = "identity", width = 1), but it's
>>
>> hard to be sure without a reproducible example.
>>
>> Hadley
>>
>> On Thu, Dec 3, 2009 at 8:18 PM, Thomas S. Dye <t...@tsdye.com> wrote:
>>
>> Aloha all,
>>
>> I love using ggplot.  It took a while to get used to the grammar of
>>
>> graphics, but it is starting to get easy now that I am thinking in a
>>
>> more structured way.
>>
>> A question.  I'm making a wind rose that I'd like to be oriented with
>>
>> due north straight up.  I've discovered that the orientation is
>>
>> sensitive to how north is represented.  When north is represented as
>>
>> 0, the orientation looks to be shifted just a bit counter-clockwise,
>>
>> perhaps 10 degrees.  When north is represented as 360, the plot is
>>
>> shifted clockwise, but past the point where north is straight up.   
>> How
>>
>> to get north straight up?
>>
>> I've read the book (very nice) and have skimmed through the
>>
>> documentation without finding what I need.  Any help much  
>> appreciated.
>>
>> Here is the code from my Org-babel session:
>>
>> #+begin_src R :session
>>
>> library(ggplot2)
>>
>> wind.data <- read.csv("pmrf_windrose_info_new.csv")
>>
>> wind <- ggplot(wind.data, aes(x = degree, y = time, fill = wind))
>>
>> wind.bar <- wind + geom_bar(stat = "identity")
>>
>> wind.bar + coord_polar()
>>
>> #+end_src
>>
>> All the best,
>>
>> Tom
>>
>> Thomas S. Dye, Ph.D.
>>
>> T. S. Dye & Colleagues, Archaeologists, Inc.
>>
>> Phone: (808) 529-0866 Fax: (808) 529-0884
>>
>> http://www.tsdye.com
>>
>>
>>
>>      [[alternative HTML version deleted]]
>>
>> ______________________________________________
>>
>> R-help@r-project.org mailing list
>>
>> https://stat.ethz.ch/mailman/listinfo/r-help
>>
>> PLEASE do read the posting guide
>>
>> http://www.R-project.org/posting-guide.html
>>
>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
>>
>>
>> --
>>
>> http://had.co.nz/
>>
>>
>>
>>
>>
>>
>> --
>>
>> http://had.co.nz/
>>
>> ______________________________________________
>> R-help@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
>>
>> Thomas S. Dye, Ph.D.
>>
>> T. S. Dye & Colleagues, Archaeologists, Inc.
>>
>> Phone: (808) 529-0866 Fax: (808) 529-0884
>>
>> http://www.tsdye.com
>>
>>
>
>
>
> -- 
> http://had.co.nz/



Thomas S. Dye, Ph.D.
T. S. Dye & Colleagues, Archaeologists, Inc.
Phone: (808) 529-0866 Fax: (808) 529-0884
http://www.tsdye.com



        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to