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

Matplotlib Float类型错误:绘制指定函数图像的代码调整求助

如何生成0.1步长的数值序列绘制目标函数图像

你遇到的问题很常见——Python内置的range()函数只接受整数参数,所以没法直接用0.1作为步长。下面给你两种简单的解决方法,都能帮你生成符合要求的x序列:

方法1:用列表推导式手动生成(无需额外库)

不用引入新模块,直接通过整数range结合乘法来生成浮点数序列:

import matplotlib.pyplot as plt
import math

# 生成0到10,步长0.1的序列(共101个点,包含0和10)
x = [t * 0.1 for t in range(101)]
y = [5 * math.exp(-t) * math.cos(2 * math.pi * t) for t in x]

plt.plot(x, y)
plt.show()

这里range(101)生成0到100的整数,每个数乘以0.1就得到了0, 0.1, 0.2,...,10的序列,完美匹配你的步长要求。

方法2:用numpy的linspace函数(更简洁高效)

如果你不介意引入numpy库,linspace()可以直接指定起始值、结束值和点数,自动生成均匀分布的序列:

import matplotlib.pyplot as plt
import numpy as np

# 从0到10生成101个均匀分布的点(步长为(10-0)/(101-1)=0.1)
x = np.linspace(0, 10, 101)
# 利用numpy向量化运算,比列表推导式效率更高
y = 5 * np.exp(-x) * np.cos(2 * np.pi * x)

plt.plot(x, y)
plt.show()

这种方法在处理大量数据时优势更明显,代码也更简洁。

两种方法都能让你得到平滑的指数衰减余弦曲线,替换原来的range(10)后就能看到预期的图像了~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:14:45