Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 8137d24

Browse filesBrowse files
committed
candlestick with boxplots
- re plotly/streambed#3291 (comment) if we want to use the box plot solution for candles this seems simpler @jackparmer @chriddyp
1 parent 0d7d1dd commit 8137d24
Copy full SHA for 8137d24

File tree

Expand file treeCollapse file tree

2 files changed

+143
-331
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+143
-331
lines changed

‎plotly/tests/test_core/test_tools/test_figure_factory.py

Copy file name to clipboardExpand all lines: plotly/tests/test_core/test_tools/test_figure_factory.py
+84-200Lines changed: 84 additions & 200 deletions
Original file line numberDiff line numberDiff line change
@@ -325,63 +325,25 @@ def test_one_candlestick(self):
325325
low=[32.7],
326326
close=[33.1])
327327

328-
exp_can_inc = {'data': [{'hoverinfo': 'none',
329-
'legendgroup': 'Increasing',
330-
'marker': {'color': 'rgba(0, 0, 0, 0)'},
331-
'showlegend': False,
332-
'type': 'bar',
333-
'x': [0],
334-
'y': [33.0]},
335-
{'hoverinfo': 'none',
336-
'legendgroup': 'Increasing',
337-
'line': {'color': '#3D9970'},
338-
'marker': {'color': '#3D9970'},
339-
'name': 'Increasing',
340-
'showlegend': False,
341-
'type': 'bar',
342-
'x': [0],
343-
'y': [0.10000000000000142]},
344-
{'legendgroup': 'Increasing',
328+
exp_can_inc = {'data': [{'boxpoints': False,
329+
'fillcolor': '#3D9970',
345330
'line': {'color': '#3D9970'},
346-
'marker': {'color': '#3D9970'},
347-
'mode': 'lines',
348331
'name': 'Increasing',
349332
'showlegend': False,
350-
'text': ('Low', 'Open', 'Close', 'High', ''),
351-
'type': 'scatter',
352-
'x': [0, 0, 0, 0, None],
353-
'y': [32.7, 33.0, 33.1, 33.2, None]},
354-
{'hoverinfo': 'none',
355-
'legendgroup': 'Decreasing',
356-
'marker': {'color': 'rgba(0, 0, 0, 0)'},
357-
'showlegend': False,
358-
'type': 'bar',
359-
'x': [],
360-
'y': []},
361-
{'hoverinfo': 'none',
362-
'legendgroup': 'Decreasing',
333+
'type': 'box',
334+
'whiskerwidth': 0,
335+
'x': [0, 0, 0, 0, 0, 0],
336+
'y': [32.7, 33.0, 33.1, 33.1, 33.1, 33.2]},
337+
{'boxpoints': False,
338+
'fillcolor': '#FF4136',
363339
'line': {'color': '#FF4136'},
364-
'marker': {'color': '#FF4136'},
365340
'name': 'Decreasing',
366341
'showlegend': False,
367-
'type': 'bar',
368-
'x': [],
369-
'y': []},
370-
{'legendgroup': 'Decreasing',
371-
'line': {'color': '#FF4136'},
372-
'marker': {'color': '#FF4136'},
373-
'mode': 'lines',
374-
'name': 'Decreasing',
375-
'showlegend': False,
376-
'text': (),
377-
'type': 'scatter',
342+
'type': 'box',
343+
'whiskerwidth': 0,
378344
'x': [],
379345
'y': []}],
380-
'layout': {'bargroupgap': 0.2,
381-
'barmode': 'stack',
382-
'yaxis': {'fixedrange': True,
383-
'range': [32.650000000000006,
384-
33.25]}}}
346+
'layout': {}}
385347

386348
self.assertEqual(can_inc, exp_can_inc)
387349

@@ -610,195 +572,117 @@ def test_datetime_candlestick(self):
610572
candle = tls.FigureFactory.create_candlestick(open_data, high_data,
611573
low_data, close_data,
612574
dates=x)
613-
exp_candle = {'data': [{'hoverinfo': 'none',
614-
'legendgroup': 'Increasing',
615-
'marker': {'color': 'rgba(0, 0, 0, 0)'},
616-
'showlegend': False,
617-
'type': 'bar',
618-
'x': [datetime.datetime(2013, 3, 4, 0, 0),
619-
datetime.datetime(2013, 12, 4, 0, 0),
620-
datetime.datetime(2014, 6, 6, 0, 0),
621-
datetime.datetime(2014, 12, 5, 0, 0)],
622-
'y': [33.01, 32.06, 33.05, 33.5]},
623-
{'hoverinfo': 'none',
624-
'legendgroup': 'Increasing',
625-
'line': {'color': '#3D9970'},
626-
'marker': {'color': '#3D9970'},
627-
'name': 'Increasing',
628-
'showlegend': False,
629-
'type': 'bar',
630-
'x': [datetime.datetime(2013, 3, 4, 0, 0),
631-
datetime.datetime(2013, 12, 4, 0, 0),
632-
datetime.datetime(2014, 6, 6, 0, 0),
633-
datetime.datetime(2014, 12, 5, 0, 0)],
634-
'y': [1.0900000000000034,
635-
1.1199999999999974,
636-
0.05000000000000426,
637-
0.20000000000000284]},
638-
{'legendgroup': 'Increasing',
575+
exp_candle = {'data': [{'boxpoints': False,
576+
'fillcolor': '#3D9970',
639577
'line': {'color': '#3D9970'},
640-
'marker': {'color': '#3D9970'},
641-
'mode': 'lines',
642578
'name': 'Increasing',
643579
'showlegend': False,
644-
'text': ('Low',
645-
'Open',
646-
'Close',
647-
'High',
648-
'',
649-
'Low',
650-
'Open',
651-
'Close',
652-
'High',
653-
'',
654-
'Low',
655-
'Open',
656-
'Close',
657-
'High',
658-
'',
659-
'Low',
660-
'Open',
661-
'Close',
662-
'High',
663-
''),
664-
'type': 'scatter',
580+
'type': 'box',
581+
'whiskerwidth': 0,
665582
'x': [datetime.datetime(2013, 3, 4, 0, 0),
666583
datetime.datetime(2013, 3, 4, 0, 0),
667584
datetime.datetime(2013, 3, 4, 0, 0),
668585
datetime.datetime(2013, 3, 4, 0, 0),
669-
None,
586+
datetime.datetime(2013, 3, 4, 0, 0),
587+
datetime.datetime(2013, 3, 4, 0, 0),
588+
datetime.datetime(2013, 12, 4, 0, 0),
670589
datetime.datetime(2013, 12, 4, 0, 0),
671590
datetime.datetime(2013, 12, 4, 0, 0),
672591
datetime.datetime(2013, 12, 4, 0, 0),
673592
datetime.datetime(2013, 12, 4, 0, 0),
674-
None,
593+
datetime.datetime(2013, 12, 4, 0, 0),
594+
datetime.datetime(2014, 6, 6, 0, 0),
595+
datetime.datetime(2014, 6, 6, 0, 0),
675596
datetime.datetime(2014, 6, 6, 0, 0),
676597
datetime.datetime(2014, 6, 6, 0, 0),
677598
datetime.datetime(2014, 6, 6, 0, 0),
678599
datetime.datetime(2014, 6, 6, 0, 0),
679-
None,
680600
datetime.datetime(2014, 12, 5, 0, 0),
681601
datetime.datetime(2014, 12, 5, 0, 0),
682602
datetime.datetime(2014, 12, 5, 0, 0),
683603
datetime.datetime(2014, 12, 5, 0, 0),
684-
None],
685-
'y': [31.7,
686-
33.01,
687-
34.1,
688-
34.2,
689-
None,
690-
31.62,
691-
32.06,
692-
33.18,
693-
34.25,
694-
None,
695-
32.75,
696-
33.05,
697-
33.1,
698-
33.25,
699-
None,
700-
32.87,
701-
33.5,
702-
33.7,
703-
34.62,
704-
None]},
705-
{'hoverinfo': 'none',
706-
'legendgroup': 'Decreasing',
707-
'marker': {'color': 'rgba(0, 0, 0, 0)'},
708-
'showlegend': False,
709-
'type': 'bar',
710-
'x': [datetime.datetime(2013, 6, 5, 0, 0),
711-
datetime.datetime(2013, 9, 6, 0, 0),
712-
datetime.datetime(2014, 3, 5, 0, 0),
713-
datetime.datetime(2014, 9, 4, 0, 0)],
714-
'y': [31.93, 33.37, 31.18, 32.93]},
715-
{'hoverinfo': 'none',
716-
'legendgroup': 'Decreasing',
717-
'line': {'color': '#FF4136'},
718-
'marker': {'color': '#FF4136'},
719-
'name': 'Decreasing',
720-
'showlegend': False,
721-
'type': 'bar',
722-
'x': [datetime.datetime(2013, 6, 5, 0, 0),
723-
datetime.datetime(2013, 9, 6, 0, 0),
724-
datetime.datetime(2014, 3, 5, 0, 0),
725-
datetime.datetime(2014, 9, 4, 0, 0)],
726-
'y': [1.3800000000000026,
727-
0.13000000000000256,
728-
2.9399999999999977,
729-
0.38000000000000256]},
730-
{'legendgroup': 'Decreasing',
604+
datetime.datetime(2014, 12, 5, 0, 0),
605+
datetime.datetime(2014, 12, 5, 0, 0)],
606+
'y': [31.7,
607+
33.01,
608+
34.1,
609+
34.1,
610+
34.1,
611+
34.2,
612+
31.62,
613+
32.06,
614+
33.18,
615+
33.18,
616+
33.18,
617+
34.25,
618+
32.75,
619+
33.05,
620+
33.1,
621+
33.1,
622+
33.1,
623+
33.25,
624+
32.87,
625+
33.5,
626+
33.7,
627+
33.7,
628+
33.7,
629+
34.62]},
630+
{'boxpoints': False,
631+
'fillcolor': '#FF4136',
731632
'line': {'color': '#FF4136'},
732-
'marker': {'color': '#FF4136'},
733-
'mode': 'lines',
734633
'name': 'Decreasing',
735634
'showlegend': False,
736-
'text': ('Low',
737-
'Close',
738-
'Open',
739-
'High',
740-
'',
741-
'Low',
742-
'Close',
743-
'Open',
744-
'High',
745-
'',
746-
'Low',
747-
'Close',
748-
'Open',
749-
'High',
750-
'',
751-
'Low',
752-
'Close',
753-
'Open',
754-
'High',
755-
''),
756-
'type': 'scatter',
635+
'type': 'box',
636+
'whiskerwidth': 0,
757637
'x': [datetime.datetime(2013, 6, 5, 0, 0),
758638
datetime.datetime(2013, 6, 5, 0, 0),
759639
datetime.datetime(2013, 6, 5, 0, 0),
760640
datetime.datetime(2013, 6, 5, 0, 0),
761-
None,
641+
datetime.datetime(2013, 6, 5, 0, 0),
642+
datetime.datetime(2013, 6, 5, 0, 0),
643+
datetime.datetime(2013, 9, 6, 0, 0),
762644
datetime.datetime(2013, 9, 6, 0, 0),
763645
datetime.datetime(2013, 9, 6, 0, 0),
764646
datetime.datetime(2013, 9, 6, 0, 0),
765647
datetime.datetime(2013, 9, 6, 0, 0),
766-
None,
648+
datetime.datetime(2013, 9, 6, 0, 0),
649+
datetime.datetime(2014, 3, 5, 0, 0),
650+
datetime.datetime(2014, 3, 5, 0, 0),
767651
datetime.datetime(2014, 3, 5, 0, 0),
768652
datetime.datetime(2014, 3, 5, 0, 0),
769653
datetime.datetime(2014, 3, 5, 0, 0),
770654
datetime.datetime(2014, 3, 5, 0, 0),
771-
None,
772655
datetime.datetime(2014, 9, 4, 0, 0),
773656
datetime.datetime(2014, 9, 4, 0, 0),
774657
datetime.datetime(2014, 9, 4, 0, 0),
775658
datetime.datetime(2014, 9, 4, 0, 0),
776-
None],
777-
'y': [30.75,
778-
31.93,
779-
33.31,
780-
34.37,
781-
None,
782-
32.87,
783-
33.37,
784-
33.5,
785-
33.62,
786-
None,
787-
30.81,
788-
31.18,
789-
34.12,
790-
35.18,
791-
None,
792-
32.75,
793-
32.93,
794-
33.31,
795-
35.37,
796-
None]}],
797-
'layout': {'bargroupgap': 0.2,
798-
'barmode': 'stack',
799-
'yaxis': {'fixedrange': True,
800-
'range': [30.288,
801-
35.831999999999994]}}}
659+
datetime.datetime(2014, 9, 4, 0, 0),
660+
datetime.datetime(2014, 9, 4, 0, 0)],
661+
'y': [30.75,
662+
33.31,
663+
31.93,
664+
31.93,
665+
31.93,
666+
34.37,
667+
32.87,
668+
33.5,
669+
33.37,
670+
33.37,
671+
33.37,
672+
33.62,
673+
30.81,
674+
34.12,
675+
31.18,
676+
31.18,
677+
31.18,
678+
35.18,
679+
32.75,
680+
33.31,
681+
32.93,
682+
32.93,
683+
32.93,
684+
35.37]}],
685+
'layout': {}}
802686

803687
self.assertEqual(candle, exp_candle)
804688

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.