Линия тренда matplotlib с временными метками по оси X, плавает по оси YPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Линия тренда matplotlib с временными метками по оси X, плавает по оси Y

Сообщение Anonymous »

У меня есть точечная диаграмма и линейный график, которые отображаются вместе по разным осям Y. Но когда я пытаюсь добавить линию тренда через точки разброса, я получаю сообщение об ошибке, поскольку я преобразовал некоторые точки в значение None, поэтому на графике не будут отображаться нулевые значения.

Код: Выделить всё

# converting 0 values to None
points = [None if x == 0 else x for x in chart_data ['points']]

x = chart_data ['time']

fig, ax1 = plt.subplots ()
ax1.set_xlabel ('Date')
ax1.set_ylabel ('Val')
plt.ylabel ('Val2')
ax2 = ax1.twinx ()

ax1.plot (x, chart_data ['line_points'], label='line', marker='', c='blue', linestyle='-')
ax2.scatter (x, points, label='Points', marker='x', c='green', linestyle='')

# code added to display trend line
z = np.polyfit (x, points, 1)
p = np.poly1d (z)
ax2.plot (x, p (x), "r-")

plt.legend (facecolor='lightgray', edgecolor='gray')
plt.show()
Приведенный выше код выдает следующую ошибку:

Код: Выделить всё

TypeError: unsupported operand type(s) for +: 'Timestamp' and 'float'
Я где-то читал, что способ исправить это — преобразовать значения оси X в числовые значения при вызове Polyfit, вот так:

Код: Выделить всё

z = np.polyfit ([float (t.timestamp ()) for t in x], points, 1)
Но это дает мне немного другую ошибку:

Код: Выделить всё

TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
Все, что я хочу сделать, это отобразить линию тренда на основе значений в переменных точках, исключая все нулевые значения, и использовать временные метки для оси X или либо плавать или int для оси Y. Есть ли способ сделать это?

Подробнее здесь: https://stackoverflow.com/questions/783 ... -on-y-axis
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»