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

含NaN样本的Numpy绘图问题:如何让图表从x=0处开始显示?

解决Matplotlib折线图从x=1开始而非x=0的问题

这个问题很常见——因为你的y数组第一个元素是np.nan,Matplotlib在绘制折线图时会自动跳过这个无效数据点,所以折线从x=1的位置开始,而且默认的x轴范围会自动适配有效数据的范围,导致看起来图表“从x=1开始”。要强制让图表(x轴)从x=0开始,有两种简单的解决方法:

方法1:手动设置x轴的左边界

直接用plt.xlim()函数指定x轴的起始值为0,这样不管数据里有没有无效点,x轴都会从0开始显示:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0.0, 5, 1)
y = np.array([np.nan, 2, 3, 4, 5])
plt.plot(x, y)
# 强制x轴从0开始
plt.xlim(left=0)
plt.show()

这样设置后,x轴的起始点会固定在0,即使x=0对应的y值是NaN,这个位置依然会出现在图表里,折线从x=1开始绘制,但x轴范围包含0。

方法2:保留x=0的位置并标记空点(可选)

如果你希望在x=0的位置明确显示一个空点(而不是直接跳过),可以把np.nan对应的位置单独绘制标记:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0.0, 5, 1)
y = np.array([np.nan, 2, 3, 4, 5])
plt.plot(x, y)
# 在x=0的位置绘制空心圆点表示缺失值
plt.scatter(x[0], y[0], marker='o', facecolor='none', edgecolor='blue')
plt.xlim(left=0)
plt.show()

这样x=0的位置会显示一个空心圆点,明确表示这里有个缺失值,同时x轴从0开始。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:49:49