2017-08-16 20 views
1

Plotlyにヒートマップを作成する2つの異なる方法があります.1つはヒートマップに注釈を付ける方法で、もう1つはカラーバーを使用する方法です。Python Plotly - 注釈付きヒートマップ - レイアウトの追加

注釈:

dfreverse = df_hml.values.tolist() 
dfreverse.reverse() 

colorscale = [[0,'#FFFFFF'],[1, '#F1C40F']] 

x = [threeYr,twoYr,oneYr,Yr] 
y = ['March', 'February', 'January', 'December', 'November', 'October', 'September', 'August', 'July', 'June', 'May', 'April'] 
z = dfreverse 


z_text = np.around(z, decimals=2) # Only show rounded value (full value on hover) 

fig = ff.create_annotated_heatmap(z, x=x, y=y,annotation_text=z_text, colorscale=colorscale, hoverinfo='z') 


# Make text size smaller 
for i in range(len(fig.layout.annotations)): 
     fig.layout.annotations[i].font.size = 9 


plotly.offline.iplot(fig, filename='annotated_heatmap_numpy') 

enter image description here

カラーバー:

dfreverse = df_hml.values.tolist() 
dfreverse.reverse() 

colorscale = [[0, '#454D59'],[0.5, '#FFFFFF'], [1, '#F1C40F']] 

x = [threeYr,twoYr,oneYr,Yr] 
y = ['March', 'February', 'January', 'December', 'November', 'October', 'September', 'August', 'July', 'June', 'May', 'April'] 
z = dfreverse 

hovertext = list() 
for yi, yy in enumerate(y): 
    hovertext.append(list()) 
    for xi, xx in enumerate(x): 
     hovertext[-1].append('Count: {}<br />{}<br />{}'.format(z[yi][xi],yy, xx)) 

data = [plotly.graph_objs.Heatmap(z=z, 
            colorscale=colorscale, 
            x=x, 
            y=y, 
            hoverinfo='text', 
            text=hovertext)] 

layout = go.Layout(
    autosize=False, 
    font=Font(
     family="Gill Sans MT", 
     size = 11 
    ), 
    width=700, 
    height=450, 
    margin=go.Margin(
     l=150, 
     r=160, 
     b=50, 
     t=100, 
     pad=3 
    ), 
     xaxis=dict(
     title='', 
     showgrid=False, 
     titlefont=dict(
      # family='Gill sans, monospace', 
      size=12, 
      #color='#7f7f7f' 
     ), 
     showticklabels=True, 
     tickangle=25, 
     tickfont=dict(
      family="Gill Sans MT", 
      size=12, 
      color='black' 
     ), 
    ), 
    yaxis=dict(
     title='', 
     showgrid=False, 
     titlefont=dict(
      #family='Gill sans', 
      #size=12, 
      #color='#7f7f7f' 
     ), 
     showticklabels=True, 
     tickangle=25, 
     tickfont=dict(
      family="Gill Sans MT", 
      size=12, 
      color='black' 
     ), 
) 
) 

fig = plotly.graph_objs.Figure(data=data, layout=layout) 
plotly.offline.iplot(fig,config={"displayModeBar": False},show_link=False,filename='pandas-heatmap') 

enter image description here

実際の質問

ヒートマップをアノテーション(第1のグラフ)で作成したいが、レイアウトを想定してx軸とy軸のフォントとフォントサイズを変更できるようにしたい。しかし、注釈ヒートマップコードでは、レイアウトを配置するのが好きではないようです。これは可能ですか?

答えて

1

私はにx軸のレイアウトを変更する方法について説明しますどの、this answerが見つかりました:私はそれをテストすることはできません

が、https://plot.ly/python/reference/#layout-yaxis-titlefontを読んで、このコードを示唆:

fig = ff.create_annotated_heatmap(z, x=x, y=y,annotation_text=z_text, colorscale=colorscale, hoverinfo='z') 

# Altering x axis 
fig['layout']['xaxis']['titlefont']['family'] = "Arial" 
fig['layout']['xaxis']['titlefont']['size'] = 14 

# (same procedure for 'yaxis')... 

plotly.offline.iplot(fig, filename='annotated_heatmap_numpy') 
+0

ありがとうございました!私は今それを試してみる:) – ScoutEU

+0

うーん..それはエラーを引き起こすことはありませんが、それはどちらかをしていません。ハ! :)....それは私のせいであるかどうかわからない、あなたが与えたリンクは3を参照しました。 – ScoutEU

+0

申し訳ありませんが、完璧に動作します!ありがとうございます...私のx軸とy軸は「ティックフォント」と呼ばれています...私はそれを変更し、それは再び働きました:ty again! – ScoutEU

関連する問題