1
1
---
2
- permalink: python/candlestick-charts
2
+ permalink: python/candlestick-charts/
3
3
description: How to make interactive candlestick charts in Python with Plotly. Six examples of candlestick charts with Pandas, time series, and yahoo finance data.
4
4
name: Candlestick Charts
5
5
has_thumbnail: true
@@ -182,7 +182,7 @@ <h5 id="Custom-Candlestick-Colors">Custom Candlestick Colors<a class="anchor-lin
182
182
< span class ="c "> # Make increasing ohlc sticks and customize their color and name</ span >
183
183
< span class ="n "> fig_increasing</ span > < span class ="o "> =</ span > < span class ="n "> FF</ span > < span class ="o "> .</ span > < span class ="n "> create_candlestick</ span > < span class ="p "> (</ span > < span class ="n "> df</ span > < span class ="o "> .</ span > < span class ="n "> Open</ span > < span class ="p "> ,</ span > < span class ="n "> df</ span > < span class ="o "> .</ span > < span class ="n "> High</ span > < span class ="p "> ,</ span > < span class ="n "> df</ span > < span class ="o "> .</ span > < span class ="n "> Low</ span > < span class ="p "> ,</ span > < span class ="n "> df</ span > < span class ="o "> .</ span > < span class ="n "> Close</ span > < span class ="p "> ,</ span > < span class ="n "> dates</ span > < span class ="o "> =</ span > < span class ="n "> df</ span > < span class ="o "> .</ span > < span class ="n "> index</ span > < span class ="p "> ,</ span >
184
184
< span class ="n "> direction</ span > < span class ="o "> =</ span > < span class ="s "> 'increasing'</ span > < span class ="p "> ,</ span > < span class ="n "> name</ span > < span class ="o "> =</ span > < span class ="s "> 'AAPL'</ span > < span class ="p "> ,</ span >
185
- < span class ="n "> marker</ span > < span class ="o "> =</ span > < span class ="n "> Marker</ span > < span class ="p "> (</ span > < span class ="n "> color</ span > < span class ="o "> =</ span > < span class ="s "> 'rgb(150, 200, 250)'</ span > < span class ="p "> ),</ span >
185
+ < span class ="n "> marker</ span > < span class ="o "> =</ span > < span class ="n "> Marker</ span > < span class ="p "> (</ span > < span class ="n "> color</ span > < span class ="o "> =</ span > < span class ="s "> 'rgb(150, 200, 250)'</ span > < span class ="p "> ),</ span >
186
186
< span class ="n "> line</ span > < span class ="o "> =</ span > < span class ="n "> Line</ span > < span class ="p "> (</ span > < span class ="n "> color</ span > < span class ="o "> =</ span > < span class ="s "> 'rgb(150, 200, 250)'</ span > < span class ="p "> ))</ span >
187
187
188
188
< span class ="c "> # Make decreasing ohlc sticks and customize their color and name</ span >
@@ -305,9 +305,9 @@ <h5 id="Simple-Example-Adding-a-Trace-to-a-Candlestick-Chart">Simple Example Add
305
305
306
306
< span class ="c "> # Create Line of open values</ span >
307
307
< span class ="n "> add_line</ span > < span class ="o "> =</ span > < span class ="n "> Scatter</ span > < span class ="p "> (</ span >
308
- < span class ="n "> x</ span > < span class ="o "> =</ span > < span class ="n "> df</ span > < span class ="o "> .</ span > < span class ="n "> index</ span > < span class ="p "> ,</ span >
309
- < span class ="n "> y</ span > < span class ="o "> =</ span > < span class ="n "> df</ span > < span class ="o "> .</ span > < span class ="n "> Open</ span > < span class ="p "> ,</ span >
310
- < span class ="n "> name</ span > < span class ="o "> =</ span > < span class ="s "> 'Open Vals'</ span > < span class ="p "> ,</ span >
308
+ < span class ="n "> x</ span > < span class ="o "> =</ span > < span class ="n "> df</ span > < span class ="o "> .</ span > < span class ="n "> index</ span > < span class ="p "> ,</ span >
309
+ < span class ="n "> y</ span > < span class ="o "> =</ span > < span class ="n "> df</ span > < span class ="o "> .</ span > < span class ="n "> Open</ span > < span class ="p "> ,</ span >
310
+ < span class ="n "> name</ span > < span class ="o "> =</ span > < span class ="s "> 'Open Vals'</ span > < span class ="p "> ,</ span >
311
311
< span class ="n "> line</ span > < span class ="o "> =</ span > < span class ="n "> Line</ span > < span class ="p "> (</ span > < span class ="n "> color</ span > < span class ="o "> =</ span > < span class ="s "> 'black'</ span > < span class ="p "> )</ span >
312
312
< span class ="p "> )</ span >
313
313
@@ -366,7 +366,7 @@ <h3 id="Reference">Reference<a class="anchor-link" href="#Reference">¶</a><
366
366
367
367
create_candlestick(open, high, low, close, dates=None, direction='both', **kwargs)
368
368
BETA function that creates a candlestick chart
369
-
369
+
370
370
:param (list) open: opening values
371
371
:param (list) high: high values
372
372
:param (list) low: low values
@@ -384,22 +384,22 @@ <h3 id="Reference">Reference<a class="anchor-link" href="#Reference">¶</a><
384
384
These kwargs describe other attributes about the ohlc Scatter trace
385
385
such as the color or the legend name. For more information on valid
386
386
kwargs call help(plotly.graph_objs.Scatter)
387
-
387
+
388
388
:rtype (dict): returns a representation of candlestick chart figure.
389
-
389
+
390
390
Example 1: Simple candlestick chart from a Pandas DataFrame
391
391
```
392
392
import plotly.plotly as py
393
393
from plotly.tools import FigureFactory as FF
394
394
from datetime import datetime
395
-
395
+
396
396
import pandas.io.data as web
397
-
397
+
398
398
df = web.DataReader("aapl", 'yahoo', datetime(2007, 10, 1), datetime(2009, 4, 1))
399
399
fig = FF.create_candlestick(df.Open, df.High, df.Low, df.Close, dates=df.index)
400
400
py.plot(fig, filename='finance/aapl-candlestick', validate=False)
401
401
```
402
-
402
+
403
403
Example 2: Add text and annotations to the candlestick chart
404
404
```
405
405
fig = FF.create_candlestick(df.Open, df.High, df.Low, df.Close, dates=df.index)
@@ -420,46 +420,46 @@ <h3 id="Reference">Reference<a class="anchor-link" href="#Reference">¶</a><
420
420
})
421
421
py.plot(fig, filename='finance/aapl-recession-candlestick', validate=False)
422
422
```
423
-
423
+
424
424
Example 3: Customize the candlestick colors
425
425
```
426
426
import plotly.plotly as py
427
427
from plotly.tools import FigureFactory as FF
428
428
from plotly.graph_objs import Line, Marker
429
429
from datetime import datetime
430
-
430
+
431
431
import pandas.io.data as web
432
-
432
+
433
433
df = web.DataReader("aapl", 'yahoo', datetime(2008, 1, 1), datetime(2009, 4, 1))
434
-
434
+
435
435
# Make increasing candlesticks and customize their color and name
436
436
fig_increasing = FF.create_candlestick(df.Open, df.High, df.Low, df.Close, dates=df.index,
437
437
direction='increasing', name='AAPL',
438
438
marker=Marker(color='rgb(150, 200, 250)'),
439
439
line=Line(color='rgb(150, 200, 250)'))
440
-
440
+
441
441
# Make decreasing candlesticks and customize their color and name
442
442
fig_decreasing = FF.create_candlestick(df.Open, df.High, df.Low, df.Close, dates=df.index,
443
443
direction='decreasing',
444
444
marker=Marker(color='rgb(128, 128, 128)'),
445
445
line=Line(color='rgb(128, 128, 128)'))
446
-
446
+
447
447
# Initialize the figure
448
448
fig = fig_increasing
449
-
449
+
450
450
# Add decreasing data with .extend()
451
451
fig['data'].extend(fig_decreasing['data'])
452
-
452
+
453
453
py.iplot(fig, filename='finance/aapl-candlestick-custom', validate=False)
454
454
```
455
-
455
+
456
456
Example 4: Candlestick chart with datetime objects
457
457
```
458
458
import plotly.plotly as py
459
459
from plotly.tools import FigureFactory as FF
460
-
460
+
461
461
from datetime import datetime
462
-
462
+
463
463
# Add data
464
464
open_data = [33.0, 33.3, 33.5, 33.0, 34.1]
465
465
high_data = [33.1, 33.3, 33.6, 33.2, 34.8]
@@ -470,11 +470,11 @@ <h3 id="Reference">Reference<a class="anchor-link" href="#Reference">¶</a><
470
470
datetime(year=2013, month=12, day=10),
471
471
datetime(year=2014, month=1, day=10),
472
472
datetime(year=2014, month=2, day=10)]
473
-
473
+
474
474
# Create ohlc
475
475
fig = FF.create_candlestick(open_data, high_data,
476
476
low_data, close_data, dates=dates)
477
-
477
+
478
478
py.iplot(fig, filename='finance/simple-candlestick', validate=False)
479
479
```
480
480
0 commit comments