使用热图+散点自动缩放图形会引入额外的填充

问题描述 投票:0回答:1

以下代码

import numpy as np
import plotly.graph_objects as go


def make_blob(n: int) -> np.ndarray:
    xx, yy = np.meshgrid(np.arange(n), np.arange(n))
    return np.exp(-((xx - n // 2) ** 2 + (yy - n // 2) ** 2) / (2 * (n // 2) ** 2))


if __name__ == "__main__":
    n = 101
    x = np.arange(n)
    blob = make_blob(n)
    fig = go.Figure(data=go.Heatmap(x=x, y=x, z=blob, type="heatmap", colorscale="Viridis"))
    fig.add_scatter(x=x, y=x)
    fig.update_xaxes(range=(0, n - 1))
    fig.update_yaxes(range=(0, n - 1))
    fig.show()

给出

但是按工具栏上的“自动缩放”将会在 y 轴上引入额外的填充:

虽然可以通过“重置轴”将其删除,但我可以让它们一开始就不会出现吗?我在 GitHub 上发现了这个问题,但不确定它有多相关。

python plotly visualization toolbar
1个回答
0
投票

发生这种情况是因为默认情况下,绘图会使用填充

(y_max - y_min) / 16
自动缩放 y 轴。由于看起来
Reset Axes
所做的事情与您希望自动缩放执行的操作相同,因此您可以完全删除自动缩放:

fig.update_layout(modebar_remove=['autoScale'])

© www.soinside.com 2019 - 2024. All rights reserved.