Matplotlib的'Float'错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matplotlib的'Float'错误相关的知识,希望对你有一定的参考价值。

我正在尝试编写一个程序来绘制等式的图形

y = 5 * e ^ -t * cos(2 * pi * t)

我必须使用导入数学,这就是我所拥有的:

import matplotlib.pyplot as plt

import math

x = range(10)

y = [5 * math.exp(-t) * math.cos(math.pi * 2 * t) for t in x]

plt.plot(x,y)

plt.show()

我没有得到我想要的图表。我需要x增加0.1但是当我制作range(0, 10, .1)时,它会给我一个错误:

float不能解释为整数

如何调整代码以使我的绘图点以0.1分隔?

答案

range只接受所有参数的整数值(min,max和step) - 请参阅documentation

要创建浮点范围,可以使用numpy.arangesource):

>>> import numpy as np
>>> np.arange(0.0, 1.0, 0.1)
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9])

或者通过另一种理解手动完成:

>>> x = range(0, 10, 1)
>>> x_float = [0.1 * i for i in x]
[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]

用法:

y = [5 * math.exp(-t) * math.cos(math.pi * 2 * t) for t in x_float] # note difference
plt.plot(x_float,y) # and here

以上是关于Matplotlib的'Float'错误的主要内容,如果未能解决你的问题,请参考以下文章

'module'matplotlib'没有属性'pyplot''

matplotlib(三)——标记、线条等设置。

'import matplotlib'给出'找不到模块错误'

matplotlib饼状图学习小记

Matplotlib 显示中文

python matplotlib模块 如何画两张图出来