簡體   English   中英

使用ColorRamp向自定義條形圖添加自定義顏色

[英]Adding Custom Colors to Plotly Bar Chart with ColorRamp

我正在使用Plotly制作圖表。 目前,我正在嘗試將自定義顏色應用於圖形,但是圖形比ColorBrewer調色板提供的顏色更多。

這是我的數據: https : //github.com/kffont/Colorado/blob/master/data1.csv

數據是15行數據的5個數字匯總的最小值,中位數和最大值。 第16行標識類別標簽(最小,中,最大)。

我使用了“色彩斜坡”來創建一個函數,以允許在我的條形圖中使用更多的顏色。 很好 當我嘗試將顏色分配給繪圖時會發生問題。 我使用了許多解決方案都無濟於事。 這是我嘗試過的一些方法:

  1. 創建向量的colnames,顏色= colnames colors =調色板

  2. 使用索引為調色板名稱[1]等分配顏色

  3. 刪除痕跡並創建兩行代碼; 1用於繪圖,一個用於布局。 我在#1中嘗試使用和不使用顏色/顏色方法的方法

這是我使用的基本代碼。

#Libraries
library(plotly)
library(colorRamps)
library(RColorBrewer)

#Create palette      col.a.cat1<-colorRampPalette(brewer.pal(9,"YlOrRd"))

#Color = Colnames
abc<-colnames(data1)

#Barcharts #1 (p) and #2 (o)
p<-plot_ly(a.cat.14, x = ~Level, y = ~a.cat.14[, 1],, type = 'bar', name = colnames(a.cat.14[1])) %>%
    add_trace(y = ~a.cat.14[, 2],  name = colnames(a.cat.14[2])) %>%
      add_trace(y = ~a.cat.14[, 3], name = colnames(a.cat.14[3])) %>%
      add_trace(y = ~a.cat.14[, 4], name = colnames(a.cat.14[4])) %>%
      add_trace(y = ~a.cat.14[, 5], name = colnames(a.cat.14[5])) %>%
      add_trace(y = ~a.cat.14[, 6], name = colnames(a.cat.14[6])) %>%
      add_trace(y = ~a.cat.14[, 7], name = colnames(a.cat.14[7])) %>%
      add_trace(y = ~a.cat.14[, 8], name = colnames(a.cat.14[8])) %>%
      add_trace(y = ~a.cat.14[, 9], name = colnames(a.cat.14[9])) %>%
      add_trace(y = ~a.cat.14[, 10], name = colnames(a.cat.14[10])) %>%
      add_trace(y = ~a.cat.14[, 11], name = colnames(a.cat.14[11])) %>%
      add_trace(y = ~a.cat.14[, 12], name = colnames(a.cat.14[12])) %>%
      add_trace(y = ~a.cat.14[, 13], name = colnames(a.cat.14[13])) %>%
      add_trace(y = ~a.cat.14[, 14], name = colnames(a.cat.14[14])) %>%
      add_trace(y = ~a.cat.14[, 15], name = colnames(a.cat.14[15])) %>%
      layout(title = "Adult Cats: Minimum, Median, Maximum", yaxis = list(title= 'Count'), barmode = 'group')
p

o<-plot_ly(a.cat.14, x = ~Level, y = ~a.cat.14[, c(1:15)],  type = 'bar', name = colnames(a.cat.14)) %>%
  layout(title = "Adult Cats: Minimum, Median, Maximum", yaxis = list(title= 'Count'), barmode = 'group')

感謝您的幫助!

  • colorRampPalette需要“下”和“上”的顏色,在您的情況下可能是黃色和紅色。

     colorRampPalette(list('yellow', 'red')) 
  • 調用返回的函數時,提供的數字參數是要返回的顏色數

     colors <- colorRampPalette(list('yellow', 'red'))(15) 
  • 然后何時可以將顏色分配給Plotly

     p <- plot_ly(x = x, y = y, marker = list(color = colors), type='bar') 

在此處輸入圖片說明


#Libraries
library(plotly)
library(colorRamps)
library(RColorBrewer)

#read csv
csv <- read.csv(url("https://raw.githubusercontent.com/kffont/Colorado/master/data1.csv"))
col_names <- colnames(csv)

#create palette      
colors <- colorRampPalette(list('yellow', 'red'))(length(col_names))

#get y values
y <- list()
for (i in 1:length(col_names))
{
  y[[i]] = csv[[i]][3]  
}

p <- plot_ly(x = col_names[2:15], y = y[2:15], marker = list(color = colors[2:15]), type='bar')
p

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM