Skip to content

Commit

Permalink
Add a sankey example
Browse files Browse the repository at this point in the history
  • Loading branch information
mistercrunch committed Mar 27, 2016
1 parent 5be7b03 commit 48210d5
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 1 deletion.
3 changes: 3 additions & 0 deletions dashed/bin/dashed
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ def load_examples(sample):

data.load_css_templates()

print("Loading energy related dataset")
data.load_energy()

print("Loading [World Bank's Health Nutrition and Population Stats]")
data.load_world_bank_health_n_pop()

Expand Down
61 changes: 60 additions & 1 deletion dashed/data/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import textwrap

import pandas as pd
from sqlalchemy import String, DateTime
from sqlalchemy import String, DateTime, Float

from dashed import app, db, models, utils

Expand Down Expand Up @@ -47,6 +47,65 @@ def get_slice_json(defaults, **kwargs):
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():
"""Loads the world bank health dataset, slices and a dashboard"""
tbl_name = 'wb_health_population'
Expand Down
Binary file added dashed/data/energy.json.gz
Binary file not shown.

0 comments on commit 48210d5

Please sign in to comment.