我有一个用 python 绘制的热图。 hovertext 工作完美,但是它的每个变量都以 x、y 或 z 为前缀,如下所示:
有什么办法可以改变这个,即 x = "FY", y = "Month"and z = "Count"
这是生成上面热图的代码
dfreverse = df_hml.values.tolist()
dfreverse.reverse()
colorscale = [[0, '#454D59'],[0.5, '#FFFFFF'], [1, '#F1C40F']]
trace = go.Heatmap(z=dfreverse,
colorscale = colorscale,
x = [threeYr,twoYr,oneYr,Yr],
y=['March', 'February', 'January', 'December', 'November', 'October', 'September', 'August', 'July', 'June', 'May', 'April'])
data=[trace]
layout = go.Layout(
autosize=False,
font=Font(
family="Courier New",
),
width=700,
height=450,
margin=go.Margin(
l=150,
r=160,
b=50,
t=100,
pad=3
),
)
fig = go.Figure(data=data, layout=layout)
plotly.offline.iplot(fig,filename='pandas-heatmap')
谢谢!
最佳答案
您可以通过将其设置为 text
来自定义 hoverinfo,然后输入您喜欢的任何内容。
悬停信息的文本需要是列表的列表。第一个索引是 y 值,第二个是 x 值。
import plotly
import random
plotly.offline.init_notebook_mode()
colorscale = [[0, '#454D59'],[0.5, '#FFFFFF'], [1, '#F1C40F']]
x = [2015, 2016, 2017]
y = ['March', 'February', 'January', 'December', 'November', 'October', 'September', 'August', 'July', 'June', 'May', 'April']
z = [[i + random.random() for i in range(len(x))] for ii in range(len(y))]
hovertext = list()
for yi, yy in enumerate(y):
hovertext.append(list())
for xi, xx in enumerate(x):
hovertext[-1].append('FY: {}<br />Month: {}<br />Count: {}'.format(xx, yy, z[yi][xi]))
data = [plotly.graph_objs.Heatmap(z=z,
colorscale=colorscale,
x=x,
y=y,
hoverinfo='text',
text=hovertext)]
layout = plotly.graph_objs.Layout(autosize=False,
font=dict(family="Courier New"),
width=700,
height=450,
margin=plotly.graph_objs.Margin(l=150,
r=160,
b=50,
t=100,
pad=3)
)
fig = plotly.graph_objs.Figure(data=data, layout=layout)
plotly.offline.iplot(fig,filename='pandas-heatmap')
关于python - Plotly Python - 热图 - 更改 Hovertext (x,y,z),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45569092/