我一直在尝试将一些数据拟合到特定集合 x 和 y 的最佳拟合线。我尝试了很多次都失败了,我似乎找不到使用 yscale('log') 和 xscale('log') 来拟合数据的方法。我得到了这个奇怪的结果,但我似乎无法找到为什么它会给出这个奇怪的 [结果]
[结果]:https ://www.dropbox.com/s/g6m4f8wh7r7jffg/Imagem%20sem%20t%C3%ADtulo.png?dl=0 。
我的代码:
#!/usr/bin/env python
# import the necessary modules
import numpy as np
import matplotlib.pyplot as plt
# Generate x and y values which the curve will be fitted to
# (In practical cases, these should be read in)
x = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
y = [497775, 150760, 50929, 19697, 8520, 3948, 1812, 710, 214, 57, 18, 4]
p = np.polyfit(x,y,1)
plt.plot(x, np.polyval(p,x), 'r-')
plt.plot(x, y)
plt.yscale('log')
plt.xscale('log')
plt.show()
我有一种预感,这是因为我使用的是 polyvals,但我找不到如何计算它的对数。你能帮我吗?我是新手,我需要帮助!