Frage

Meine Frage bezieht sich auf Algorithmus, um eine positive Ganzzahl in einen RGB -Wert umzuwandeln Aber wirklich ist es nicht die gleiche Frage - dieser Typ hat meistens ein Problem der Datennormalisierung, ich habe tatsächlich mehr ästhetisches Problem mit der Farbauswahl.

Ich habe eine Reihe von Zahlen zwischen -1.0 und +1,0. Ich muss eine mit Text überlagte Heatmap erstellen.

Was ist der einfachste Weg, mit der Verwendung von PHP jede Zahl in eine HTML -Farbe (#RRGGBBBBB) umzuwandeln, so dass die resultierende Farbe nicht nur intuitiv mit der Temperatur zusammenhängt (dh für kälteste und rötlichste für die heißesten, mit einigen glattem glattesten Übergang dazwischen), aber auch, dass es als Hintergrundfarbe für Schwarzfarben-Text geeignet ist?

War es hilfreich?

Lösung

Ich würde es als einfachen linearen Gradienten zwischen den roten und blauen Komponenten implementieren, wobei ich die verwenden würde sprintf Funktion zu einem Hex -Wert codieren:

function toHeatColor($full) {
    $positive = ($full + 1) / 2;
    return sprintf("#%02xcc%02x", $positive * 51 + 204, (1 - $positive) * 51 + 204);
}

Sie können sehen, wie sich das Farbenbereich aussieht http://jsfiddle.net/9qqku/. Die entsprechenden Werte betragen -1, -0,75, 0, 0,75 und 1.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top