修改 R Plotly 中的单个刻度标签

Modifying individual tick labels in R Plotly

假设我有一些代码,例如

library(plotly)

Animals <- c("giraffes", "orangutans", "monkeys")
SF_Zoo <- c(20, 14, 23)
LA_Zoo <- c(12, 18, 29)
data <- data.frame(Animals, SF_Zoo, LA_Zoo)

p <- plot_ly(data, x=~Animals, y=~SF_Zoo, type='bar', name='SF Zoo') %>%
     add_trace(y=~LA_Zoo, name='LA Zoo') %>%
     layout(yaxis=list(title='Count'), barmode='stack')

我想弄清楚我如何为三个 x 轴标签(长颈鹿、猴子、猩猩)涂上不同的颜色,我一直在尝试使用类似的方法来做到这一点,

xaxis=list(tickfont=list(color=c('red', 'yellow', 'blue')))

layout 函数中,但它不起作用。

如何单独修改刻度标签?

目前这不像 xaxis=list(tickfont=list(color=c('red', 'yellow', 'blue'))) 那样直接,因为刻度标签的颜色与轴的属性相关联,而不是与单个刻度相关联。您可以 为可见轴的不同部分分配不同的颜色,但您必须添加额外的轴。这已在此处详细完成:

我想我找到了一个使用 HTML 语法的技巧。

library(dplyr)
library(plotly)  

plot_ly(x = 1:3, y = 1:3) %>%
  layout(
    xaxis = list(
      tickmode = "array",
      tickvals = 1:3,
      ticktext = c(
        "<span style='color:red'>A</span>",
        "<span style='color:yellow'>B</span>",
        "<span style='color:blue'>C</span>"
      )
    )
  )