Я пытаюсь построить тепловую карту, используя Plotly с неупорядоченными данными вдоль оси x, например, [0. , 0,5, 1,5, 2., 6., -3., -2., -1., -0.5, 7.8, 8., 3., 4., 4.7, 5.5]. Когда я делаю это, некоторые значения не отображаются. В моем минимальном примере я могу переставить данные вручную, но это невозможно с большими данными, над которыми я работаю.
Я попытался переупорядочить данные вручную, и затем они отображаются правильно, но я не понялспособ исправить эту проблему без переупорядочения вручную.
import numpy as np
import plotly.graph_objects as go
layout = go.Layout(
title='Something',
width=700,
height=700,
)
fig = go.Figure(data=go.Heatmap(
x=[ 0. , 0.5, 1.5, 2., 6., 7.5, -3., -2., -1., -0.5,
7.8, 8., 3., 4., 4.7, 5.5, 12.5, 13., 14., 14.9,
9.5, 10., 11., 11.5, 18.8,19.6, 20.5, 21., 15.7, 16.5,17., 18.],
y=[0,0.5,1],
z=[[10, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,0, 0, 0, 0,1, 0, 0, 0,0, 0, 0, 0,1, 0, 0, 0,0, 0, 0, 0],
[0.1, 0, 0, 0, 0, 0, 0, 0, 0.1, 0, 10, 0, 0, 0, 0, 0, 0.1, 0, 0, 0, 0, 0, 0, 0, 0.1, 0, 0, 0, 0, 0, 0, 0]],
zauto=False, colorscale='Viridis'),
layout=layout)
fig
Редактировать: Чтобы решить эту проблему, я использовал сетку numpy и панду DataFrame
import pandas as pd
x=[ 0. , 0.5, 1.5, 2., 6., 7.5, -3., -2., -1., -0.5,7.8, 8., 3., 4., 4.7, 5.5, 12.5, 13., 14., 14.9, 9.5, 10., 11., 11.5, 18.8,19.6, 20.5, 21., 15.7, 16.5,17., 18.],
y=[0,0.5,1]
z=[[10, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,0, 0, 0, 0,1, 0, 0, 0,0, 0, 0, 0,1, 0, 0, 0,0, 0, 0, 0],
[0.1, 0, 0, 0, 0, 0, 0, 0, 0.1, 0, 10, 0, 0, 0, 0, 0, 0.1, 0, 0, 0, 0, 0, 0, 0, 0.1, 0, 0, 0, 0, 0, 0, 0]]
xx,yy = np.meshgrid(x,y)
source = pd.DataFrame({'x': xx.ravel(),
'y': yy.ravel(),
'z': np.array(z).ravel()})
go.Figure(go.Heatmap(
x = source.x,
y = source.y,
z = source.z,
colorscale='Viridis'))