Существует довольно много причин, по которым тепловая карта может пойти не так.
позвольте мне указать те, которые применимы для вашего случая!
Z-Axis
элементызадается как строка, но нам нужно передать ее как число, поэтому вы все неправильно получаете цветовую шкалу.Вы можете сделать что-то вроде этого, чтобы получить все числа.
arr = ['1', '1', '1', '0']
[int(i) for i in arr]
Это даст нам список чисел вместо строк
Элементы Z-axis
должны представлять собой список списков (Ex: [[1], [2], [3]])
), где первый список соответствует значениям каждого Y-Axis
и его соответствующим значениям X-Axis
.Что-то вроде:
Y: 1, X: [1, 2, 3], Z: [1234,1234566,56456]
Y: 2, X: [1, 2, 3], Z: [5345,2346,7654]
Так что это может быть установлено в свойствах тепловой карты как:
{x: [1, 2, 3],
y: [1,2],
z: [ [1234,1234566,56456], [5345,2346,7654] ] }
Попробуйте эти изменения и дайте мне знать, если проблема с макетомвсе еще происходит.
Вот пример рабочего кода для справки
import plotly
import plotly.plotly as py
from plotly.grid_objs import Grid, Column
import numpy as np
import pandas as pd
import plotly.offline as py_offline
import plotly.graph_objs as go
import datetime
py_offline.init_notebook_mode()
trace = go.Heatmap(z=
[[int(i) for i in ['1',
'1',
'1',
'0']]],
x= [datetime.datetime(2018, 6, 4, 12, 0, 5),
datetime.datetime(2018, 6, 4, 12, 0, 10),
datetime.datetime(2018, 6, 4, 12, 0, 15),
datetime.datetime(2018, 6, 4, 12, 0, 20)],
y=['MotionSensor'])
data=[trace]
py_offline.iplot(data, filename='labelled-heatmap')