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

VS Code中Plotly图表Y轴刻度与Jupyter不一致问题求助

问题描述

32位Jupyter Notebook无法读取大体积CSV文件,转用VS Code操作后,运行相同的Plotly代码生成图表,发现Y轴刻度与Jupyter Notebook中生成的不一致,需要让VS Code生成的图表和Jupyter保持一致。

使用的代码如下:

import pandas as pd
import plotly
import plotly.io as pio
import plotly.tools as plotly_tools
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
usedcolumns=['Time[s]','HIL_Input_Sources::DP_Vol.CurrentValue','HIL_Input_Sources::GE_Vol.CurrentValue','HIL_Input_Sources::CAM_RPM.RPM','HIL_Input_Sources::DP_Vol.RMS','HIL_Input_Sources::DP_Freq.Hz','HIL_Input_Sources::DP_Curr.CurrentValue','HCP4_CANFD02::Diagnose_01_XIX_HCP4_CANFD02::DW_Kilometerstand_XIX_Diagnose_01_XIX_HCP4_CANFD02[Unit_KiloMeter]']
chunksize = 1000
df = pd.read_csv('C:\\Thesis\\Log_Files\\Input\\Test_Log.csv',skipinitialspace=True, chunksize=chunksize, usecols=usedcolumns,sep=';',low_memory=True)
full_data=pd.concat(df,ignore_index=True)
full_data
pio.renderers.default = "vscode"
df1=full_data[['Time[s]','HIL_Input_Sources::DP_Vol.RMS']].copy()
print(df1)
fig=go.Figure()
fig.add_trace(go.Scatter(x = df1['Time[s]'], y = df1['HIL_Input_Sources::DP_Vol.RMS'],mode="lines"))
fig.update_layout(title='DP_Vol.RM',plot_bgcolor='rgb(230, 230,230)',showlegend=True)
fig.update_layout(xaxis = dict(tickmode = 'linear',dtick = 1,showgrid=True, gridwidth=1,griddash="dot", gridcolor='Black'))
fig.update_layout(yaxis = dict(tickmode = 'linear',tick0 = 0,dtick = 5,showgrid=True, gridwidth=1,griddash="dot", gridcolor='Black'))
fig.show()

解决办法

1. 强制固定Y轴范围

不同渲染器(Jupyter的渲染器与VS Code的vscode渲染器)可能会自动调整刻度适配窗口,强制指定Y轴范围可以避免这种差异:

# 修改Y轴配置,添加range参数
fig.update_layout(yaxis = dict(
    tickmode = 'linear',
    tick0 = 0,
    dtick = 5,
    showgrid=True, 
    gridwidth=1,
    griddash="dot", 
    gridcolor='Black',
    range=[0, max(df1['HIL_Input_Sources::DP_Vol.RMS']) + 5]  # 基于数据最大值设置范围,留5单位余量
))

2. 统一数据类型

32位与64位环境下pandas读取数据的数值类型可能存在差异,检查并转换数据类型:

# 检查数据类型
print(df1['HIL_Input_Sources::DP_Vol.RMS'].dtype)
# 强制转换为64位浮点
df1['HIL_Input_Sources::DP_Vol.RMS'] = df1['HIL_Input_Sources::DP_Vol.RMS'].astype('float64')

3. 对齐Plotly版本

不同环境的Plotly版本差异可能导致渲染逻辑不同,先检查两边版本:

import plotly
print(plotly.__version__)

将VS Code环境的Plotly版本升级到与Jupyter一致:

pip install plotly==<Jupyter环境的版本号>

4. 关闭自动缩放

明确关闭Y轴的自动缩放功能,确保刻度严格按照配置生成:

fig.update_layout(yaxis = dict(
    tickmode = 'linear',
    tick0 = 0,
    dtick = 5,
    showgrid=True, 
    gridwidth=1,
    griddash="dot", 
    gridcolor='Black',
    autorange=False  # 禁用自动缩放
))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:15:33