forked from alanyuma/waedd-material-design
-
Notifications
You must be signed in to change notification settings - Fork 0
/
section_3.py
67 lines (56 loc) · 2.42 KB
/
section_3.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
"""
section_3.py
Written by: Aaron Finocchiaro
Creates all of the data for the section 3 graphs and tables. This will first run the functions
related to population data, and then handle the Bureau of Labor Statistics data.
usage:
- python section_3.py
"""
import yaml
from bls_data.bls import BlsData
from population_data import current_populations, population_predictions
#####
## Population Data ##
#####
current_populations()
population_predictions()
#####
## Bureau of Labor Statistics data ##
#####
# read in yaml file
with open('bls_config.yaml') as bls_yaml:
bls_list = yaml.load(bls_yaml, Loader=yaml.FullLoader)
#iterate dict from yaml config
for waedd_section in bls_list:
section_data = BlsData(
waedd_section['seriesIDs'],
waedd_section['start_year'],
waedd_section['end_year'],
)
#create graph and table
fig = section_data.create_graph(waedd_section['graph_name'],
graph_type=waedd_section['graph_type'],
custom_column_names=waedd_section.get('custom_column_names'),
transpose=waedd_section.get('transpose'),
graph_labels=waedd_section.get('graph_axis_labels'),
)
#change graph layout and modify graph mode or the hovertemplate if it is defined
if waedd_section.get('graph_mode') or waedd_section.get('hovertemplate'):
fig.update_traces(mode=waedd_section.get('graph_mode'), hovertemplate=waedd_section.get('hovertemplate'))
fig.update_layout(hovermode='x')
fig.update_layout(dragmode=False, legend=dict(title={'text':""},yanchor="top", y=1.02, xanchor='left', x=1, font=dict(size=8)))
#hide the legend if the hide_legend value is set to true
if waedd_section.get('hide_legend'):
fig.update_layout(showlegend=False)
#create the table, set height and margins
table = section_data.create_table(
custom_column_names=waedd_section.get('custom_column_names'),
index_color='orange',
descending=waedd_section.get('sort_descending'),
lines='black',
align='left',
)
table.update_layout(height=275, margin=dict(l=0,r=0,t=0,b=0))
#save graph and table to html files
fig.write_html(f"./graphs/{waedd_section['filename']}.html", include_plotlyjs='cdn')
table.write_html(f"./tables/{waedd_section['filename']}.html", include_plotlyjs='cdn')