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

拼接数组绘图为何出现对角线?如何消除该线条?

问题分析与解决

对角线产生的原因

你在下方子图用np.concatenate拼接数组后,plt.plot会按照数组的顺序依次连接每个数据点。如果x_left的最后一个元素和x_right的第一个元素在数值上不连续(比如x_left的最大值远小于x_right的最小值),plot就会自动把x_left的最后一个点和x_right的第一个点用直线连起来,这就是那条多余的对角线。

举个实际例子:假设x_left = [1,2,3],x_right = [5,6,7],y = [10,20,30],拼接后的x数组是[1,2,3,5,6,7],y数组是[10,20,30,10,20,30],plot会直接连接(3,30)和(5,10),这条线就是你看到的对角线。

消除对角线的方法

有两种简单可行的解决方式:

  • 直接沿用上方子图的绘图逻辑,在下方子图里分开调用两次plot:
plt.plot(x_left, y)
plt.plot(x_right, y)

这样两条曲线各自独立绘制,不会出现跨曲线的连接线。

  • 如果一定要用拼接数组的方式,在拼接后的数组中间插入一个NaN值——plt.plot会自动跳过NaN,不会连接前后的点。代码示例:
x_combined = np.concatenate((x_left, [np.nan], x_right))
y_combined = np.concatenate((y, [np.nan], y))
plt.plot(x_combined, y_combined)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 10:28:07