2017-06-01 169 views
1

我正在用以下数据创建一个简单的Plotly条形图,其中各个条形的颜色将根据条形的各个值而变化。然而的颜色的范围应该被定义,即范围从蓝色(最小)到红(最高)带有自定义颜色范围的Plotly(R)条形图

df <- data.frame(x = c('a', 'B'), 
       y = c(100, 50), 
       z = c(100, 50)) 


plot_ly(data = df, 
     x = ~x, 
     y = ~y, 
     marker = list(color = ~z), 
     colors = c("blue", "red"), 
     type = "bar") 

不幸Plotly显示与不同的东西颜色方案条形图。你能指点我正确的代码吗?

在此先感谢

回答

1

我想你想是这样的:

plot_ly(data = df, 
      x = ~x, 
      y = ~y, 
      marker = list(color =c("blue", "red")), 
      type = "bar") 

[编辑]:

按照我所编辑的代码中的注释。希望这是你想要的。

df <- data.frame(x = c('a', 'B', "c", "d", "e"), 
        y = c(100, 50, 20, 10, 100), 
        z = c(100, 50, 20, 10, 100)) 


    colfunc <- colorRampPalette(c("blue", "red")) 
    pal <- colfunc(max(df$z))[df$z] 

    plot_ly(data = df, 
      x = ~x, 
      y = ~y, 
      marker = list(color = pal), 
      type = "bar") 
+0

不是真的,从一个从蓝色到红色的托盘中挑选条形颜色,确切的颜色将基于条的值/高度。意思是,如果我的酒吧的身高非常小,那么它会更接近蓝色,高度更接近红色。请注意:数据'df'不是一个静态data.frame,它是根据一些上游计算来计算/派生的。 – Bogaso

+0

谢谢,完美。 – Bogaso