# Heatmap

Eine Heatmap (englisch heat = ‚Hitze‘, ‚Wärme‘; map = ‚Karte‘, also z. B. Wärmebild wie bei einer Wärmebildkamera) ist ein Diagramm zur Visualisierung von Daten aufgrund einer Funktion (Mathematik), mit der eine zweidimensionale Definitionsmenge (z. B. die Punkte einer Hauswand oder einer Landkarte) auf den Zahlenstrahl (z. B. die Skala eines Thermometers) abgebildet und farblich dargestellt wird. Diese Visualisierung dient dazu, in einer großen Datenmenge intuitiv und schnell einen Überblick zu geben und besonders markante Werte leicht erkennbar zu machen.
Der Begriff Heatmap ist unscharf. Er reicht in der engen Interpretation von (hohen) Temperaturen auf einer Landkarte bis hin zu Tree Maps mit unsystematischer Farbcodierung. Weite Verbreitung finden die Bestimmungen
* zweidimensionale Definitionsmenge: Zeilen und Spalten einer Tabelle, Achsen einer mathematischen Funktion, Bild(schirm)-Koordinaten (Foto, Webseite)
* Farbcodierung der abhängigen Werte: Darstellung durch eine Temperaturskala (die als solche erkennbar ist), ordinalskalig oder gestufte Zuordnung des Farbtons, einem (Ausschnitt) des Spektrums oder des Farbkreises folgend; monochrome Variation von Sättigung oder Helligkeit; aber auch Schwarz-weiß- oder Grauwerte, schattiert, gepunktet, schraffiert oder grafisch auf andere Weise unterschieden.
Der Name Heatmap leitet sich daraus ab, dass manche Farben mit Temperaturen assoziiert werden.

## Geschichte

Die Verwendung von Heatmaps geht mindestens bis auf Toussaint Loua zurück, der im Jahre 1873 statistische Daten der Arrondissements von Paris als Tabelle mit schattierten Feldern darstellte, erst schwarz-weiß, dann farbig.
Sneath (1957) stellt das Ergebnis einer Clusteranalyse dar, indem er Zeilen und Spalten einer Matrix permutierte, um ähnliche Werte entsprechend ihrer Häufung nahe beieinander zu platzieren. Die Idee, Cluster-Bäume an Zeilen und Spalten einer Datentabelle anzufügen, geht auf Robert Ling im Jahre 1973 zurück. Leland Wilkinson entwickelte 1994 das erste Computerprogramm (SYSTAT), um Cluster-Heatmaps mit großer Farbtiefe zu erzeugen.

## Farbcodierung

Ist die abhängige Variable ein Skalar, so lässt sie sich auf natürliche Weise auf eine Temperaturskala abbilden. Weist man in einem zweiten Schritt einer Temperatur eine Farbe zu, Blau gilt als kalte Farbe, Rot, Orange und Gelb als warme Farben, so erklärt das den Namen Heatmap.
Die Verbindung von Farbe und Temperatur ist kulturell geprägt und nicht zwingend. Die Wahl der Farbskala ist daher willkürlich und dem Ersteller der Heatmap freigestellt.
Bei festen Endpunkten der Skala stellt sich die Frage der Übergangsfarben. Eine Glühlampe mit steigendem Stromdurchfluss glimmt erst rot (warm), wird dann gelb und schließlich weiß (heiß). Ergänzt um das kalte Blau kann eine Farbskala wie folgt aussehen: Schwarz (unbunt, kältest) – Blau – Violett – Rot – Gelb – Weiß (unbunt, heißest).
Eine breitere Ausnutzung des Farbkreises schreitet von Blau über Grün – Gelb – Orange nach Rot vor. Violett kann hier als kälteste Farbe unterhalb von Blau hinzutreten. Rot ist dann die heißeste, Violett die kälteste Farbe, im Gegensatz zum Glühlampenmodell, wo Violett und Rot mittlere Temperaturen repräsentieren.
Farbe ist in diesem Zusammenhang ein unscharfer Begriff. Er lässt sich präzisieren etwa durch Farbton, Sättigung und Helligkeit oder aber durch Rot-, Grün- und Blauanteil oder andere Parametermodelle. Dadurch lassen sich entweder weitere Dimensionen (Datenreihen) in einem Diagramm darstellen oder aber durch Beschränkung Probleme wie Farbenfehlsichtigkeit oder Schwarz-Weiß-Druckausgabe entschärfen.

## Varianten
### Hitzekarte

Eine Hitzekarte im engeren Sinn stellt eine Temperaturverteilung auf einer Landkarte dar, etwa die (Sommer-)Temperaturen in der Stadt oder auf einer topologischen U-Bahn-Karte.
Hitzekarte ist die wörtliche deutsche Übersetzung von Heatmap. Inwiefern damit die gleichen Konzepte beschrieben oder ein Falscher Freund geschaffen wird, ob sich das Lehnwort in seiner englischen oder deutschen Schreibweise im deutschen Sprachraum festsetzen kann, ist unklar.

### Wärmebild

Ein Wärmebild repräsentiert Temperaturen farbcodiert in zwei Dimensionen. Da der Messwert im Prinzip bereits eine Temperatur ist, entfällt der Abstraktionsschritt vom Messwert auf eine Temperaturskala. Wärmebilder stellen somit die Urform der Heatmap dar und erklären ihren Namen.

### Falschfarbenbild

