Панды, объединяющие 2 фрейма данных в один график

#python #pandas #numpy #matplotlib

#python #pandas #numpy #matplotlib

Вопрос:

Я пытаюсь построить два фрейма данных pandas. Один фрейм данных должен отображаться в виде линейного графика, а другой — в виде точечного графика на том же графике.

Это отображает первый фрейм данных:

 line = pd.read_csv('nugt_daily.csv',parse_dates=['Date'])
line = line.sort_values(by='Date')
line.set_index('Date',inplace=True)
line['Close'].plot(figsize=(16, 12))
  

Я хочу построить следующий фрейм данных поверх предыдущего графика, но в виде точечного графика (а не линейного графика):

 points = pandas.read_csv('test_doc.csv')
points = points.sort_values(by='Date')
points.set_index('Date',inplace=True)
points.plot(figsize=(16, 12))
  

Как я могу этого добиться? Когда я запускаю два кода один за другим, я вижу два отдельных графика для каждого фрейма данных.

Ответ №1:

Используйте return_type='axes' для получения df1.scatterplot возврата объекта matplotlib Axes. Затем передайте эти оси второму вызову linegraph с помощью ax=ax . Это приведет к тому, что оба графика будут нарисованы на одних и тех же осях.

Попробуйте:

 ax = df1.plot()
df2.plot(ax=ax)
  

Комментарии:

1. извините, не могли бы вы подробнее остановиться на этом? Какие изменения мне нужно внести в код, который я уже скопировал с вопросом? Извините за беспокойство, но я только начинаю работать с matplotlib.