[R] Can this be done in ggplot?

Kenneth Roy Cabrera Torres krcabrer at une.net.co
Sat Apr 15 04:40:00 CEST 2017


A very dirty solution.

I hope someone can give a better solution:

library(ggplot2)
set.seed(1)
df <- expand.grid(g = factor(1:4), f = factor(c("a", "b", "c")))
df <- df[-1, ] # some factors are not present in certain groups
df$v <- runif(nrow(df))

library(dplyr)

df <- df %>% arrange(g, desc(v))
df$nv <- with(df, factor(paste(g,f)))
df$nv <- factor(df$nv, levels = df$nv)

ggplot(df, aes(x = nv , y = v, fill = f)) +
   geom_bar(position="dodge", stat = "identity")


El 14/04/17 a las 10:08, Axel Urbiz escribió:
> Hi,
>
> I need to bars to display in order based on the values of "v" within each
> group "g". Is this possible?
>
> library(ggplot2)
> set.seed(1)
> df <- expand.grid(g = 1:4, f = factor(c("a", "b", "c")))
> df <- df[-1, ] # some factors are not present in certain groups
> df$v <- runif(nrow(df))
>
> ggplot(df, aes(x = g, y = v, fill = f)) +
>    geom_bar(position="dodge", stat = "identity")
>
> Thanks,
> Axel.
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.


	[[alternative HTML version deleted]]



More information about the R-help mailing list