如何在Plotly条形图中为指定或最高值条形设置不同颜色?
实现plot_ly条形图的条件着色
当然可以实现这两种需求,下面分别给出具体的代码实现:
1. 基于Especie列的“Total”设置不同颜色
你可以先给数据框新增一个颜色列,通过ifelse判断是否是"Total"来指定不同颜色,然后在plot_ly中通过marker参数调用这个颜色列:
Especie <- c("Perros","Gatos","Pájaros","Total") Cantidad <- c(3,2,4,9) df <- data.frame(Especie,Cantidad) # 添加颜色列:Total设为红色,其他为蓝色 df$bar_color <- ifelse(df$Especie == "Total", "#ff4d4d", "#4d94ff") grafico <- plot_ly(df, x = ~Especie, y = ~Cantidad, type = "bar", marker = list(color = ~bar_color)) grafico
2. 基于Cantidad列的最大值设置不同颜色
同样用新增颜色列的方式,判断当前值是否等于Cantidad列的最大值,再指定颜色:
Especie <- c("Perros","Gatos","Pájaros","Total") Cantidad <- c(3,2,4,9) df <- data.frame(Especie,Cantidad) # 添加颜色列:最大值设为绿色,其他为蓝色 df$bar_color <- ifelse(df$Cantidad == max(df$Cantidad), "#4dff4d", "#4d94ff") grafico <- plot_ly(df, x = ~Especie, y = ~Cantidad, type = "bar", marker = list(color = ~bar_color)) grafico
如果需要自定义其他颜色,直接替换代码中的十六进制颜色码即可。
内容的提问来源于stack exchange,提问作者Natalias
相关产品推荐
相关产品推荐

