2017-08-01 98 views
0

我有一个从一个数据框产生的热图。不幸的是,它没有一个颜色条。我尝试添加一个,但它不显示。有任何想法吗?Plotly热图 - Python - 添加颜色条

这是代码:

zp = df_hml.values.tolist() 
zp.reverse() 
z = zp 
z_text = np.around(z) 

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


layout = go.Layout(
    autosize=False, 
    width=700, 
    height=450, 
    margin=go.Margin(
     l=150, 
     r=160, 
     b=50, 
     t=100, 
     pad=3 
    ), 
) 
colorscale = [[0, '#454D59'],[0.5, '#FFFFFF'], [1, '#F1C40F']] 
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 

fig.layout.title = '<b>Research - HEATMAP</b><br>Applications' 
fig.layout.titlefont.size = 14 

fig.layout.width = 700 
fig.layout.height = 550 
plotly.offline.iplot(fig, config={"displayModeBar": False}, show_link=False, filename='annotated_heatmap_numpy') 

将会产生这样的:

enter image description here

+0

即使它是使用我使用的三种颜色创建单独的颜色条将会有所帮助 – ScoutEU

回答

1

通过create_annotated_heatmap返回的对象实际上只是一个JSON。您可以使用print(fig)检查所有参数。只需设置fig['data'][0]['showscale'] = True并且会出现比例尺。

此外则应设置colorscale

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

[[lower bound, color1], [upper bound, color1], 
    [lower bound, color2], [upper bound, color2], 

的上限和下限的两种不同的颜色应该是离散colorbars相同。

+0

谢谢!太多了!完美的作品:) ...我明白你在说什么。 – ScoutEU