我想根据红色刻度上的值为每个条着色。例如,最大的条形为黑色rgb(0,0,0),最小的条形为rgb(80,0,0),中间的条形会有所不同。
下面的链接在python中有一个解决方案,我想重新使用并使用plotly
Changing color scale in seaborn bar plot
library(plotly)
city <- c("Paris", "New York", "Rio", "Salvador", "Curitiba", "Natal")
value <- c(10,20,30,10,10,10)
data <- data.frame(city, value, stringsAsFactors = FALSE)
data <- data[order(-data$value, data$city),]
data$city <- factor(data$city, levels = unique(data$city)[order(data$value, decreasing = FALSE)])
fig <- plot_ly(y = reorder(data$city,-data$value), x = data$value, type = "bar", orientation = 'h') %>% layout(yaxis = list(autorange = "reversed"))
fig
[如果您是我,我会在R中使用ggplot2软件包。您可以将ggplot绘图直接输入Plotly。
请参见备忘单:https://github.com/rstudio/cheatsheets/blob/master/data-visualization-2.1.pdf
有一个scale_fill_gradient()函数,您可以在其中设置低值和高值。它会完全适合您的目的。