Plotly - 按因子变量和条形图排序和着色

Plotly - Ordering & Colouring by Factor Variables and in a Bar Chart

嗨,

我正在使用 plotly 生成有序条形图,它会在 X 轴上显示客户群,在 Y 轴上显示频率计数。 问题是,我也想根据段的频率设置颜色。

我正在使用具有 93 个观察值的数据框,其结构与此相同:

   df <- data.frame(
         Segments = c("Pete", "Gary", "TopNews"...),
         Frequency = c(4,2,5...)
         )

问题

正如预期的那样,R 自动将 'Segments' 变量识别为一个因子。当我第一次绘制图表时,它会自行排序(如预期的那样)。我使用了以下代码:

  plot_ly(Segments2, y = ~Var1, x = ~Freq, type = "bar", orientation = 'h')

所以这不是问题,但是当我试图将条形颜色与 'Freq' 变量相关联时,它就成了问题,即:

    plot_ly(Segments2, y = ~Var1, x = ~Freq, type = "bar", color = ~Freq, orientation = 'h')

当然R打印了如下错误:

‘range’ not meaningful for factors

所以总而言之,我的问题是:如何使用频率作为顺序颜色为这样一个有序的条形图着色?

您可以将您的频率添加到 marker 对象的 color

library(plotly)

df <- data.frame(
  Segments = c("Pete", "Gary", "TopNews", "Harry"),
  Freq = c(4,2,5,3)
)

plot_ly(df, 
        y = ~Segments, 
        x = ~Freq, 
        type = "bar", 
        orientation = 'h',
        marker = list(color = df$Freq,
                      showscale=T)
        )