Plotly:如何在热图上偏移网格?
Plotly: How to offset the grid on a heatmap?
正如您从屏幕截图中看到的那样,网格线直接从框的中间开始。
- 对于折线图,这很好,因为网格从轴标签上的描述开始
- 对于热图,我更希望轴围绕方框移动
- 例如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)
这就是您要查找的内容:
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()
正如您从屏幕截图中看到的那样,网格线直接从框的中间开始。
- 对于折线图,这很好,因为网格从轴标签上的描述开始
- 对于热图,我更希望轴围绕方框移动
- 例如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)
这就是您要查找的内容:
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()