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

matplotlib绘制两个随机numpy数组折线不显示的原因及修正方法

故障原因

代码无法显示折线的核心原因是传入plt.plot()的numpy数组维度不符合要求:

  • 你通过np.random.randint(..., size=(1, 10))生成的是形状为(1,10)的二维数组(1行10列),而非绘图需要的一维序列。
  • matplotlib处理二维数组输入时,会将数组的每一行识别为一条独立的数据序列。你传入的两个数组都只有1行,输入逻辑会被识别为10条独立序列,每条序列仅包含1个数据点。单数据点无法生成连线,因此最终只能看到你设置的*形标记,看不到折线。
修正代码

只需要把数组改为一维结构即可,推荐直接在生成数组时指定一维长度,修正后可正常显示带标记的折线:

import numpy as np
import matplotlib.pyplot as plt

# 生成长度为10的一维随机数组
a = np.random.randint(2, 10, size=10)
b = np.random.randint(5, 15, size=10)

plt.title("Line graph")
plt.xlabel("X axis")
plt.ylabel("Y axis")
plt.plot(a, b, color="green", label="Sample Line", marker="*")
plt.legend() # 补充图例调用,原代码设置了label但未调用该方法不会显示图例
plt.show()

如果你不想修改数组生成逻辑,也可以在绘图时对数组做降维处理,比如写成plt.plot(a.flatten(), b.flatten(), ...),效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 04:54:17