[英]Custom hovertemplate for plotly express heatmap
我正在尝试在 python 中使用plotly.express
从带有包含附加变量的自定义悬停模板的plotly.express
数据帧生成热图。 例如:
import pandas as pd
import plotly.express as px
df = pd.DataFrame({'A': [10, 11, 12], 'B': [10, 12, 14], 'C': [12, 14, 16]},
index=['joe', 'tom', 'bob'])
fig = px.imshow(df)
fig.update_layout(xaxis={'title': 'Letters'}, yaxis={'title': 'Nicknames'})
fig.show()
给我这个:
我想要的是添加或替换悬停信息中的变量,例如,将昵称替换为 Joseph、Thomas 和 Robert。
这必须是可能的,但我无法弄清楚如何使用热图来做到这一点。 在plotly.express
是否有直接的方法来做到这plotly.express
? 我应该改用“go”界面(如果是,如何)?
我想我找到了答案:
import pandas as pd
import numpy as np
import plotly.express as px
df = pd.DataFrame({'A': [10, 11, 12], 'B': [10, 12, 14], 'C': [12, 14, 16]},
index=['joe', 'tom', 'bob'])
names = ['Joseph', 'Thomas', 'Robert']
fig = px.imshow(df)
fig.update(data=[{'customdata': np.repeat(names, len(df.columns)).reshape(3, 3),
'hovertemplate': 'Letter: %{x}<br>Nickname: %{y}<br>Fullname: %{customdata}<br>Color: %{z}<extra></extra>'}])
fig.update_layout(xaxis={'title': 'Letters'}, yaxis={'title': 'Nicknames'})
fig.show()
可以按以下格式自定义轴标签和比例
px.imshow(df, labels=dict(x='',y=''), x=[], y=[])
代码:
import pandas as pd
import plotly.express as px
df = pd.DataFrame({'A': [10, 11, 12], 'B': [10, 12, 14], 'C': [12, 14, 16]},
index=['joe', 'tom', 'bob'])
fig = px.imshow(df, labels=dict(x='Lowcase Letters', y='Full Name'),
x=['a','b','c'],
y=['Joseph','Tomas','Robert'])
# fig.update_layout(xaxis={'title': 'Letters'}, yaxis={'title': 'Nicknames'})
fig.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.