matplotlib中的平方根图[已关闭]

plupiseo  于 2023-10-24  发布在  其他
关注(0)|答案(2)|浏览(106)

**已关闭。**此问题需要debugging details。目前不接受答案。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
28天前关闭
Improve this question
如何在matplotlib中使用sqrt(x)函数plot?
我试着写y = sqrt(x),但它给出了一个TypeError:只有size-1数组可以转换为Python标量。我以前从未使用过matplotlib,因此我很高兴得到一些建议。

axzmvihb

axzmvihb1#

下面是一个小例子:

import matplotlib.pyplot as plt
import math
# print y = math.sqrt(x)

# calculate the points x, y
x = [0, 0.3, 0.5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 25, 36, 49]
y = [math.sqrt(y) for y in x]
     
fig, ax = plt.subplots()
ax.plot(x, y)
 
ax.set(xlabel='value', ylabel='sqrt', title='Square root of list values')
    
ax.grid()
fig.savefig("sqrt.png")

plt.show()

输出量:

[![sqrt][1]][1]
kpbpu008

kpbpu0082#

看起来像是在使用math.sqrt将x数组转换为它的平方根。
使用np.sqrt,这将返回一个numpy数组。

>>> import numpy as np
>>> x = np.array([4, 9, 16])
>>> y = np.sqrt(x)
>>> y
array([2., 3., 4.])
>>>
>>> math.sqrt(x)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: only size-1 arrays can be converted to Python scalars
>>>

这是一个错误,当你试图传递一个数组给一个只接受一个参数的函数时,例如np.int(y)会产生同样的错误。

相关问题