Plotly - 订购&按因子变量着色并在条形图中

时间:2017-08-25 09:11:47

标签: r plot colors plotly factors

您好,

我正在使用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

总而言之,我的问题是:如何使用频率作为连续颜色为这样一个有条理的曲线条形图着色?

enter image description here

1 个答案:

答案 0 :(得分:1)

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

enter image description here

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)
        )