我的问题与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)
这仍然给我的最佳匹配不正确:
![enter image description here](https://istack.dev59.com/TtWze.webp)