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

Python Matplotlib如何仅连接指定分组散点,避免无关多余线段?

解决方案

方法1:拆分数据分组绘制

直接把原数组按分组切片,分别调用plt.plot()即可,两组使用相同的样式参数,视觉上和单次绘制效果一致,仅去掉中间连线。

import matplotlib.pyplot as plt

x = [0, 5, 10, 15, 100, 105, 110, 115]
y = [15, 10, 5, 0, 115, 110, 105, 100]
plt.figure(figsize=(5, 5))

plt.xlim(-1, 120)
plt.ylim(-1, 120)
plt.grid()      

# 分别绘制两组数据,使用相同样式
plt.plot(x[:4], y[:4], 'og-')
plt.plot(x[4:], y[4:], 'og-')

plt.show()

该方法逻辑直观,不需要引入额外依赖,适合分组数量少、分界点明确的场景。

方法2:插入空值中断连线

如果分组数量多,不想多次调用plt.plot(),可以在两组数据的分界处插入numpy.nan,Matplotlib遇到空值时会自动中断连线,不需要拆分数据。

import matplotlib.pyplot as plt
import numpy as np

x = [0, 5, 10, 15, 100, 105, 110, 115]
y = [15, 10, 5, 0, 115, 110, 105, 100]
# 分界处插入nan中断连线
x_break = x[:4] + [np.nan] + x[4:]
y_break = y[:4] + [np.nan] + y[4:]

plt.figure(figsize=(5, 5))
plt.xlim(-1, 120)
plt.ylim(-1, 120)
plt.grid()      

plt.plot(x_break, y_break, 'og-')
plt.show()

该方法仅需一次绘图调用,适合多组数据批量处理的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:54:05