Мой вопрос тесно связан со следующей темой о SO: Подгонка прямой линии в полулогарифмическом масштабе с помощью Matplotlib
Однако я хочу создать линию наилучшего соответствия на графикегде ось X является логарифмической, а ось Y линейной.
import matplotlib.pyplot as plt
import numpy as np
plt.scatter(players['AB'], players['Average'], c='black', alpha=0.5)
p = np.polyfit(players['AB'], players['Average'], 1)
plt.plot(players['AB'], p[0] + p[1] * np.log(players['AB']), color='r', linestyle='dashed', alpha=0.7)
plt.xscale('log')
plt.xlim(1, 25000)
plt.ylim(-0.05, 0.60)
plt.xlabel('Number of at-bats (AB)')
plt.ylabel('Batting Average')
plt.show()
Это дает мне следующее:

Что я делаю неправильно?Спасибо
РЕДАКТИРОВАТЬ
p = np.polyfit(np.log(players['AB']), players['Average'], 1)
plt.plot(players['AB'], p[0] + p[1] * np.log(players['AB']), color='r', linestyle='dashed', alpha=0.7)
Это все равно дает мне неправильное наилучшее соответствие: 