2017-08-08 12 views
1

Ich habe ein heatmap mit plotly in Python getan. Die hovertext funktioniert perfekt, aber es ist jede Variable mit x, y oder z wie dies voran hat:Plotly Python - Heatmap - Change Hovertext (x, y, z)

enter image description here

Es gibt eine Möglichkeit, zu ändern, um diese dh x = "FY" y = "Monat" und z = "Count"

Dies ist der Code, der die Heatmap oben

hergestellt
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') 

Thank you!

Antwort

2

Sie können die hoverinfo anpassen, indem sie text Einstellung und geben Sie dann, was Sie wollen.

Der Text für die hoverinfo muss eine Liste von Listen sein. Der erste Index ist der y-Wert, der zweite ist der x-Wert.

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') 
+0

Vielen Dank. Ich entschuldige mich für die Zeit, die ich gebraucht habe, um die Arbeit zu erledigen. Ich habe die Arbeit beendet, bevor ich eine Antwort erhielt. Ich erinnere mich gerade daran, mich anzumelden und zu überprüfen:) .... es funktioniert perfekt! – ScoutEU

+0

Edit: Ich schätze die Zeit, die Sie auf Ihre ausführliche Antwort nahm! – ScoutEU

Verwandte Themen