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

如何让Matplotlib忽略NaN数据且不绘制补全缺失段的折线?

解决方案:自动忽略NaN并断开折线(Matplotlib/Plotly)

Matplotlib 实现

Matplotlib 的 plot 函数原生就会处理 NaN 值——当 Y 数组中出现 NaN 时,它会自动在该位置断开折线,不会连接前后的有效数据点,完全不用手动拆分数组。直接沿用原本的绘图逻辑即可:

示例代码:

import matplotlib.pyplot as plt
import numpy as np

x = [0,1,2,3,4,5]
y = [3,6,2,np.nan,3,7]  # 包含NaN值

plt.plot(x, y)
plt.show()

运行后,折线会在对应 NaN 的位置(x=3)断开,前三个点(0、1、2)连成线段,后两个点(4、5)连成线段,中间无连接。

Plotly 实现

Plotly 同样原生支持 NaN 值的自动处理,折线会在 NaN 所在位置自然断开,无需额外操作:

Plotly Express 方式:

import plotly.express as px
import numpy as np

x = [0,1,2,3,4,5]
y = [3,6,2,np.nan,3,7]

fig = px.line(x=x, y=y)
fig.show()

Plotly Graph Objects 方式:

import plotly.graph_objects as go
import numpy as np

x = [0,1,2,3,4,5]
y = [3,6,2,np.nan,3,7]

fig = go.Figure(data=go.Scatter(x=x, y=y, mode='lines'))
fig.show()

两种方式都会得到符合需求的断开折线效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:05:21