.. This document is auto-generated by the altair-gallery extension. Do not modify directly. .. _gallery_candlestick_chart: Candlestick Chart ================= A candlestick chart inspired from Protovis (http://mbostock.github.io/protovis/ex/candlestick.html). This example shows the performance of the Chicago Board Options Exchange Volatility Index (VIX) in the summer of 2009. The thick bar represents the opening and closing prices, while the thin bar shows intraday high and low prices; if the index closed higher on a given day, the bars are colored green rather than red. .. altair-plot:: :code-below: import altair as alt import pandas as pd df = pd.DataFrame( [ { "date": "2009-06-01", "open": 28.7, "high": 30.05, "low": 28.45, "close": 30.04, "signal": "short", "ret": -4.89396411092985 }, { "date": "2009-06-02", "open": 30.04, "high": 30.13, "low": 28.3, "close": 29.63, "signal": "short", "ret": -0.322580645161295 }, { "date": "2009-06-03", "open": 29.62, "high": 31.79, "low": 29.62, "close": 31.02, "signal": "short", "ret": 3.68663594470045 }, { "date": "2009-06-04", "open": 31.02, "high": 31.02, "low": 29.92, "close": 30.18, "signal": "short", "ret": 4.51010886469673 }, { "date": "2009-06-05", "open": 29.39, "high": 30.81, "low": 28.85, "close": 29.62, "signal": "short", "ret": 6.08424336973478 }, { "date": "2009-06-08", "open": 30.84, "high": 31.82, "low": 26.41, "close": 29.77, "signal": "short", "ret": 1.2539184952978 }, { "date": "2009-06-09", "open": 29.77, "high": 29.77, "low": 27.79, "close": 28.27, "signal": "short", "ret": -5.02431118314424 }, { "date": "2009-06-10", "open": 26.9, "high": 29.74, "low": 26.9, "close": 28.46, "signal": "short", "ret": -5.46623794212217 }, { "date": "2009-06-11", "open": 27.36, "high": 28.11, "low": 26.81, "close": 28.11, "signal": "short", "ret": -8.3743842364532 }, { "date": "2009-06-12", "open": 28.08, "high": 28.5, "low": 27.73, "close": 28.15, "signal": "short", "ret": -5.52763819095477 }, { "date": "2009-06-15", "open": 29.7, "high": 31.09, "low": 29.64, "close": 30.81, "signal": "long", "ret": 3.4920634920635 }, { "date": "2009-06-16", "open": 30.81, "high": 32.75, "low": 30.07, "close": 32.68, "signal": "short", "ret": 0.155038759689914 }, { "date": "2009-06-17", "open": 31.19, "high": 32.77, "low": 30.64, "close": 31.54, "signal": "short", "ret": 5.82822085889571 }, { "date": "2009-06-18", "open": 31.54, "high": 31.54, "low": 29.6, "close": 30.03, "signal": "short", "ret": 8.17610062893082 }, { "date": "2009-06-19", "open": 29.16, "high": 29.32, "low": 27.56, "close": 27.99, "signal": "short", "ret": 8.59872611464968 }, { "date": "2009-06-22", "open": 30.4, "high": 32.05, "low": 30.3, "close": 31.17, "signal": "short", "ret": 15.4907975460123 }, { "date": "2009-06-23", "open": 31.3, "high": 31.54, "low": 27.83, "close": 30.58, "signal": "short", "ret": 11.7370892018779 }, { "date": "2009-06-24", "open": 30.58, "high": 30.58, "low": 28.79, "close": 29.05, "signal": "long", "ret": -10.4234527687296 }, { "date": "2009-06-25", "open": 29.45, "high": 29.56, "low": 26.3, "close": 26.36, "signal": "long", "ret": 0 }, { "date": "2009-06-26", "open": 27.09, "high": 27.22, "low": 25.76, "close": 25.93, "signal": "long", "ret": 0 }, { "date": "2009-06-29", "open": 25.93, "high": 27.18, "low": 25.29, "close": 25.35, "signal": "long", "ret": 5.26315789473684 }, { "date": "2009-06-30", "open": 25.36, "high": 27.38, "low": 25.02, "close": 26.35, "signal": "long", "ret": 6.73758865248228 } ] ) open_close_color = alt.condition("datum.open < datum.close", alt.value("#06982d"), alt.value("#ae1325")) rule = alt.Chart(df).mark_rule().encode( alt.X( 'yearmonthdate(date):T', scale=alt.Scale(domain=[{"month": 5, "date": 31, "year": 2009}, {"month": 7, "date": 1, "year": 2009}]), axis=alt.Axis(format='%m/%d', title='Date in 2009') ), alt.Y( 'low', scale=alt.Scale(zero=False), axis=alt.Axis(title='Price') ), alt.Y2('high'), color=open_close_color ) bar = alt.Chart(df).mark_bar().encode( x='yearmonthdate(date):T', y='open', y2='close', color=open_close_color ) rule + bar .. toctree:: :hidden: