如何将第二个数据集添加到以图形方式标注的热图?

问题描述

我正在尝试创建一个带有下拉菜单的带注释的热图,以在两组不同的数据之间进行切换。数据集具有相同的格式,我添加一个有效的下拉菜单。但是我一次只能添加一个数据集。我正在使用

fig = ff.create_annotated_heatmap(data,annotation_text=numbers,showscale=True,colorscale=colorscale,text=hover,hoverinfo='text')

创建带注释的热图。是否可以通过下拉菜单添加第二个数据集来切换?

解决方法

已解决。必须将第二个数据集添加到下拉菜单对象的args中 以及所需的其他任何更改(例如,悬停文字)

,

我刚刚意识到使用菜单在两个图之间切换是多么容易。您只需从每个图形中获取数据即可创建到之间的轨迹列表

from plotly.offline import init_notebook_mode,iplot
import plotly.figure_factory as ff
init_notebook_mode(connected=True)

fig_1 = ff.create_annotated_heatmap(...)
fig_2 = ff.create_annotated_heatmap(...)
menu_items = ["Heatmap 1","Heatmap 2"]

trace1 = fig_1.to_dict()["data"][0]
trace2 = fig_2.to_dict()["data"][0]

buttons = []
for i,menu_item in enumerate(menu_items):
    visibility = [i==j for j in range(len(menu_items))]
    button = dict(
                 label  =  menu_item,method = 'update',args   = [{'visible': visibility},{ 'title' : menu_item }])
    buttons.append(button)

updatemenus = list([
    dict(buttons = buttons)
])
layout = dict(updatemenus = updatemenus,title=menu_items[0])
fig = dict(data=[trace1,trace2],layout=layout)
iplot(fig)