Python Plotly Heatmap 日期时间只显示部分
Python Plotly Heatmap Datetime only showing portion
我正在定义一个具有二进制 z 值的热图日期时间序列。
go.Heatmap的输出似乎是正确的...但是,该图只显示了它的很小一部分..
谁能帮忙调试一下?我没有为布局组件设置任何限制(我也没有设置任何内容)。
{'colorscale': 'Viridis',
'type': 'heatmap',
'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),
.....
all the way to index 719],
'y': ['MotionSensor'],
'z': ['1',
'1',
'1',
'0',
'0',
'0',
'0',
'0',
.....
all the way to index 719]}
热图出错的方式有很多种。
让我指出适用于您的情况的那些!
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')
我正在定义一个具有二进制 z 值的热图日期时间序列。
go.Heatmap的输出似乎是正确的...但是,该图只显示了它的很小一部分..
谁能帮忙调试一下?我没有为布局组件设置任何限制(我也没有设置任何内容)。
{'colorscale': 'Viridis',
'type': 'heatmap',
'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),
.....
all the way to index 719],
'y': ['MotionSensor'],
'z': ['1',
'1',
'1',
'0',
'0',
'0',
'0',
'0',
.....
all the way to index 719]}
热图出错的方式有很多种。
让我指出适用于您的情况的那些!
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')