質問

私の質問は以下に関連しています 任意の正の整数を 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 です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top