Add a sankey example

This commit is contained in:
Maxime Beauchemin 2016-03-27 00:27:14 -07:00
parent 5be7b03ba4
commit 48210d5275
3 changed files with 63 additions and 1 deletions

View File

@ -61,6 +61,9 @@ def load_examples(sample):
data.load_css_templates() data.load_css_templates()
print("Loading energy related dataset")
data.load_energy()
print("Loading [World Bank's Health Nutrition and Population Stats]") print("Loading [World Bank's Health Nutrition and Population Stats]")
data.load_world_bank_health_n_pop() data.load_world_bank_health_n_pop()

View File

@ -6,7 +6,7 @@ import os
import textwrap import textwrap
import pandas as pd import pandas as pd
from sqlalchemy import String, DateTime from sqlalchemy import String, DateTime, Float
from dashed import app, db, models, utils from dashed import app, db, models, utils
@ -47,6 +47,65 @@ def get_slice_json(defaults, **kwargs):
return json.dumps(d, indent=4, sort_keys=True) return json.dumps(d, indent=4, sort_keys=True)
def load_energy():
"""Loads an energy related dataset to use with sankey and graphs"""
tbl_name = 'energy_usage'
with gzip.open(os.path.join(DATA_FOLDER, 'energy.json.gz')) as f:
pdf = pd.read_json(f)
pdf.to_sql(
tbl_name,
db.engine,
if_exists='replace',
chunksize=500,
dtype={
'source': String(255),
'target': String(255),
'value': Float(),
},
index=False)
print("Creating table [wb_health_population] reference")
tbl = db.session.query(TBL).filter_by(table_name=tbl_name).first()
if not tbl:
tbl = TBL(table_name=tbl_name)
tbl.description = "Energy consumption"
tbl.is_featured = True
tbl.database = get_or_create_db(db.session)
db.session.merge(tbl)
db.session.commit()
tbl.fetch_metadata()
merge_slice(
Slice(
slice_name="Energy Sankey",
viz_type='sankey',
datasource_type='table',
table=tbl,
params=textwrap.dedent("""\
{
"collapsed_fieldsets": "",
"datasource_id": "3",
"datasource_name": "energy_usage",
"datasource_type": "table",
"flt_col_0": "source",
"flt_eq_0": "",
"flt_op_0": "in",
"groupby": [
"source",
"target"
],
"having": "",
"metric": "sum__value",
"row_limit": "5000",
"slice_id": "",
"slice_name": "Energy Sankey",
"viz_type": "sankey",
"where": ""
}
"""))
)
def load_world_bank_health_n_pop(): def load_world_bank_health_n_pop():
"""Loads the world bank health dataset, slices and a dashboard""" """Loads the world bank health dataset, slices and a dashboard"""
tbl_name = 'wb_health_population' tbl_name = 'wb_health_population'

BIN
dashed/data/energy.json.gz Normal file

Binary file not shown.