python - Plotly Python - 热图 - 更改 Hovertext (x,y,z)

标签 python plotly

我有一个用 python 绘制的热图。 hovertext 工作完美,但是它的每个变量都以 x、y 或 z 为前缀,如下所示:

enter image description here

有什么办法可以改变这个,即 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 值。

enter image description here

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/

相关文章:

python - 为 XAMPP 安装 mysql python 库

python - Pandas 根据其他列的条件进行分组求和

python - 当用户输入 'q' 或 'quit' 时,如何让我的小型 python 程序退出?

r - ggplot2 和使用 ggplotly 的 plotly 之间的不同行为

python - virtualenvwrapper 不会在 mac os 上创建/bin/目录

python - 了解 python 套接字 io/aiohttp 服务器中的异步等待

python - 将特定线条添加到 Plotly Scatter3d() 图中

python - 悬停时仅显示单行,隐藏所有其他行

r - 如何使绘图轴仅显示整数

javascript - 在 javascript 中使用 plotly 进行直播