<commit_before>{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a href='http://www.holoviews.org'><img src=\"assets/header_logo.png\" alt=\"HoloViews logo\" width=\"20%;\" align=\"left\"/></a>\n",
    "<div style=\"float:right;\"><h2>00. Introduction and Setup</h2></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "Welcome to the HoloViews SciPy 2017 tutorial!\n",
    "\n",
    "This notebook serves as the homepage of the tutorial, including a general overview, instructions to check that everything is installed properly as well as a table of contents pointing to the tutorial sections.\n",
    "\n",
    "\n",
    "## What is HoloViews?\n",
    "\n",
    "HoloViews is an [open-source](https://github.com/ioam/holoviews) Python library designed to make data analysis and visualization seamless and simple. With HoloViews, you can usually express what you want to do in very few lines of code, letting you focus on what you are trying to explore and convey, not on the process of plotting.\n",
    "\n",
    "**HoloViews helps you understand your data better, by letting you work seamlessly with both the data** ***and*** **its graphical representation.**\n",
    "\n",
    "When working with HoloViews, the focus is on bundling your data together with the appropriate metadata to support both analysis and visualization, making your raw data and its visualization equally accessible at all times.  This tutorial will introduce HoloViews and guide you through the process of building rich, deployable visualizations with HoloViews and [Bokeh](bokeh.pydata.org) with exercises you are encouraged to try yourself.\n",
    "\n",
    "\n",
    "The following GIF illustrates the type of visual application we will be working towards in this tutorial:\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Tutorial Overview\n",
    "\n",
    "You will find a lot of related support material on our website [holoviews.org](http://www.holoviews.org). For convience here are some links you might find useful during the tutorial:\n",
    "\n",
    "* [Reference gallery](http://holoviews.org/reference/index.html): Visual reference of all elements, all containers, a few bokeh app examples and a number of stream classes.\n",
    "* [Getting started guide](http://holoviews.org/getting_started/index.html): Covers a lot of related material in a non-tutorial format.\n",
    "\n",
    "## Index and Schedule\n",
    "\n",
    "This tutorial is broken down into the following sections:\n",
    "\n",
    "* [1 - Introduction](./01-introduction-to-elements.ipynb): Get started by creating a variety of different elements. [approx 40 min]\n",
    "* [2 - Customizing visual appearance](./02-customizing-visual-appearance.ipynb): How to change the appearance and output format of elements. [approx 20 min]\n",
    "* [3 - Exploration with containers](./03-exploration-with-containers.ipynb): Using elements for quick, easy data exploration [approx 30 min]\n",
    "* *Break: 15 minutes*\n",
    "* [4 - Working with tabular data](./04-working-with-tabular-data.ipynb): Loading and exploring a tabular dataset [approx 30 min]\n",
    "* [5 - Working with gridded data](./05-working-with-gridded-data.ipynb): Loading and exploring a gridded dataset. [approx 20 min]\n",
    "* [6 - Custom interactivity](./06-custom-interactivity.ipynb): Introducing the HoloViews streams system for adding interactivity to your visualizations. [approx 30 min]\n",
    "* *Break: 5 minutes*\n",
    "* [7 - Working with large data](./07-working-with-large-datasets.ipynb): Get started by creating a variety of different elements. [approx 20 min]\n",
    "* [8 - Deploying Bokeh Apps](./08-deploying-bokeh-apps.ipynb): Deploy a visualization built using HoloViews as a Bokeh server application. [approx 30 min]\n",
    "\n",
    "\n",
    "## Getting set up\n",
    "\n",
    "Please consult the tutorial repository [README](https://github.com/ioam/scipy-2017-holoviews-tutorial/blob/master/README.rst) for instructions on setting up your environment. Here is the condensed version of these instructions for unix systems (i.e Linux or OSX):\n",
    "\n",
    "```bash\n",
    "$ conda env create -f environment.yml\n",
    "$ source activate hvtutorial\n",
    "$ cd notebooks\n",
    "$ jupyter notebook --NotebookApp.iopub_data_rate_limit=100000000\n",
    "\n",
    "```\n",
    "\n",
    "If you have any problems with running these instructions, you can conveniently view the full instructions within this notebook by running the following cell:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from IPython.core import page\n",
    "with open('../README.rst', 'r') as f:\n",
    "    page.page(f.read())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Once the environment is set up, the following cell should print '1.8.0':"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import holoviews as hv\n",
    "hv.__version__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And you should see the HoloViews logo after running the following cell:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "hv.extension('bokeh', 'matplotlib')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Recommended configuration"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following configuration options are recommended additions to your '~/.holoviews.rc' file as they improve the tutorial experience and will be the default behaviour in future:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "lines = ['import holoviews as hv', 'hv.extension.case_sensitive_completion=True',\n",
    "         \"hv.Dataset.datatype = ['dataframe']+hv.Dataset.datatype\"]\n",
    "print('\\n'.join(lines))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you do not have a holoviews.rc already, simply run the following cell to generate it:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "with open(os.path.join(os.path.expanduser('~'), '.holoviews.rc'), 'w') as f:\n",
    "    f.write('\\n'.join(lines))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",<commit_msg>Added Jim's edits to welcome notebook<commit_after>{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a href='http://www.holoviews.org'><img src=\"assets/header_logo.png\" alt=\"HoloViews logo\" width=\"20%;\" align=\"left\"/></a>\n",
    "<div style=\"float:right;\"><h2>00. Introduction and Setup</h2></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Welcome to the HoloViews SciPy 2017 tutorial!\n",
    "\n",
    "This notebook serves as the homepage of the tutorial, including a general overview, instructions to check that everything is installed properly, and a table of contents listing each tutorial section.\n",
    "\n",
    "\n",
    "## What is HoloViews?\n",
    "\n",
    "HoloViews is an [open-source](https://github.com/ioam/holoviews) Python library that makes it simpler to explore your data and communicate the results to others.  Compared to other tools, the most important feature of HoloViews is that:\n",
    "\n",
    "**HoloViews lets you work seamlessly with both the data** ***and*** **its graphical representation.**\n",
    "\n",
    "When using HoloViews, the focus is on bundling your data together with the appropriate metadata to support both analysis and plotting, making your raw data *and* its visualization equally accessible at all times.  This tutorial will introduce HoloViews and guide you through the process of building rich, deployable visualizations based on [Bokeh](bokeh.pydata.org), [Datashader](https://github.com/bokeh/datashader), and [matplotlib](http://matplotlib.org).\n",
    "\n",
    "The following GIF illustrates the type of visual application we will be working towards in this tutorial:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Tutorial Overview\n",
    "\n",
    "You will find extensive support material on our website [holoviews.org](http://www.holoviews.org). In particular, you may find these links useful during the tutorial:\n",
    "\n",
    "* [Reference gallery](http://holoviews.org/reference/index.html): Visual reference of all elements and containers, along with some other components\n",
    "* [Getting started guide](http://holoviews.org/getting_started/index.html): Covers some of the same topics as this tutorial, but without exercises\n",
    "\n",
    "## Index and Schedule\n",
    "\n",
    "This four-hour tutorial is broken down into the following sections:\n",
    "\n",
    "* **40 min** &nbsp;[1 - Introduction](./01-introduction-to-elements.ipynb): Get started by creating a variety of different HoloViews \"elements\".\n",
    "* **20 min** &nbsp;[2 - Customizing visual appearance](./02-customizing-visual-appearance.ipynb): How to change the appearance and output format of elements.\n",
    "* **30 min** &nbsp;[3 - Exploration with containers](./03-exploration-with-containers.ipynb): Using HoloViews \"containers\" for quick, easy data exploration.\n",
    "* **15 min** &nbsp;*Break*\n",
    "* **30 min** &nbsp;[4 - Working with tabular data](./04-working-with-tabular-data.ipynb): Exploring a tabular (columnar) dataset.\n",
    "* **20 min** &nbsp;[5 - Working with gridded data](./05-working-with-gridded-data.ipynb): Exploring a gridded (n-dimensional) dataset.\n",
    "* **30 min** &nbsp;[6 - Custom interactivity](./06-custom-interactivity.ipynb): Using HoloViews \"streams\" to add interactivity to your visualizations.\n",
    "* &nbsp;&nbsp;**5 min** &nbsp;*Break*\n",
    "* **20 min** &nbsp;[7 - Working with large data](./07-working-with-large-datasets.ipynb): Using datasets too large to feed directly to your browser.\n",
    "* **30 min** &nbsp;[8 - Deploying Bokeh Apps](./08-deploying-bokeh-apps.ipynb): Deploying your visualizations using Bokeh server.\n",
    "\n",
    "\n",
    "## Getting set up\n",
    "\n",
    "Please consult the tutorial repository [README](https://github.com/ioam/scipy-2017-holoviews-tutorial/blob/master/README.rst) for instructions on setting up your environment. Here is the condensed version of these instructions for unix-based systems (Linux or Mac OS X):\n",
    "\n",
    "```bash\n",
    "$ conda env create -f environment.yml\n",
    "$ source activate hvtutorial\n",
    "$ cd notebooks\n",
    "$ jupyter notebook --NotebookApp.iopub_data_rate_limit=100000000\n",
    "\n",
    "```\n",
    "\n",
    "If you have any problems with running these instructions, you can conveniently view the full instructions within this notebook by running the following cell:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from IPython.core import page\n",
    "with open('../README.rst', 'r') as f:\n",
    "    page.page(f.read())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Once the environment is set up, the following cell should print '1.8.0':"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import holoviews as hv\n",
    "hv.__version__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And you should see the HoloViews logo after running the following cell:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "hv.extension('bokeh', 'matplotlib')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Recommended configuration"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following configuration options are recommended additions to your '~/.holoviews.rc' file as they improve the tutorial experience and will be the default behaviour in future:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "lines = ['import holoviews as hv', 'hv.extension.case_sensitive_completion=True',\n",
    "         \"hv.Dataset.datatype = ['dataframe']+hv.Dataset.datatype\"]\n",
    "print('\\n'.join(lines))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you do not have a holoviews.rc already, simply run the following cell to generate one containing the above lines:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "with open(os.path.join(os.path.expanduser('~'), '.holoviews.rc'), 'w') as f:\n",
    "    f.write('\\n'.join(lines))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
{'fraction_non_alphanumeric': 0.16309791681788488, 'fraction_numerical': 0.010452202946940553, 'mean_word_length': 3.3123630672926447, 'pattern_counts': {'":': 123, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 5, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 2, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '893525', 'n_tokens_mistral': 4533, 'n_tokens_neox': 4393, 'n_words': 1329}