Skip to content
ANNO-Sprachen Plotly Dynamic.ipynb 3.06 MiB
Newer Older
Stefan Karner's avatar
Stefan Karner committed
    "        py.iplot(ipl_all_fig)        \n",
    "\n",
    "        \n",
    "def plot_pages():\n",
    "    with plot_out:\n",
    "        per_year_and_language = get_filtered_dataframe()[['languages', 'year', 'page_count']].groupby(['languages', 'year']).sum()\n",
Stefan Karner's avatar
Stefan Karner committed
    "        \n",
    "        # pages per language - all languages\n",
    "        idx = per_year_and_language.index\n",
    "\n",
    "        pper_language = {}\n",
    "        for lang in idx.get_level_values(0):\n",
    "            data = per_year_and_language[idx.get_level_values(0) == lang]\n",
    "            graph_obj = go.Bar(\n",
    "                x = data.index.get_level_values(1),\n",
    "                y = data.page_count,\n",
Stefan Karner's avatar
Stefan Karner committed
    "                name = lang.upper()\n",
    "            )\n",
    "            pper_language[lang] = {\n",
    "                'data_obj': data,\n",
    "                'graph_obj': graph_obj\n",
    "            }\n",
    "\n",
    "        ppl_all_data = [pper_language[lang]['graph_obj'] for lang in sorted(pper_language.keys(), reverse=True)]\n",
    "        ppl_all_layout = go.Layout(\n",
    "            title='Pages per Language per Year',\n",
    "            barmode='stack',\n",
    "            xaxis={'title': 'Year'},\n",
    "            yaxis={'title': 'Pages'},\n",
    "            height=500\n",
    "        )\n",
    "        ppl_all_fig = go.Figure(data=ppl_all_data, layout=ppl_all_layout)\n",
    "        py.iplot(ppl_all_fig)        \n",
    "        \n",
    "def plot(*args):\n",
    "    plot_out.clear_output()\n",
    "    plot_pages()\n",
    "    plot_issues()\n",
    "\n",
    "def update_filtered_plotly_output(*args):\n",
    "    filtered_data = get_filtered_dataframe()\n",
    "    text_out.clear_output()\n",
    "    with text_out:\n",
    "        print('Selected Issues: {}'.format(len(filtered_data)))\n",
    "\n",
    "        \n",
    "years.observe(update_filtered_plotly_output, names=['value'])\n",
    "pages.observe(update_filtered_plotly_output, names=['value'])\n",
    "lang.observe(update_filtered_plotly_output, names=['value'])\n",
    "labs.observe(update_filtered_plotly_output, names=['value'])\n",
    "# clear_plot.on_click(plot_clear)  # TODO: recreate plot_clear function\n",
Stefan Karner's avatar
Stefan Karner committed
    "create_plot.on_click(plot)\n",
    "\n",
    "update_filtered_plotly_output()\n",
    "    \n",
    "dyn_view = widgets.VBox([\n",
    "    years,\n",
    "    pages,\n",
    "    lang,\n",
    "    labs,\n",
    "    text_out,\n",
    "    # widgets.HBox([create_plot, clear_plot]),\n",
    "    create_plot,\n",
    "    plot_out\n",
    "])\n",
    "dyn_view"
   ]
  },
  {
   "cell_type": "code",
Stefan Karner's avatar
Stefan Karner committed
   "metadata": {},
   "outputs": [],
   "source": [
    "import ipywidgets.embed as embed"
   ]
  },
  {
   "cell_type": "code",
Stefan Karner's avatar
Stefan Karner committed
   "metadata": {},
   "outputs": [],
   "source": [
    "# embed.embed_minimal_html('export.html', views=dyn_view, title='Widgets export')  # DEFUNCT"
Stefan Karner's avatar
Stefan Karner committed
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
Stefan Karner's avatar
Stefan Karner committed
   "language": "python",
Stefan Karner's avatar
Stefan Karner committed
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
Stefan Karner's avatar
Stefan Karner committed
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}