Мне нужно рассчитать угол между линией и горизонтальной. Моя математика в средней школе, похоже, терпит неудачу.Рассчитать угол (градусы) в Python между линией (с наклоном x) и горизонтальной
import matplotlib.pyplot as plt
import numpy as np
x = [8450.0, 8061.0, 7524.0, 7180.0, 8247.0, 8929.0, 8896.0, 9736.0, 9658.0, 9592.0]
y = range(len(x))
best_fit_line = np.poly1d(np.polyfit(y, x, 1))(y)
slope = (y[-1] - y[0])/(x[-1] - x[0])
angle = np.arctan(slope)
print 'slope: ' + str(slope)
print 'angle: ' + str(angle)
plt.figure(figsize=(8,6))
plt.plot(x)
plt.plot(best_fit_line, '--', color='r')
plt.show()
Результаты являются следующие:
slope: 0.00788091068301
angle: 0.00788074753125
мне нужен угол между горизонтальной и красной пунктирной линией. Просто взглянув на это, вероятно, должно быть что-то между 30-45 градусами. Что я делаю не так?
* относительно slope = (y[-1] - y[0])/(x[-1] - x[0])
, я также пробовал numpy.diff
и scipy.stats.linregress
, но и не удался.
Вы забыли рассчитать масштаб своего графика. – jtbandes
Также, пожалуйста, используйте [arctan2] (http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.arctan2.html)! – jtbandes
hi jtbandes, как мне рассчитать масштаб моей диаграммы? – ljc