簡體   English   中英

使用Google Visualization Geochart色階的3種顏色尺寸

[英]3 color dimensions with Google Visualization Geochart Color Scale

我的數據有三個不同的“向量”。 對於數據中的每一行,我都有像狗一樣的百分比,像貓一樣的百分比以及其他寵物一樣的百分比。

A  20, 40, 40
B  10, 20, 70
C  80,  0, 20
D  90, 10,  0
...

我想使用Google Visualization Geochart根據喜歡的寵物用顏色表示國家/地區。 我想通過分配RGB值來做到這一點,具體取決於該國某類寵物的百分比。

因此100、0、0將是100%紅色。 0、100、0將是100%綠色。 0、0、100將是100%藍色。 介於兩者之間。

如果手動編碼顏色,則使用javascript這樣的代碼很容易。 我的問題是,每一行都會有不同的組合(我有很好的關於寵物偏好的數據,低至幾個小數點),這將要求我為每行分配一個顏色值,我大約有200其中。

盡管這是不得已的方法,但我還是更願意使用Geochart內置的漸變為我完成繁重的工作。

問題在於顏色漸變僅允許2d漸變。 我可以有多個漸變,但是我無法確定是否僅使用2d漸變就可以表示3d色彩空間。

因此,我可以為以下項創建漸變:

  • 紅色到綠色
  • 綠色到藍色
  • 藍色到綠色

這將涵蓋可能的顏色范圍,還是僅讓我控制色相,而不是飽和度或亮度? 這可行嗎,或者我只是更好地解決了嗎?

我結束了手動操作,因為它非常容易。 我最終得到了4個矢量作為數據,因此我使用CMYK顏色模型為它們着色。 對於每個向量,我都將百分比計算為顏色的C,M,Y或K分量的一部分。

然后,我使用以下邏輯(偽代碼)將其轉換為RGB:

C' = C * (100% - K) + K
M' = M * (100% - K) + K
Y' = Y * (100% - K) + K

R = 255 - 255 * C'
G = 255 - 255 * M'
B = 255 - 255 * Y'

我將它們轉換為HTML顏色代碼,並將它們扔進一個數組中。 然后,我為與該元素colorAxis.colors的數組中的元素對應的每一行分配一個值,並將其扔到選項的colorAxis.colors部分中。

結果是令人難以置信的可怕,並且作為一種傳達信息的方式是完全不切實際的。 不僅顏色令人討厭(青色,洋紅色和黃色不是很好的顏色組合),而且除非您是真正的顏色專家(我的觀眾不是),否則您真的無法分辨混合的含義。

回到繪圖板!

暫無
暫無

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

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