Plotly: как сместить сетку на тепловой карте? - PullRequest
1 голос
/ 07 мая 2020

Как вы можете видеть на снимке экрана, линии сетки начинаются прямо в середине прямоугольников.

  • Для линейной диаграммы это хорошо, потому что сетка начинается с описания на метках осей
  • С тепловой картой я бы предпочел, чтобы ось была go вокруг прямоугольники
  • например, линия оси Y для 2020-01 (отмечена красным) должна быть перемещена вправо (отмечена зеленым), чтобы она выглядела как бумага в линейку.

Есть ли способ сделать это с помощью plotly?

Screenshot: Gridlines in Plotly Heatmap

Вот настройки для тепловой карты:

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)

1 Ответ

1 голос
/ 08 мая 2020

Надеюсь, это именно то, что вы ищете:

fig.update_xaxes(tickson='boundaries')

enter image description here

Другой вариант:

fig.update_xaxes(tickson='labels')

enter image description here

Полный код:

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()
...