5

私の質問は、正の整数をRGB値に変換するアルゴリズムに関連していますが、実際には同じ質問ではありません。その人は主にデータの正規化の問題を抱えており、実際にはもっと美的な色の選択の問題があります。

-1.0から+1.0までの数字がたくさんあります。テキストをオーバーレイしたヒートマップを作成する必要があります。

PHPを使用して、各数値をHTMLカラー(#rrggbb)に変換する最も簡単な方法は、結果の色が直観的に温度に関連するだけでなく(つまり、最も寒い場合は最も青く、最も暑い場合は最も赤く、滑らかな色になります)間の遷移)だけでなく、黒色のテキストの背景色としても適していますか?

4

1 に答える 1

12

16進値にエンコードするsprintf関数を使用して、赤と青のコンポーネント間の単純な線形グラデーションとして実装します。

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です。

于 2010-11-21T00:34:31.910 に答える