I am working on assigning the same action code with a specific color but the scale_color_manual does not works for me. The color picked up is still by default. Any suggestions? That will be really helpful!! Either assign the action code using the color column or picked color like 'red'/'black'
library(ggplot2)
library(stringr)
library(librudate)
category <- c('task1', 'task2', 'task2','task1','task1')
start_min <- c(0, 0, 16, 20, 40)
stop_min <- c(14.9,10, 30, 35, 70)
color <- c('#FFFF00','#FFFF00','#3581B8','#3581B8', '#FFFFFF')
action <- c('A', 'A', 'B', 'B', 'C')
data <- data.frame(category,start_min,stop_min, color)
bars <- ggplot(data, mapping=aes(ymin=0, ymax=2,
xmin=start_min, xmax=stop_min,
group=category,
fill=action,
text=paste("Task:", str_wrap(string = action, width = 70,),
"<br>category: ", format(category, digits=1),
"<br>Duration: ", format(action, digits=1))
)) +
facet_grid(category ~ .)+
geom_rect(alpha=0.8) +
labs(title='System Tag') +
theme_minimal()+
theme(plot.title = element_text(hjust=0.5, color="white"), #legend.position = 'none',
plot.subtitle=element_text(hjust=1, vjust=1, color="white"),
axis.title.x=element_text(color="white"), axis.text.x=element_text(color="white"),
axis.text.y=element_blank(), axis.ticks.y=element_blank(),
panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.border = element_blank(), panel.background = element_blank()) +
scale_color_manual(
breaks = c("A", "B", "C"),
values = c("A" = "blue", "B" = "red", "C" = "black") )
bars <- plotly::ggplotly(bars, tooltip="text") %>%
plotly::ggplotly(bars, tooltip="text") %>%
plotly::config(displayModeBar = TRUE) %>%
plotly::layout(plot_bgcolor='white', paper_bgcolor='white', margin = list(b=30, l=0, r=10, t=30))
bars
so the fix is very easy, change
scale_color_manualtoscale_fill_manualIf you want colors to be the color in your
colorvariable, just do this: