我需要可視化一個數字列表,這個列表每x分鐘產生一次。我目前使用一側帶有數字的單行。這可以正常工作,但在進行實時分析時,它會變得很難看清楚。計算兩種顏色之間的顏色?
想了一下我想出了顏色編碼數字的想法,一個大的負數是紅色的,一個大的正數是綠色的,一個正常的正數是淡綠色的,比正常數字略大一點和淺綠色。
爲了說明這我犯了一個形象:
我的問題。例如,如果我們有:
50: Color.green
0: Color.white
-50: Color.red
如何計算代表25的顏色?
我需要可視化一個數字列表,這個列表每x分鐘產生一次。我目前使用一側帶有數字的單行。這可以正常工作,但在進行實時分析時,它會變得很難看清楚。計算兩種顏色之間的顏色?
想了一下我想出了顏色編碼數字的想法,一個大的負數是紅色的,一個大的正數是綠色的,一個正常的正數是淡綠色的,比正常數字略大一點和淺綠色。
爲了說明這我犯了一個形象:
我的問題。例如,如果我們有:
50: Color.green
0: Color.white
-50: Color.red
如何計算代表25的顏色?
對於red <--> white <--> green
之間嚴格的線性表示,
import java.awt.Color;
/* Define the MAXIMUM saturation of RED and GREEN shades
* Range (0-255)
*/
final int RED_MAX = 255;
final int GREEN_MAX = 255;
/* input val varies from -MAX to MAX */
/* output valColor varies from
* -MAX = red
* ^
* |
* v
* 0 = white
* ^
* |
* v
* MAX = green
*/
/* Normalised normVal varies from -255 to 255 */
normVal = (val*255)/MAX
if(val < 0) {
/* Make it red-ish */
valColor = new Color(RED_MAX,
255 + normVal,
255 + normVal);
} else if (val > 0) {
/* Make it green-ish */
valColor = new Color(255 - normVal),
GREEN_MAX,
255 - normVal);
} else {
/* Absolute White */
valColor = new Color(255, 255, 255);
}
感謝您的建議,它看起來是一個很好的解決方案,我明天會試一試。還讚揚丹尼和克里斯! – TinusSky
我認爲這個存在的問題應該給你一些接近你正在尋找:
由於綠色和紅色之間爲黃色,因此不能應用該選項。所以它更多的是評論而不是回答。 –
@Vash爲什麼他可以,如果他也會改變飽和度爲1.8 * Math.abs(power-0.5)'。 – Vesper
我寫了一些非常相似,也許這會有所幫助。這已經有一段時間了,所以我不記得我爲什麼做了我所做的事情,但我嘗試了各種顏色的變體(例如深紅色和淺紅色)。根據所需的顏色數量,我會從光譜的一端(色調)和「間隙」開始,直到光譜的另一端,其間隙取決於我需要的顏色數量。所以,如果你需要10種獨特的顏色,它會將光譜分成1/5秒,並在每個第5個顏色中選擇一個明暗。
不知道這是否合理,但希望它有幫助。
import java.awt.Color;
import java.util.ArrayList;
import java.util.List;
public class ColorPicker
{
public static List<Color> chooseDistinguishableColors(int numberOfColors)
{
List<Color> colors = new ArrayList<>();
float gap = 1.0f/(float) ((numberOfColors/2) + (numberOfColors % 2));
for (int i = 0; colors.size() < numberOfColors; i++)
{
float hue = i * gap;
colors.add(new Color(Color.HSBtoRGB(hue, 1.0f, 0.90f)));
colors.add(new Color(Color.HSBtoRGB(hue, 1.0f, 0.65f)));
}
return colors;
}
}
這取決於你想要遵循什麼樣的曲線? – harold
如何使用RGB,CMYK或HSV表示顏色? –
您是使用RGB(或其他顏色編碼)表示顏色還是僅僅是一種約定? – araknoid