У меня есть участок со мной, который является логарифмическая на обеих осях. У меня есть функция loglog
pyplot для этого. Он также дает мне логарифмическую шкалу на обеих осях.Подгонка прямой к кривой логарифмической войти Matplotlib
Теперь, используя NumPy я вписываюсь прямой линией к множеству точек, которые у меня есть. Однако, когда я рисую эту строку на сюжете, я не могу получить прямую линию. Я получаю изогнутую линию.
Синяя линия - это якобы «прямая линия». Это не получается прямолинейно. Я хочу, чтобы соответствовать этой прямой к кривой, построенной красными точками
Вот код, я использую для построения точек:
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()
Разве это не просто то, что вы рисуете прямую линию по логарифмической шкале? –
Ya, есть. Но как это сделать, используя matplotlib, чтобы он был полностью закрыт? –