{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "a35eeb9f-df70-4ab1-a243-2d2025888eb0",
      "metadata": {},
      "source": [
        "# Introduction to the JupyterLab and Jupyter Notebooks\n",
        "\n",
        "This is a short introduction to two of the flagship tools created by [the Jupyter Community](https://jupyter.org).\n",
        "\n",
        "> **⚠️Experimental!⚠️**: This is an experimental interface provided by the [JupyterLite project](https://jupyterlite.readthedocs.io/en/latest/). It embeds an entire JupyterLab interface, with many popular packages for scientific computing, in your browser. There may be minor differences in behavior between JupyterLite and the JupyterLab you install locally. You may also encounter some bugs or unexpected behavior. To report any issues, or to get involved with the JupyterLite project, see [the JupyterLite repository](https://github.com/jupyterlite/jupyterlite/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc).\n",
        "\n",
        "## JupyterLab 🧪\n",
        "\n",
        "**JupyterLab** is a next-generation web-based user interface for Project Jupyter. It enables you to work with documents and activities such as Jupyter notebooks, text editors, terminals, and custom components in a flexible, integrated, and extensible manner. It is the interface that you're looking at right now.\n",
        "\n",
        "**For an overview of the JupyterLab interface**, see the **JupyterLab Welcome Tour** on this page, by going to `Help -> Welcome Tour` and following the prompts.\n",
        "\n",
        "> **See Also**: For a more in-depth tour of JupyterLab with a full environment that runs in the cloud, see [the JupyterLab introduction on Binder](https://mybinder.org/v2/gh/jupyterlab/jupyterlab-demo/HEAD?urlpath=lab/tree/demo).\n",
        "\n",
        "## Jupyter Notebooks 📓\n",
        "\n",
        "**Jupyter Notebooks** are a community standard for communicating and performing interactive computing. They are a document that blends computations, outputs, explanatory text, mathematics, images, and rich media representations of objects.\n",
        "\n",
        "JupyterLab is one interface used to create and interact with Jupyter Notebooks.\n",
        "\n",
        "**For an overview of Jupyter Notebooks**, see the **JupyterLab Welcome Tour** on this page, by going to `Help -> Notebook Tour` and following the prompts.\n",
        "\n",
        "> **See Also**: For a more in-depth tour of Jupyter Notebooks and the Classic Jupyter Notebook interface, see [the Jupyter Notebook IPython tutorial on Binder](https://mybinder.org/v2/gh/ipython/ipython-in-depth/HEAD?urlpath=tree/binder/Index.ipynb).\n",
        "\n",
        "## An example: visualizing data in the notebook ✨\n",
        "\n",
        "Below is an example of a code cell. We'll visualize some simple data using two popular packages in Python. We'll use [NumPy](https://numpy.org/) to create some random data, and [Matplotlib](https://matplotlib.org) to visualize it.\n",
        "\n",
        "Note how the code and the results of running the code are bundled together."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "fe55883a-6887-43dd-9498-5333a51799e2",
      "metadata": {
        "trusted": true
      },
      "outputs": [
        {
          "data": {
            "image/png": "[encoded data, 74056 characters]",
            "text/plain": [
              "<pyolite.display.Image at 0x97d2f0>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "from matplotlib import pyplot as plt\n",
        "import numpy as np\n",
        "\n",
        "# Generate 100 random data points along 3 dimensions\n",
        "x, y, scale = np.random.randn(3, 100)\n",
        "fig, ax = plt.subplots()\n",
        "\n",
        "# Map each onto a scatterplot we'll create with Matplotlib\n",
        "ax.scatter(x=x, y=y, c=scale, s=np.abs(scale)*500)\n",
        "ax.set(title=\"Some random data, created with JupyterLab!\")\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "b9670d85-ef29-4dfd-b4b5-e76d279c1f1a",
      "metadata": {},
      "source": [
        "## Next steps 🏃\n",
        "\n",
        "This is just a short introduction to JupyterLab and Jupyter Notebooks. See below for some more ways to interact with tools in the Jupyter ecosystem, and its community.\n",
        "\n",
        "### Other notebooks in this demo\n",
        "\n",
        "Here are some other notebooks in this demo. Each of the items below corresponds to a file or folder in the **file browser to the left**.\n",
        "\n",
        "- [**`Lorenz.ipynb`**](Lorenz.ipynb) uses Python to demonstrate interactive visualizations and computations around the [Lorenz system](https://en.wikipedia.org/wiki/Lorenz_system). It shows off basic Python functionality, including more visualizations, data structures, and scientific computing libraries.\n",
        "- [**`r.ipynb`**](r.ipynb) demonstrates the R programming language for statistical computing and data analysis.\n",
        "- [**`cpp.ipynb`**](cpp.ipynb) demonstrates the C++ programming language for scientific computing and data analysis.\n",
        "- [**`sqlite.ipynb`**](sqlite.ipynb) demonstrates how an in-browser sqlite kernel to run your own SQL commands from the notebook. It uses the [jupyterlite/xeus-sqlite-kernel](https://github.com/jupyterlite/xeus-sqlite-kernel).\n",
        "\n",
        "### Other sources of information in Jupyter\n",
        "\n",
        "- **More on using JupyterLab**: See [the JupyterLab documentation](https://jupyterlab.readthedocs.io/en/stable/) for more thorough information about how to install and use JupyterLab.\n",
        "- **More interactive demos**: See [try.jupyter.org](https://try.jupyter.org) for more interactive demos with the Jupyter ecosystem.\n",
        "- **Learn more about Jupyter**: See [the Jupyter community documentation](https://docs.jupyter.org) to learn more about the project, its community and tools, and how to get involved.\n",
        "- **Join our discussions**: The [Jupyter Community Forum](https://discourse.jupyter.org) is a place where many in the Jupyter community ask questions, help one another, and discuss issues around interactive computing and our ecosystem."
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python (Pyodide)",
      "language": "python",
      "name": "python"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "python",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.8"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 5
}