2016-02-03 1 views
0

I можно построить цены закрытия, используя приведенный ниже синтаксис:Создание линейного графика с библиотекой ggplot, которая проектирует две линии (высокие и низкие цены на акции) на том же графике

gg = ggplot(stock_prices.ix['2013-01-01': '2013-12-31'], aes('date', 'close')) + geom_line() 

Однако, я не» Не знаете, как построить «высокие» и «низкие» цены на одном и том же участке, какие-либо идеи? .

ответ

0

Стандартная практика построения «High» и «циклоны» (вместе с «Open» и «Close) в области финансов является свечной зарисовки Следующий код должен получить вы начали намечать подсвечников:

Step 1. Импорт.

import datetime as dt 
import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 
from matplotlib.finance import candlestick_ohlc 
import pandas as pd 
from pandas_datareader import data 

Шаг 2. Загрузки.

start = dt.datetime(2015,1,1) 
spy = data.DataReader('^GSPC', 'yahoo', start) 

Вы можете легко пропустить этот шаг, если у вас уже есть данные в формате OHLC.

Шаг 3. Подготовьте свои данные.

На данный момент вы бы ваши данные в виде:

spy.head() 
        Open  High   Low  Close Volume Adj Close 
Date       
2015-01-02 2058.899902 2072.360107 2046.040039 2058.199951 2708700000 2058.199951 
2015-01-05 2054.439941 2054.439941 2017.339966 2020.579956 3799120000 2020.579956 
2015-01-06 2022.150024 2030.250000 1992.439941 2002.609985 4460110000 2002.609985 
2015-01-07 2005.550049 2029.609985 2005.550049 2025.900024 3805480000 2025.900024 
2015-01-08 2030.609985 2064.080078 2030.609985 2062.139893 3934010000 2062.139893 

Чтобы двигаться дальше, вы должны иметь свой индекс в отдельной колонке как число дат, а не в качестве метки времени, которая достигается за счет:

spy['Date2'] = spy.index.map(lambda x: mdates.date2num(x)) 

Шаг 4. Подсвечник черчения.

Теперь, когда у вас есть все данные на месте можно построить:

fig, ax = plt.subplots() 
ax.xaxis_date() 
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m-%d")) 
plt.xlabel("Date") 
plt.ylabel("Price") 
plt.title("SP500") 
candlestick_ohlc(ax, spy[['Date2', 'Open', 'High', 'Low','Close']].values, width=.6, colorup='g', alpha =.4); 

enter image description here

EDIT

Если вы все еще хотите иметь только две отдельные линии для высокого и Ниже приведена следующая строка кода:

spy[['High','Low']].plot(); 

enter image description here

Смежные вопросы