Bei Falschfarbenbildern werden die Farben oder Graustufen eines Originalbildes auf neue Farben umcodiert zur Erhöhung des Kontrasts oder der intuitiven Erfassbarkeit.

### Geclusterte Heatmap

Besteht keine Ordnung auf den Achsen der Tabelle, so können die Zeilen (Spalten) ohne Informationsverlust permutiert werden. Wird die Vertauschung so durchgeführt, dass ähnliche Zeilen (Spalten) aufeinander folgen, so erhält die Tabelle zusätzliche Struktur und die Cluster fallen deutlich ins Auge.

### Tree Map

Eine Tree Map basiert nicht auf einer zweidimensionalen Tabelle, sondern auf einer hierarchischen Knotenmenge. Zweifelhaft ist, inwiefern der Begriff der Heatmap hier gerechtfertigt ist, insbesondere wenn die Farben keiner intuitiv erfassbaren Systematik folgen oder triviale Werte wie die Pfadlänge farbcodiert wird anstelle etwa der Partitionsgröße in einem Dateisystem. Ähnliches gilt für Mosaik-Diagramme.

## Alternativen

Statt durch Farbe kann ein Variablenwert auch durch andere Merkmale dargestellt werden. Kombinationen mit Farben im Allgemeinen und einer Heatmap im Besonderen sind möglich.

### Blasendiagramm

Statt durch eine Farbe kann der abhängige Variablenwert auch durch eine geometrische Figur, etwa einem Kreis in einem Blasendiagramm, dargestellt werden. Der Wert ist dann wahlweise proportional zum Durchmesser oder zur Fläche. Bei einer Tabelle mit drei unabhängigen Parametern wird aus dem Kreis eine Kugel. Verwendung findet diese Darstellung besonders, wenn die Achsen geordnet und die Tabelle dünn besetzt ist.

### Säulendiagramm

Bei einem Säulendiagramm werden die Variablenwerte durch die Höhe von Säulen dargestellt. Weitere Dimensionen lassen sich gewinnen durch Hinzunahme weiterer Säulen je Tabellenfeld. Maxima lassen sich sehr gut erfassen, kleinere Werte im Hintergrund werden durch größere im Vordergrund verdeckt. Ähnliches gilt für ein Oberflächendiagramm.

## Anwendungen

Eine Auswahl von Anwendungen für Heatmaps (Liste nicht vollständig):

### Molekularbiologie

    Visualisierung von Genexpressionsdaten; Darstellung, wie experimentelle Bedingungen die Produktion (Expression) von mRNA für eine Gruppe von Genen beeinflussen.

### Webdesign

    Visualisierung von Klicks, Mausbewegung oder Blickdauer (Eyetracker) zum Zwecke der Entwicklung und Erfolgskontrolle, unterstützt die Optimierung des Layouts, der Benutzerfreundlichkeit und der Platzierung von Elementen und Werbemitteln auf Onlineshops, Blogs, Portalen und normalen Webseiten.

### Funktionsgraph

    alternativ oder verstärkend kann ein Funktionsgraph auf einer zweidimensionalen Definitionsmenge mit einer Heatmap versehen werden.

### Sport

    Aufenthaltsdauer von Fußballspielern in einem bestimmten Spielfeldbereich

### Geolokalisierung

    Nachrichten und ihre Häufung auf einer Weltkarte. Genauso lassen sich Fotos, Niederschläge, Geburten- und Todesfälle und jedes andere geolokalisierbare Datum visualisieren.

### Börse

    Kursbewegung relativ zum Vortag, hinterlegt mit Hintergrundinformationen
* Clusterheatmap in der Genexpressionsanalyse mit Clusterbäumen an den Achsen
* Webanalyse: Klickdichte auf einer Webseite
* Aufenthaltsdauer auf dem Fußballfeld
* Kombination aus Heatmap und Oberflächendiagramm

## Software

* R (Statistiksoftware) – Kostenlose Statistiksoftware, Quasi-Standard im akademischen Bereich, enthält mehrere Funktionen zum Zeichnen von Heatmaps
* Gnuplot – universelles und kostenloses kommandozeilenorientiertes Programm für Funktionsgraphen, ermöglicht das Zeichnen von 2D- und 3D-Heatmaps. Ähnliche Programme sind PyXPlot, Matplotlib und andere.
* In der Biologie ist der Diagrammtyp der Heatmap weit verbreitet, so dass es eine Vielzahl von Herstellern gibt, die passende Software anbieten.
* Microsoft Excel kann dazu gebracht werden, Heatmaps zu erzeugen, indem das Oberflächendiagramm verwendet wird. Da die Standardfarben der Legende mit einer Heatmap nicht verträglich sind, können die Farben geändert werden, um benutzerfreundliche und intuitive Heatmaps zu erzeugen. LibreOffice und OpenOffice.org bieten diesen Diagrammtyp nicht direkt an, die Abbildungen können aber mittels bedingter Formatierung erzeugt werden.

## Eigenschaften

Menschen mit Farbenfehlsichtigkeit können die Informationen in einer Heatmap mit bunten Farben schlechter, falsch oder gar nicht wahrnehmen. Das sollte bei Überlegungen zur Barrierefreiheit berücksichtigt werden. Je nach Ausgabemedium kann die Farbe unterschiedlich ausfallen: Jeder Bildschirm stellt Farben anders dar; beim Druck findet ein Wechsel von additiver zu subtraktiver Farbmischung statt, was den Farbeindruck verändert. Abhilfe kann hier die Beschränkung auf monochrome Farbskalen oder Grauwerte schaffen.