AdrianGI
AdrianGI

Reputation: 37

Change bar color according to the size of the bar R

With ggplot I´ve made a histogram with some values. I want to change the color of the highest bar, so that it makes the plot more legible.

library(ggplot2)
ggplot(df, 
       aes(as.Date(created_at), as.numeric(count))) +
  geom_col(fill = 'cornflowerblue') + 
  theme_minimal(base_size = 10) +
  xlab(NULL) + ylab(NULL) + 
  scale_x_date(date_labels = "%Y/%m/%d",date_breaks = "days",expand = c(0,0)) +  #El espaciado por días
  theme(axis.text.x=element_text(angle=90, vjust = 0.5))+#Cambiamos la posición del x 
  geom_text(aes(label = count, y = count+50), position = position_dodge(0.9),angle=90, vjust = 0.5,size=3)+
  ggplot2::theme(
    plot.title = ggplot2::element_text(face = "bold",colour = "black"))+
  ggplot2::labs(
    x = NULL, y = NULL, #Info en cada eje 
    title = "Tweets sobre el COVID-19 por día", #Texto 
    subtitle = ""
  )

Upvotes: 0

Views: 245

Answers (1)

Edward
Edward

Reputation: 18683

This may help you:

library(ggplot2)
library(dplyr)

data(mtcars)

count(mtcars, cyl) %>%
  mutate(col=ifelse(n==max(n), "red","blue")) %>%  # Add this line,
  ggplot(aes(cyl, n, fill=as.factor(col))) +
    geom_col() +
    ylab("Frequency") +
    scale_fill_identity() +  # And this one to use the actual colours.
    theme_minimal()

enter image description here

Upvotes: 1

Related Questions