数値をヒートマップの HTML 背景色に変換する単純な PHP 関数?
-
26-09-2019 - |
質問
私の質問は以下に関連しています 任意の正の整数を RGB 値に変換するアルゴリズム しかし実際には、それは同じ質問ではありません。その人は主にデータ正規化の問題を抱えていますが、私は実際には審美的な色の選択にもっと問題を抱えています。
-1.0 から +1.0 までの数値がたくさんあります。テキストを重ねたヒートマップを作成する必要があります。
PHP を使用して、各数値を HTML カラー (#rrggbb) に変換する最も簡単な方法は何ですか。結果の色が直感的に温度に関連するだけでなく (つまり、最も冷たいものは青、最も熱いものは最も赤、その間は滑らかに変化します)だけでなく、黒色のテキストの背景色としても適しているということですか?
解決
これを、赤と青のコンポーネントの間の単純な線形グラデーションとして実装します。 sprintf
関数 16 進値にエンコードするには:
function toHeatColor($full) {
$positive = ($full + 1) / 2;
return sprintf("#%02xcc%02x", $positive * 51 + 204, (1 - $positive) * 51 + 204);
}
色の範囲がどのように見えるかを確認できます http://jsfiddle.net/9QQkU/. 。対応する値は、-1、-0.75、0、0.75、および 1 です。
所属していません StackOverflow