Exemple #1
0
from bokeh.charts import Bar
from bokeh.plotting import output_file, show

df = pd.io.json.json_normalize(data['data'])

# we filter by countries with at least one medal and sort
df = df[df['medals.total'] > 0]
df = df.sort("medals.total", ascending=False)

# then, we get the countries and we group the data by medal type
countries = df.abbr.values.tolist()
gold = df['medals.gold'].astype(float).values
silver = df['medals.silver'].astype(float).values
bronze = df['medals.bronze'].astype(float).values

# later, we build a dict containing the grouped data
medals = OrderedDict(bronze=bronze, silver=silver, gold=gold)

# any of the following commented are valid Bar inputs
#medals = pd.DataFrame(medals)
#medals = list(medals.values())
output_file("stacked_bar.html")
bar = Bar(medals,
          countries,
          title="Stacked bars",
          filename="stacked_bar.html",
          stacked=True)
bar.xlabel("countries").ylabel("medals")
bar.legend(True).width(600).height(400)  #.stacked(True)
# bar.show()
show(bar)