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?

3 64

3 ответа:

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

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

что в значительной степени совпадает с

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

или как там linestyle вы предпочитаете.

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

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

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

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

в дополнение к тому, что указано в других ответах, ключевое слово "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)

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

см., например,демо-Z-последовательности