2017-08-24 18:54:01 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
2018-02-18 10:01:55 +00:00
|
|
|
|
2017-08-24 18:54:01 +00:00
|
|
|
def default_graph_layout_options():
|
2017-11-04 03:03:24 +00:00
|
|
|
"""
|
|
|
|
Default layout options for all graphs.
|
|
|
|
:returns: a dict of default options.
|
2017-08-24 18:54:01 +00:00
|
|
|
"""
|
|
|
|
return {
|
2017-10-19 18:20:00 +00:00
|
|
|
'paper_bgcolor': 'rgb(52, 58, 64)',
|
|
|
|
'plot_bgcolor': 'rgb(52, 58, 64)',
|
2017-08-24 18:54:01 +00:00
|
|
|
'font': {
|
2017-10-19 18:20:00 +00:00
|
|
|
'color': 'rgba(255, 255, 255, 1)',
|
2017-08-24 18:54:01 +00:00
|
|
|
# Bootstrap 4 font family.
|
|
|
|
'family': '-apple-system, BlinkMacSystemFont, "Segoe UI", '
|
|
|
|
'Roboto, "Helvetica Neue", Arial, sans-serif, '
|
|
|
|
'"Apple Color Emoji", "Segoe UI Emoji", '
|
|
|
|
'"Segoe UI Symbol"',
|
|
|
|
'size': 14,
|
|
|
|
},
|
2017-10-19 18:20:00 +00:00
|
|
|
'margin': {'b': 80, 't': 80},
|
2017-08-24 18:54:01 +00:00
|
|
|
'xaxis': {
|
|
|
|
'titlefont': {
|
2017-10-19 18:20:00 +00:00
|
|
|
'color': 'rgba(255, 255, 255, 0.5)'
|
|
|
|
},
|
|
|
|
'gridcolor': 'rgba(0, 0, 0, 0.25)',
|
|
|
|
'zerolinecolor': 'rgba(0, 0, 0, 0.5)'
|
2017-08-24 18:54:01 +00:00
|
|
|
},
|
|
|
|
'yaxis': {
|
|
|
|
'titlefont': {
|
2017-10-19 18:20:00 +00:00
|
|
|
'color': 'rgba(255, 255, 255, 0.5)'
|
|
|
|
},
|
|
|
|
'gridcolor': 'rgba(0, 0, 0, 0.25)',
|
|
|
|
'zerolinecolor': 'rgba(0, 0, 0, 0.5)'
|
2017-08-24 18:54:01 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-10-19 17:19:52 +00:00
|
|
|
def rangeselector_date():
|
2017-11-04 03:03:24 +00:00
|
|
|
"""
|
|
|
|
Graph date range selectors settings for 1w, 2w, 1m, 3m, and all.
|
|
|
|
:returns: a dict of settings for the selectors.
|
2017-10-19 17:19:52 +00:00
|
|
|
"""
|
|
|
|
return {
|
2017-10-19 18:20:00 +00:00
|
|
|
'bgcolor': 'rgb(35, 149, 86)',
|
|
|
|
'activecolor': 'rgb(25, 108, 62)',
|
2017-10-19 17:19:52 +00:00
|
|
|
'buttons': [
|
|
|
|
{
|
|
|
|
'count': 7,
|
|
|
|
'label': '1w',
|
|
|
|
'step': 'day',
|
|
|
|
'stepmode': 'backward'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'count': 14,
|
|
|
|
'label': '2w',
|
|
|
|
'step': 'day',
|
|
|
|
'stepmode': 'backward'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'count': 1,
|
|
|
|
'label': '1m',
|
|
|
|
'step': 'month',
|
|
|
|
'stepmode': 'backward'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'count': 3,
|
|
|
|
'label': '3m',
|
|
|
|
'step': 'month',
|
|
|
|
'stepmode': 'backward'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'step': 'all'
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-08-24 18:54:01 +00:00
|
|
|
def split_graph_output(output):
|
2017-11-04 03:03:24 +00:00
|
|
|
"""
|
|
|
|
Split out of a Plotly graph in to html and javascript.
|
|
|
|
:param output: a string of html and javascript comprising the graph.
|
|
|
|
:returns: a tuple of the the graph's html and javascript.
|
2017-08-24 18:54:01 +00:00
|
|
|
"""
|
2019-02-03 03:11:20 +00:00
|
|
|
html, js_graph, js_listener = output.split('<script')
|
|
|
|
js_graph = '<script' + js_graph
|
|
|
|
js_listener = '<script' + js_listener
|
|
|
|
return html, js_graph, js_listener
|