{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "6294a161", "metadata": {}, "source": [ "# Plot x, y data from a databroker run\n", "\n", "This Bluesky notebook only uses the `databroker` package (and `matplotlib`) to plot $(x,y)$ data from a previous measurement.\n", "\n", "## 1. Show what data catalogs are available" ] }, { "cell_type": "code", "execution_count": 1, "id": "06e7644f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['bdp2022',\n", " 'class_2021_03',\n", " '6idb_export',\n", " 'apstools_test',\n", " 'class_data_examples',\n", " 'usaxs_test',\n", " 'korts202106',\n", " 'training']" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import databroker\n", "list(databroker.catalog)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "12485b9f", "metadata": {}, "source": [ "## 2. Choose a specific run from a catalog\n", "\n", "Here, the `class_data_examples` catalog will be used. \n", "\n", "We create an instance of this catalog and assign it to the variable `cat`. In\n", "this `cat`, the run with `scan_id=86` has a scan of detector _vs_. motor. The\n", "`cat` object is like a dictionary where `scan_id` can be used as a key. Next,\n", "using `86` as the key, we create an object called `run` that will be used to\n", "access the data from this run." ] }, { "cell_type": "code", "execution_count": 2, "id": "800e3e41", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "BlueskyRun\n", " uid='d19530f7-1ca6-4c02-a83b-229b3d92b6d1'\n", " exit_status='success'\n", " 2021-03-06 14:10:46.462 -- 2021-03-06 14:10:49.317\n", " Streams:\n", " * baseline\n", " * primary\n" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cat = databroker.catalog[\"class_data_examples\"]\n", "run = cat[86]\n", "run" ] }, { "attachments": {}, "cell_type": "markdown", "id": "33985994", "metadata": {}, "source": [ "## 3. Show the (primary) data\n", "\n", "Get all the data available from the `primary` stream. The `primary` stream is where bluesky stores the data acquired from a scan. `databroker` returns this data as an [xarray Dataset](http://xarray.pydata.org/en/stable/generated/xarray.Dataset.html). \n", "\n", "The detector is named `noisy` and the motor is named `m1`. We'll refer to `m1` and `noisy` as _data variables_ to be consistent with the `xarray.Dataset` (as shown in the table below)." ] }, { "cell_type": "code", "execution_count": 3, "id": "3d832d0e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset>\n",
       "Dimensions:           (time: 23)\n",
       "Coordinates:\n",
       "  * time              (time) float64 1.615e+09 1.615e+09 ... 1.615e+09 1.615e+09\n",
       "Data variables:\n",
       "    m1                (time) float64 0.939 0.941 0.942 ... 0.968 0.969 0.971\n",
       "    m1_user_setpoint  (time) float64 0.9392 0.9407 0.9421 ... 0.9693 0.9708\n",
       "    noisy             (time) float64 8.589e+03 1.067e+04 ... 1.076e+04 8.774e+03
" ], "text/plain": [ "\n", "Dimensions: (time: 23)\n", "Coordinates:\n", " * time (time) float64 1.615e+09 1.615e+09 ... 1.615e+09 1.615e+09\n", "Data variables:\n", " m1 (time) float64 0.939 0.941 0.942 ... 0.968 0.969 0.971\n", " m1_user_setpoint (time) float64 0.9392 0.9407 0.9421 ... 0.9693 0.9708\n", " noisy (time) float64 8.589e+03 1.067e+04 ... 1.076e+04 8.774e+03" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset = run.primary.read()\n", "dataset" ] }, { "attachments": {}, "cell_type": "markdown", "id": "86239bdb", "metadata": {}, "source": [ "## 4. Get data for the $x$ and $y$ axes\n", "\n", "The plotting steps become easier (and more general) if we create objects for each specific data variable to be plotted.\n", "\n", "Pick the `m1` (motor readback value) and `noisy` data for $x$ and $y$, respectively." ] }, { "cell_type": "code", "execution_count": 4, "id": "ab76d6fb", "metadata": {}, "outputs": [], "source": [ "x = dataset[\"m1\"]\n", "y = dataset[\"noisy\"]" ] }, { "attachments": {}, "cell_type": "markdown", "id": "f6d31ca4", "metadata": {}, "source": [ "## 5. Use MatPlotLib" ] }, { "cell_type": "code", "execution_count": 5, "id": "f20a039e", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "attachments": {}, "cell_type": "markdown", "id": "a2b35e38", "metadata": {}, "source": [ "## 6. Plot $(x,y)$ using matplotlib\n", "\n", "Follow the MatPlotLib [tutorial](https://matplotlib.org/stable/tutorials/introductory/pyplot.html) to learn how to customize this plot. The data (`x.values` and `y.values`) are obtained as [numpy ndarrays](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html)." ] }, { "cell_type": "code", "execution_count": 6, "id": "9198f7dc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'scan_id=86')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(x.values, y.values)\n", "plt.xlabel(x.name)\n", "plt.ylabel(y.name)\n", "plt.title(f\"scan_id={run.metadata['start']['scan_id']}\")" ] }, { "attachments": {}, "cell_type": "markdown", "id": "d49133a8", "metadata": {}, "source": [ "## 7. Plotting function\n", "\n", "Summarizing the code above, here is a handy function you can use to plot such $(x, y)$ data. Or, you can use this code as a starting point to make your own plot function." ] }, { "cell_type": "code", "execution_count": 7, "id": "65470035", "metadata": {}, "outputs": [], "source": [ "\n", "def xyplot(dataset, xname, yname, title=None):\n", " \"\"\"\n", " Plot the data from the primary stream (above).\n", "\n", " Example::\n", "\n", " xyplot(cat[-1].primary.read(), x.name, y.name)\n", " \"\"\"\n", " import matplotlib.pyplot as plt\n", "\n", " x = dataset[xname]\n", " y = dataset[yname]\n", " title = title or f\"{yname} v. {xname}\"\n", "\n", " plt.plot(x.values, y.values)\n", " plt.title(title)\n", " plt.xlabel(xname)\n", " plt.ylabel(yname)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "5f663bcf", "metadata": {}, "source": [ "Here is an example using this function with the `dataset` from above. The actual name for each data variable must match the name provided by the `dataset`. A plot title is provided." ] }, { "cell_type": "code", "execution_count": 8, "id": "87d5af19", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "xyplot(dataset, \"m1\", \"noisy\", title=\"Example XY plot\")" ] } ], "metadata": { "interpreter": { "hash": "fa399ef8ed4fbc3b7fe63ebf4307839a170374bf77134d519fcb3b724ac0582b" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.4" } }, "nbformat": 4, "nbformat_minor": 5 }