Вместо этого используйте numpy.nan
типа float
. Вы можете заменить значения в вашем fin_list
, используя понимание вложенного списка:
list_nans=[[np.nan if y is None else y for y in x] for x in fin_list]
Сюжет:
Код:
import plotly.figure_factory as ff
import numpy as np
fin_list = [[None, 9.1, 8.8, 8.7, 8.8, 9.1, 9.2, 9.2, 9.0, 9.6],
[None, 8.8, 8.5, 8.8, 8.8, 8.8, 9.1, 8.9, 8.8, 9.7],
[None, 8.8, 8.6, 8.9, 9.6, 9.0, 8.8, 8.7, 9.0, 9.9],
[None, 9.1, 9.7, 8.9, 8.8, 8.7, 9.7, 9.1, 9.7, 9.6],
[None, 8.5, 8.5, 8.5, 8.7, 8.6, 8.0, 9.0, 9.9, 9.5],
[None, 8.5, 9.4, 8.7, 9.1, 9.7, 8.4, 8.6, 8.4, 9.9],
[None, 8.6, 8.9, 9.2, 9.8, 8.8, 9.1, 9.4, None, None],
[None, 7.6, 7.9, 7.5, 5.5, 6.0, 4.1, None, None, None]]
y_sorted=[1, 2, 3, 4, 5, 6, 7, 8]
y_episodes=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list_nans=[[np.nan if y is None else y for y in x] for x in fin_list]
fig = ff.create_annotated_heatmap(
#x=y_episodes,
#y=y_sorted,
z=list_nans,
#colorscale = 'OrRd'
)
fig.show()
Возможности для улучшения
Обратите внимание, что я закомментировал аргументы x и y. Как вы настроили его, он не работал должным образом. Причиной может быть то, что аргументы x и y различаются для двух фрагментов:
# go.Heatmap()
x=y_episodes,
y=sorted(series['episodes'])
# ff.create_annotated_heatmap()
x=sorted(series['episodes']),
y=y_episodes,
Я оставлю это вам, чтобы выяснить эту конкретную часть. Но, к счастью, ff.create_annotated_heatmap () не требует этих аргументов, как вы можете видеть из моего предложения.
Кроме того, вы можете улучшить саму фигуру, маскируя или удаляя nan
значения в визуализации. Но предоставленное предложение по крайней мере заботится о TypeError: '<' not supported between instances of 'float' and 'NoneType'
, поэтому я надеюсь, что это то, что вам нужно, чтобы продвинуться на шаг вперед.