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

使用Matplotlib绘制一维线性映射坐标无显示问题排查求助

排查Matplotlib绘图无坐标点的问题

嘿,我帮你找出了代码里几个导致没显示坐标点的关键问题,咱们一个个拆解:

问题1:循环完全没执行

你初始化result = [10]后把第一个元素改成1,此时len(result)是1,len(result)-1等于0,range(0)是空序列,所以for循环的代码块根本没运行,result里始终只有一个值,没法和包含10个元素的x数组对应。

问题2:绘图参数错误

你写的plt.plot(x, result[i], 'ro')有两个问题:

  • 循环没执行的情况下,变量i根本没被定义(能运行可能是代码被截断了?)
  • 就算i有值,result[i]是单个数值,而x是10个元素的数组,Matplotlib无法匹配两者的长度来绘制多点。你需要传入整个result数组,让每个x对应一个y值。

问题3:缺少图像显示指令

你的代码最后截断了,但大概率没加plt.show()——这是Matplotlib显示图像的关键步骤,没加的话图像会在后台生成但不会弹出窗口。


修正后的完整代码

import matplotlib.pyplot as plt
import numpy as np

# 初始化result,第一个值设为1
result = [1]
a = 1.1
# 生成10个x轴坐标点
x = np.linspace(0, 10, 10)

# 循环生成对应x长度的映射值
for i in range(len(x)-1):
    # 计算下一个线性映射值
    next_val = a * (result[i] - 1/2) + 1/2
    result.append(next_val)

# 绘制红色圆点,x和result一一对应
plt.plot(x, result, 'ro')
plt.xlim(0, 10)
plt.ylim(0, 10)
# 补全坐标轴绘制代码
plt.axhline(0, color='b', linewidth=1)
plt.axvline(0, color='b', linewidth=1)
# 显示图像
plt.show()

这段代码会生成10个对应线性映射的坐标点,并用红色圆点显示在图上,同时显示完整的坐标轴。

内容的提问来源于stack exchange,提问作者S.Ky

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:19:25