2017-06-01 208 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