Подтвердить что ты не робот

Matplotlib соединяет точки рассеивания с линией - Python

У меня есть два списка, даты и значения. Я хочу их построить, используя matplotlib. Следующее создает график рассеяния моих данных.

import matplotlib.pyplot as plt

plt.scatter(dates,values)
plt.show()

plt.plot(dates, values) создает линейный график.

Но то, что я действительно хочу, это диаграмма рассеяния, в которой точки связаны линией.

Аналогично в R:

plot(dates, values)
lines(dates, value, type="l")

что дает мне диаграмму рассеяния точек, наложенных на линию, соединяющую точки.

Как это сделать в python?

4b9b3361

Ответ 1

Я думаю, что @Evert имеет правильный ответ:

plt.scatter(dates,values)
plt.plot(dates, values)
plt.show()

Это почти то же самое, что и

plt.plot(dates, values, '-o')
plt.show()

или любой другой linestyle, который вы предпочитаете.

Ответ 2

Для красных линий точки

plt.plot(dates, values, '.r-') 

или для x маркеров и синих линий

plt.plot(dates, values, 'xb-')

Ответ 3

В дополнение к тому, что содержится в других ответах, ключевое слово "zorder" позволяет определить порядок, в котором разные объекты отображаются вертикально. Например:.

plt.plot(x,y,zorder=1) 
plt.scatter(x,y,zorder=2)

отображает символы разброса поверх строки, а

plt.plot(x,y,zorder=2)
plt.scatter(x,y,zorder=1)

отображает линию над символами разброса.

См., например, демо-версия zorder