соединить две точки сюжета с другой линией - PullRequest
2 голосов
/ 19 апреля 2020

Я хочу соединить две точки на графике фрейма данных с другой линией и добавить его к графику:

import numpy as np
from numpy.random import randn
import pandas as pd
from datetime import datetime
import matplotlib.pyplot as plt
%matplotlib inline
days = [datetime(2016, 1, 1), datetime(2016, 1, 2),datetime(2016, 1, 3),datetime(2016, 1, 4)]
dt_ind = pd.DatetimeIndex(days)
data = np.random.randn(4,2)
cols = ['A','B']
df = pd.DataFrame(data,dt_ind,cols)
df['A'].plot(figsize=(12,4), sort_columns=True)

вот кадр данных: введите описание изображения здесь

и сюжет: введите описание изображения здесь

как это возможно? например, добавить линию от точки 2 до точки 4 (или любые две точки)

1 Ответ

1 голос
/ 19 апреля 2020

Вы хотите использовать функцию plt.subplots () matplotlib, чтобы вернуть объект «рис и топор», чтобы затем вы могли добавить отдельные линии к вашему топору.

import numpy as np
from numpy.random import randn
import pandas as pd
from datetime import datetime
import matplotlib.pyplot as plt
%matplotlib inline
days = [datetime(2016, 1, 1),
        datetime(2016, 1, 2), 
        datetime(2016, 1, 3), 
        datetime(2016, 1, 4)]

dt_ind = pd.DatetimeIndex(days)
data = np.random.randn(4,2)
cols = ['A','B']
df = pd.DataFrame(data,dt_ind,cols)


fig, ax = plt.subplots()
ax.plot(df['A'], color='red')
ax.plot([df.index[1], df.index[3]],
        [df['A'][1], df['A'][3]], color='blue')

enter image description here

...