我手头有一个在两个轴上都是对数的图表。我使用pyplot的loglog函数来实现这一点。它还给我提供了两个轴上的对数刻度。
现在,使用numpy,我对我拥有的点集进行直线拟合。然而,当我将这条直线绘制在图表上时,我无法得到一条直线。我得到的是一条弯曲的线。
蓝线是所谓的“直线”。它没有被绘制成直线。我想将这条直线拟合到由红点绘制的曲线上。
以下是我用于绘制这些点的代码:
现在,使用numpy,我对我拥有的点集进行直线拟合。然而,当我将这条直线绘制在图表上时,我无法得到一条直线。我得到的是一条弯曲的线。
![蓝线是所谓的“直线”。它没有被绘制成直线。我想将一条直线拟合到由红点绘制的曲线上](https://istack.dev59.com/aMP9n.webp)
以下是我用于绘制这些点的代码:
import numpy
from matplotlib import pyplot as plt
import math
fp=open("word-rank.txt","r")
a=[]
b=[]
for line in fp:
string=line.strip().split()
a.append(float(string[0]))
b.append(float(string[1]))
coefficients=numpy.polyfit(b,a,1)
polynomial=numpy.poly1d(coefficients)
ys=polynomial(b)
print polynomial
plt.loglog(b,a,'ro')
plt.plot(b,ys)
plt.xlabel("Log (Rank of frequency)")
plt.ylabel("Log (Frequency)")
plt.title("Frequency vs frequency rank for words")
plt.show()