首页 > 解决方案 > Plotly:如何在热图上偏移网格?

问题描述

从屏幕截图中可以看出,网格线直接从框的中间开始。

有什么办法可以用 plotly 做到这一点?

屏幕截图:Plotly 热图中的网格线

这是热图的设置:

colorscale= [[0, 'yellow'], [0.7, 'red'], [1, 'darkred']]


trace_activity = go.Heatmap(
                   z=activity_orgname['activity'],
                   x=activity_orgname['month'],
                   y=activity_orgname['org_name'].astype(str),
                   hoverongaps = False,colorscale=colorscale)

layout = go.Layout(title='Activity "' + ac_name + '" per Month:',
                  xaxis={'type':'category', "gridcolor": "rgba(157, 166, 0, 1)"}, 
                  yaxis={'type':'category', "gridcolor": "rgba(157, 166, 0, 1)"}, 
                  plot_bgcolor="white")

fig = go.Figure(data=[trace_activity], 
                layout=layout, 
                )

iplot(fig)

标签: pythonpandasplotlyheatmap

解决方案


这就是你要找的:

fig.update_xaxes(tickson='boundaries')

在此处输入图像描述

另一种选择是:

fig.update_xaxes(tickson='labels')

在此处输入图像描述

完整代码:

import plotly.graph_objects as go

fig = go.Figure(data=go.Heatmap(
                   z=[[1, None, None, 50, 1], [20, None, None, 80, 30], [30, 60, None, None, 20]],
                   x=['01.01.2020', '01.02.2020', '01.03.2020', '01.04.2020', '01.05.2020'],
                   y=['Morning', 'Afternoon', 'Evening'],
                   hoverongaps = False))


fig.update_xaxes(gridcolor='steelblue',
    ticks="outside",
    tickson="boundaries",
    ticklen=20
)


fig.show()

推荐阅读