Hi, I am trying to produce a dumbell plot in R. In this case, there are four rows, and they need to have different and specific colors each. I define the colors as part of the dataset using colorRampPalette(). Then when I produce the plot, the colors get mixed in inappropriate ways. See the image below, and in particular the legend.
As you can see, the orange is supposed to be #7570B3 according to the legend. But this is not correct. The color 7570B3 is purple ! For this reason, the colors that I had defined in the dataset are mixed in the plot. “Alt 2” sound be in orange and “Alt 3” should be in purple.
Does anyone know how to fix this ? Any help would be very appreciated.
Here is a simple version of the code:
table_stats_scores <- data.frame(alt=c(“alt1”,“alt2”,“alt3”,“alt4”),
average=c(15,20,10,5),
dumb_colors= colorRampPalette(brewer.pal(4,“Dark2”))(4),
min=c(10,15,5,0),max=c(20,25,15,10)
)
table_stats_scores
table_stats_scores <- table_stats_scores[order(-table_stats_scores$average),]
table_stats_scores
table_stats_scores$alt <- factor(table_stats_scores$alt,
levels = table_stats_scores$alt[order(table_stats_scores$average)])
p <- plot_ly(table_stats_scores, x=table_stats_scores$average, color = ~ dumb_colors,
y=table_stats_scores$alt,text=table_stats_scores$alt) %>%
add_segments(x = ~min, xend = ~max, y = ~alt, yend = ~alt,name = “Min-Max range”,
showlegend = FALSE, line = list(width = 4)) %>% # colors = colors,
add_markers(x = ~average, y = ~alt, name = “Mean”, marker=list(size=8.5),showlegend = FALSE) %>%
add_text(textposition = “top right”) %>%
layout(title = “Scores of alternatives”,
xaxis = list(title = “scores”),
yaxis = list(title = “Alternatives”)
)
p