[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