Plotly热力图中色条的标题

23

这是我的代码:

fig = go.Figure(
    data=go.Heatmap(z=z_values, y=[str(x) for x in params_1], x=[str(x) for x in params_2]), 
    layout=go.Layout(
        title="Analysis results",
        xaxis=dict(title='Diameter'),
        yaxis=dict(title='Max Distance')
    ),
)
fig.show()

它生成一个2D热力图(如下所示),但我想为色条添加标题:

enter image description here

不幸的是,plotly example也没有颜色条标题。 我尝试使用“marker”包含颜色条属性,但这会导致错误。 那么我该怎么做呢?

5个回答

15

只需在 go.Heatmap() 中包含 colorbar={"title": 'Your title'} 即可获得以下结果:

图例:

enter image description here

代码:

import plotly.graph_objects as go

fig = go.Figure(data=go.Heatmap(colorbar={"title": "Your title"},
                                            z=[[1, 20, 30],
                                              [20, 1, 60],
                                              [30, 60, 1]]))
 fig.show()

1
@S3DEV 不客气 =) - vestland

13

尝试

fig = go.Figure(
    data=go.Heatmap(z=z_values, y=[str(x) for x in params_1], x=[str(x) for x in params_2]), 
colorbar=dict(title='Title') , 
    layout=go.Layout(
        title="Analysis results",
        xaxis=dict(title='Diameter'),
        yaxis=dict(title='Max Distance')
    ),
)
fig.show()

我得到了这个错误信息:File "<ipython-input-29-d28f3554fbb7>", line 19 colorbar=dict(title=‘Title’) ^ SyntaxError: 标识符中有无效字符 - TestGuest
然后将“Title”更改为“Test”(不同的连字符),但出现以下错误:ValueError:为类型为plotly.graph_objs.Layout的对象指定了无效属性:“colorbar” - TestGuest
更新了答案。 - abhilb

10
您也可以通过更新布局来实现这一点:
fig.update_layout(
    coloraxis_colorbar=dict(
        title="Your Title",
    ),
)

对我没有用... plotly==5.9.0 - Julian - BrainAnnex.org
1
@Julian-BrainAnnex.org -- 我曾经遇到过类似的问题,但是我发现只要指定热力图应该使用的coloraxis,就可以解决这个问题。例如:fig = go.Figure() fig.add_trace(go.Heatmap(x=..., y=..., z=..., coloraxis='coloraxis')) fig.update_layout(coloraxis_colorbar_title='你的标题') - Tim Child

3
fig = ...
fig.layout.coloraxis.colorbar.title = 'Title<br>Here'

2
这个通用的方法同样适用于 px.imshow。您也可以在此处使用标准的 plotly 参数来编辑标题: {'text':'标题', 'font':{'size':30}} - lotrus28
1
这对所有的Plotly Express图表都适用。非常有帮助! - codeananda
对我来说没有用... plotly==5.9.0 - Julian - BrainAnnex.org
@Julian-BrainAnnex.org -- 我之前有类似的问题,但发现只要明确指定热力图应该使用的 coloraxis 即可解决。例如:fig = go.Figure() fig.add_trace(go.Heatmap(x=..., y=..., z=..., coloraxis='coloraxis')) fig.update_layout(coloraxis_colorbar_title='你的标题') - Tim Child

1

这些方法都对我无效,但是采用以下方法可以轻松更新:

fig = ...
fig.data[0].colorbar.title = "Title Here"

1
在plotly==5.9.0中完美运行。如果您执行print(fig),您可以看到Figure对象现在包含'data': [{'colorbar': {'title': {'text': 'Title Here'}},等等。请注意,使用此方法,我们回到了在所选答案中所做的方式,在数据部分添加colorbar标题。 - Julian - BrainAnnex.org

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接