2016-03-28 10 views
2

Ich habe ein Wörterbuch 'dict' genannt, der wie folgt aussieht:Python: Heatmap von Wörterbuch, bestehend aus Liste von Arrays

{'1005': [array1([3, 2, 5, 3, 4]), array2([1, 2, 5, 9, 0]), array3([4, 2, 6, 3, 2]), array4([2, 4, 6, 3, 2]), array5([3, 2, 5, 5, 2]), array6([1, 6, 4, 5, 1]), array7([3, 2, 4, 6, 2]), array8([3, 5, 2, 5, 2])]}) 

{'1006': [array1([1, 2, 5, 9, 0]), array2([4, 2, 6, 3, 2]), array3([2, 4, 6, 3, 2]), array4([3, 2, 5, 5, 2]), array5([1, 6, 4, 5, 1]), array6([3, 2, 4, 6, 2]), array7([3, 5, 2, 5, 2]), array8([3, 2, 5, 3, 4])]}) 

... etc. ...

Jede dieser ArrayN ein histogramm von Behältern 1 bis 5 ist

Nun würde Ich mag eine Heatmap für jeden 'ArrayN' erhalten, wobei:

y = dict.key() 

x = bin number of dict.value() 

color/z = dict.value() 

Mit anderen Worten, der erste Punkt wäre y = 1005, x = '1' und Farbe/z = '3', zweiter Punkt y = 1005, x = '2', Farbe/z = '2' usw.

Andere Empfehlung, wie dies zu visualisieren wäre auch sehr willkommen.

+0

konvertieren Sie es einfach (in einer Schleife) in ein einzelnes 2D-Array und Schlüssel als Ticks-Etiketten an Heatmap übergeben, das ist alles – lejlot

+0

können Sie zwei oder drei weitere Punkte genaue Werte? Ich kann nicht entscheiden, woher kommt die '1' und' 2' kommt für 'x'. – aluriak

Antwort

0

Ihr Problem kann so formuliert werden:

def make_color_function(n): 
    def color(y, x) 
     # N and x are 1-based 
     return data[y][n - 1][x - 1] 
    return color 

y_range = [1005, 1006] 
x_range = [1, 5] 

Und dann verwenden Sie make_color_function(1) (wenn N == 1), x_range und y_range irgendwie Ihre Daten zu visualisieren.

Wenn Sie Ihr Problem ernsthaft angehen wollen, werfen Sie einen Blick auf numpy und matplotlib. Mit numpy erhalten Sie eine komfortable Indizierung und mit matplotlib erhalten Sie die Möglichkeit, Ihre Daten einfach zu visualisieren.