Построить линию на графике минут OHLC с помощью mpl_finance - PullRequest
0 голосов
/ 08 октября 2018

Используя приведенный ниже код, я могу успешно построить график OHLC

names = pd.Series(data.index.strftime("%d-%m-%y").unique())
indexs = pd.Series(data.index.date).unique()

ohlc = data[data.index.date == indexs[0]].copy()

ohlc['mdate'] = [mdates.date2num(d) for d in ohlc.index]

ohlc['SMA10'] = ohlc["Close"].rolling(10).mean()

fig, ax = plt.subplots(figsize = (10,5))
mpl_finance.candlestick2_ohlc(ax,ohlc['Open'],ohlc['High'],ohlc['Low'],ohlc['Close'], width = 0.6)
xdate = ohlc.index
def mydate(x, pos):
    try:
        return xdate[int(x)]
    except IndexError:
        return ''
ax.xaxis.set_major_formatter(ticker.FuncFormatter(mydate))

fig.autofmt_xdate()
fig.tight_layout()

plt.show()

Однако, когда я добавлю эту строку
ax.plot(ohlc.mdate, ohlc["SMA10"], color ="green", label = "SMA50"), я смогу создать пустой график с двумя вертикальными линиями зубьев.Что здесь не так, пожалуйста?

enter image description here

                   Open    High     Low  ...    Volume          mdate  SMA10
Date_Time                                    ...                                
2018-02-13 11:55:00  7169.7  7172.4  7167.0  ...       444  736738.496528    NaN
2018-02-13 12:00:00  7171.6  7174.2  7164.2  ...       578  736738.500000    NaN
2018-02-13 12:05:00  7174.2  7174.7  7170.7  ...       458  736738.503472    NaN
2018-02-13 12:10:00  7172.0  7175.7  7171.2  ...       401  736738.506944    NaN
2018-02-13 12:15:00  7174.7  7176.7  7173.0  ...       389  736738.510417    NaN

Это столбцы моих данных

Index(['Open', 'High', 'Low', 'Close', 'Volume', 'mdate', 'SMA10'], dtype='object')

1 Ответ

0 голосов
/ 08 октября 2018

заменить

ax.plot(ohlc.mdate, ohlc["SMA10"], color ="green", label = "SMA50")

на

ax.plot(ohlc.index, ohlc["SMA10"], color ="green", label = "SMA50")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...