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

Matplotlib循环调用plot绘图仅显示最后一点无法连线如何解决

问题原因

ax.plot()只有在单次调用时传入包含2个及以上坐标点的x、y序列,才会自动在点与点之间生成连续连线。
你写的循环逻辑里,每次调用ax.plot()都只传入1个独立的(x,y)标量值,相当于每次都创建一个仅包含单个点的独立绘图序列:

  • 独立序列之间不会自动跨调用连线
  • 默认绘图样式没有配置单点标记,绝大多数单点不会正常显示
    最终运行后就无法得到预期的连续连线效果。
循环实现连续连线的正确方案

最直接的实现方式是在循环中配对相邻的两个点,每次调用plot传入两点坐标绘制线段,拼接后就能得到和直接传数组完全一致的连线效果,代码如下:

fig = plt.figure(figsize=[5,5])
ax = fig.add_subplot(121)
# 从第二个索引位开始遍历,和前一个点配对
for i in range(1, arr.shape[0]):
    # 传入相邻两点的x、y数组,即可绘制两点间的线段
    ax.plot(
        [arr[i-1, 0], arr[i, 0]],
        [arr[i-1, 1], arr[i, 1]]
    )

如果需要在连线同时显示每个数据点,只需在plot参数中增加marker配置即可,例如marker='o'会将每个点绘制为实心圆点。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:09:22