You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置Plotly散点图的坐标轴与网格线为均匀间隔?

解决方案

问题根源是Plotly默认会自动适配坐标轴范围到数据分布区间,仅设置tickvals仅能指定刻度显示位置,不会改变坐标轴本身的取值范围,补充range参数固定坐标轴区间即可解决问题。

核心修改点

  • 补全遗漏的plotly.express导入语句
  • 给x轴添加range=[0, 100]参数固定x轴范围
  • 给y轴添加range=[df['y'].min(), df['y'].max()]参数固定y轴范围,若需要留白可自行调整上下限数值

修改后完整代码

import plotly.graph_objects as go
import plotly.express as px
import pandas as pd

df = pd.DataFrame({'x':[54,44,43,43,63,55,59],'y':[1259305,1295003,1888391,2000000,1500001,1123433,1459330]})

fig = px.scatter(x=df['x'], y=df['y'])
fig.update_layout(
    autosize=False,
    xaxis = dict(
        tickmode = 'array',
        tickvals = [0, 50, 100],
        range = [0, 100] # 固定x轴范围
    ),
    yaxis = dict(
        tickmode = 'array',
        tickvals = [df['y'].min(),df['y'].median(),df['y'].max()],
        range = [df['y'].min()*0.95, df['y'].max()*1.05] # 固定y轴范围,加5%边距和Matplotlib示例效果一致
    ))
fig.show()

补充说明

如果后续需要调整刻度间隔,也可以直接使用dtick参数替代tickmode和tickvals设置,比如x轴设置dtick=50,即可自动生成间隔为50的均匀刻度,无需手动指定每个刻度值。

内容的提问来源于stack exchange,提问作者AI92

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 19:09:02