Home > database >  Order geom_bar y axis by percentage of one particular value in column (position = "fill")
Order geom_bar y axis by percentage of one particular value in column (position = "fill")

Time:11-17

how would I go about plotting this where the clusters are reordered in decreasing % of kiwi?

df = data.frame()
df = data.frame(matrix(df, nrow=200, ncol=2))
colnames(df) <- c("cluster", "name")
df$cluster <- sample(20, size = nrow(df), replace = TRUE)
df$fruit <- sample(c("banana", "apple", "orange", "kiwi", "plum"), size = nrow(df), replace = TRUE)

p = ggplot(df, aes(x = as.factor(cluster), fill = as.factor(fruit))) 
  geom_bar(position = 'fill')   
  theme_classic() 
  coord_flip()  
  scale_y_continuous(labels = scales::percent)   
  theme(axis.text.y = element_text(size = 20),
        axis.title.x = element_text(size = 20),
        axis.title.y = element_text(size = 20),
        axis.text=element_text(size=20))  
  theme(legend.text = element_text(size = 20))  
  xlab("Cluster") 
  ylab("Fruit percentage")  
  labs( fill = "")
p  

enter image description here

CodePudding user response:

Adapting the elegeant enter image description here

  • Related