[R] Stacked barchart color

owenman solberg at speakeasy.net
Mon Jun 18 21:38:18 CEST 2007


Hi Hadley,
Great, I am starting to get it.  It's working for me, but there is one more
thing I am having trouble with.  The ordering of the stacked bars seems to
be dictated by the name of the color, I guess because of the fill=color
argument in aes().  In other words, if I set up my colors like this: 
y$color = c("gray1","gray35","gray45","gray65")  the bars get stacked in the
opposite order than if I set up the colors like this:  y$color =
c("gray65","gray45","gray35","gray1").  How can I control the order of the
bars independent of the name of the colors?   Thanks so much in advance! 
Really neat package you've made.

FYI, my plot command now looks like this:
p = ggplot(y, aes(x=locus, y=Freq, fill=color))
p = p + geom_bar(position="fill")
p = p + scale_fill_identity(labels=levels(y$Fnd), grob="tile", name="Fnd
Results")
p = p + coord_flip()

And the data table is similar as before:
> y
      Fnd locus        Freq  color
1  signeg  DPB1 0.013071895  gray1
2     neg  DPB1 0.581699346 gray35
3     pos  DPB1 0.379084967 gray45
4  sigpos  DPB1 0.026143791 gray65
5  signeg  DPA1 0.068181818  gray1
6     neg  DPA1 0.659090909 gray35
7     pos  DPA1 0.250000000 gray45
8  sigpos  DPA1 0.022727273 gray65



hadley wrote:
> 
> Hi Owen,
> 
> The identity scale won't create a legend, unless you tell it what
> labels it should use - there's an example at
> http://had.co.nz/ggplot2/scale_identity.html.  Otherwise, if you have
> a continuous scale and you want something that works in black and
> white, p + scale_fill_gradient(low="white", high="black") might be
> easier.
> 
> Hadley
> 
> 
>>
>> > y$color = factor(y$Fnd)
>> > y$color = c("black","darkgray","lightgray","white")
>> > y
>>       Fnd locus        Freq color
>> 1  signeg     A 0.087248322     black
>> 2     neg     A 0.711409396  darkgray
>> 3     pos     A 0.201342282 lightgray
>> 4  sigpos     A 0.000000000     white
>> 5  signeg     C 0.320754717     black
>> 6     neg     C 0.603773585  darkgray
>> 7     pos     C 0.075471698 lightgray
>> 8  sigpos     C 0.000000000     white
>> 9  signeg     B 0.157534247     black
>> 10    neg     B 0.732876712  darkgray
>> 11    pos     B 0.109589041 lightgray
>> 12 sigpos     B 0.000000000     white
>>
>> > p = ggplot(y, aes(x=locus, y=Freq, fill=color)) +
>> > geom_bar(position="fill") + scale_fill_identity()
>> > p
>>
>>
>>
>>
>> hadley wrote:
>> >
>> >
>> > Hi Dieter,
>> >
>> > You can do this with ggplot2 (http://had.co.nz/ggplot2) as follows:
>> >
>> > library(ggplot2)
>> >
>> > barley1 <- subset(barley, site=="Grand Rapids" & variety %in%
>> > c("Velvet","Peatland"))
>> > barley1[] <- lapply(barley1, "[", drop=TRUE)
>> >
>> > qplot(variety, yield, data=barley1, geom="bar", stat="identity",
>> > fill=factor(year))
>> >
>> > barley1$fill <- c("red","green","blue","gray")
>> > qplot(variety, yield, data=barley1, geom="bar", stat="identity",
>> > fill=fill) + scale_fill_identity()
>> >
>> > See http://had.co.nz/ggplot2/scale_identity.html and
>> > http://had.co.nz/ggplot2/position_stack.html for more details.
>> >
>> > Hadley
>> >
>> >
>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Stacked-barchart-color-tf3909162.html#a11149419
>> Sent from the R help mailing list archive at Nabble.com.
>>
>>
>> ______________________________________________
>> R-help at stat.math.ethz.ch 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.
>>
> 
> ______________________________________________
> R-help at stat.math.ethz.ch 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.
> 
> 

-- 
View this message in context: http://www.nabble.com/Stacked-barchart-color-tf3909162.html#a11182581
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list