#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.