Plotly:如何偏移热图上的网格?

Mar*_*cus 2 python heatmap pandas plotly

正如您从屏幕截图中看到的,网格线直接从框的中间开始。

  • 对于折线图来说,这很好,因为网格从轴标签上的描述开始
  • 对于热图,我宁愿让轴绕着盒子走
  • 例如,2020-01 的 y 轴线(标记为红色)应向右移动(标记为绿色),使其看起来像一张直纹纸。

有什么办法可以用情节来做到这一点吗?

屏幕截图: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)
Run Code Online (Sandbox Code Playgroud)

ves*_*and 5

这就是您正在寻找的:

fig.update_xaxes(tickson='boundaries')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

另一个选项是:

fig.update_xaxes(tickson='labels')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

完整代码:

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()
Run Code Online (Sandbox Code Playgroud)