Ohlc#
import pandas as pd
import hvplot.pandas # noqa
ohlc
is a useful chart type to visualize stock movements
from bokeh.sampledata import stocks
df = pd.DataFrame(stocks.AAPL)
df['date'] = pd.to_datetime(df.date)
df.iloc[-50:].hvplot.ohlc(grid=True)
We can control the neg_color
, pos_color
, line_color
and bar_width
:
df.iloc[-50:].hvplot.ohlc(neg_color='indianred', pos_color='chartreuse', line_color='gray', bar_width=0.9, grid=True)
By default ohlc
will assume the index
OR the first datetime column should be mapped to the x-axis and the first four non-datetime columns correspond to the O (open), H (high), L (low) and C (close) components. The default call is therefore equivalent to:
df.iloc[-50:].hvplot.ohlc('date', ['open', 'low', 'high', 'close'], grid=True)
Using the HoloViews RangeToolLink
we can make it easy to scroll through the data while still seeing an overview of the overall timeseries:
from holoviews.plotting.links import RangeToolLink
df_2012 = df[df.date > pd.to_datetime('2012')]
ohlc = df_2012.hvplot.ohlc(ylabel='Price ($)', grid=True, xaxis=None)
overview = df_2012.hvplot.ohlc(yaxis=None, height=150, fields={'date': 'Date'})
volume = df_2012.hvplot.step('date', 'volume', height=100, xaxis=None)
RangeToolLink(overview.get(0), ohlc.get(0))
layout = (volume + ohlc + overview).cols(1)
layout.opts(merge_tools=False)
This web page was generated from a Jupyter notebook and not all
interactivity will work on this website.