kyper-data / python-highcharts

A simple translation layer between Python and Javascript for Highcharts projects (highcharts, highmaps, and highstocks).
MIT License
393 stars 190 forks source link

Heatmap chart doesn't give the desired result instead plot the line graph. #82

Open ninjakx opened 3 years ago

ninjakx commented 3 years ago

I am trying to generate the heatmap using the example heatmap code:


# -*- coding: utf-8 -*-
"""
Highcharts Demos
Heatmap: http://www.highcharts.com/demo/heatmap
"""
from highcharts import Highchart
H = Highchart()

data = [
    [0, 0, 10],
    [0, 1, 19],
    [0, 2, 8],
    [0, 3, 24],
    [0, 4, 67],
    [1, 0, 92],
    [1, 1, 58],
    [1, 2, 78],
    [1, 3, 117],
    [1, 4, 48],
    [2, 0, 35],
    [2, 1, 15],
    [2, 2, 123],
    [2, 3, 64],
    [2, 4, 52],
    [3, 0, 72],
    [3, 1, 132],
    [3, 2, 114],
    [3, 3, 19],
    [3, 4, 16],
    [4, 0, 38],
    [4, 1, 5],
    [4, 2, 8],
    [4, 3, 117],
    [4, 4, 115],
    [5, 0, 88],
    [5, 1, 32],
    [5, 2, 12],
    [5, 3, 6],
    [5, 4, 120],
    [6, 0, 13],
    [6, 1, 44],
    [6, 2, 88],
    [6, 3, 98],
    [6, 4, 96],
    [7, 0, 31],
    [7, 1, 1],
    [7, 2, 82],
    [7, 3, 32],
    [7, 4, 30],
    [8, 0, 85],
    [8, 1, 97],
    [8, 2, 123],
    [8, 3, 64],
    [8, 4, 84],
    [9, 0, 47],
    [9, 1, 114],
    [9, 2, 31],
    [9, 3, 48],
    [9, 4, 91]
]

H.add_data_set(data, )

H.set_options('chart', {
    'type': 'heatmap',
    'marginTop': 40,
    'marginBottom': 80,
    'plotBorderWidth': 1
})

H.set_options('xAxis', {
    'categories': 
        ['Alexander', 'Marie', 'Maximilian', 'Sophia', 'Lukas', 'Maria', 'Leon', 'Anna', 'Tim', 'Laura']
})

H.set_options('yAxis', {
    'categories': ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'],
    'title': None
})

H.set_options('title', {
    'text': "Sales per employee per weekday"
})

H.set_options('colorAxis', {
    'min': 0,
    'minColor': '#FFFFFF',
    'maxColor': '#7CB5EC'
})

H.set_options('legend', {
    'align': 'right',
    'layout': 'vertical',
    'margin': 0,
    'verticalAlign': 'top',
    'y': 25,
    'symbolHeight': 280
})

H.set_options('tooltip', {
    'formatter': "function () {" + 
                "return '<b>' + this.series.xAxis.categories[this.point.x] + '</b> sold <br><b>' +" +
                    "this.point.value + '</b> items on <br><b>' + this.series.yAxis.categories[this.point.y] + '</b>';" +
            "}"
})

H

resulted plot: s1

Expected: s1