{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "f19006ad",
   "metadata": {},
   "source": [
    "# gr001_simple\n",
    "- The first section plots data generated from arrays.\n",
    "- The second section plots data read from a text file.\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "**Author:** Rene Brun, Jamie Gooding  \n",
    "<i><small>This notebook tutorial was automatically generated with <a href= \"https://github.com/root-project/root/blob/master/documentation/doxygen/converttonotebook.py\">ROOTBOOK-izer</a> from the macro found in the ROOT repository  on Tuesday, May 19, 2026 at 08:37 PM.</small></i>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "27824df9",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:37:40.012208Z",
     "iopub.status.busy": "2026-05-19T20:37:40.012074Z",
     "iopub.status.idle": "2026-05-19T20:37:41.155238Z",
     "shell.execute_reply": "2026-05-19T20:37:41.154530Z"
    }
   },
   "outputs": [],
   "source": [
    "import re\n",
    "\n",
    "import numpy as np\n",
    "import ROOT\n",
    "\n",
    "c1 = ROOT.TCanvas(\"c1\", \"Two simple graphs\", 200, 10, 700, 500)\n",
    "c1.Divide(\n",
    "    2, 1\n",
    ")  # Dividing the canvas in subpads for distinguishing the two examples, [See documentation](https://root.cern/doc/master/classTCanvas.html)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d9cdd9eb",
   "metadata": {},
   "source": [
    "First Example (Available data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "d62c4234",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:37:41.164475Z",
     "iopub.status.busy": "2026-05-19T20:37:41.164265Z",
     "iopub.status.idle": "2026-05-19T20:37:41.294505Z",
     "shell.execute_reply": "2026-05-19T20:37:41.293213Z"
    }
   },
   "outputs": [],
   "source": [
    "c1.cd(1)\n",
    "\n",
    "n = 20\n",
    "x = np.linspace(0, n - 1, n)\n",
    "y = 10 * np.sin(x + 0.2)\n",
    "\n",
    "gr1 = ROOT.TGraph(n, x, y)  # Create a TGraph object, storing the number of data n and the x, y variables"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "45b224f5",
   "metadata": {},
   "source": [
    "Set the color, width and style for the markers and line"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "d3bfd27d",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:37:41.304489Z",
     "iopub.status.busy": "2026-05-19T20:37:41.304347Z",
     "iopub.status.idle": "2026-05-19T20:37:41.439419Z",
     "shell.execute_reply": "2026-05-19T20:37:41.438623Z"
    }
   },
   "outputs": [],
   "source": [
    "gr1.SetLineColor(2)\n",
    "gr1.SetLineWidth(4)\n",
    "gr1.SetMarkerColor(4)\n",
    "gr1.SetMarkerStyle(21)\n",
    "gr1.SetTitle(\"Graph from available data\")  # Choose title for the graph\n",
    "gr1.GetXaxis().SetTitle(\"X title\")  # Choose title for the axis\n",
    "gr1.GetYaxis().SetTitle(\"Y title\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "42c9b37a",
   "metadata": {},
   "source": [
    "Uncomment the following line to set a custom range for the x-axis (respectively for the y-axis):\n",
    "gr1.GetXaxis().SetRangeUser(0, 1.8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "47919af8",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:37:41.444541Z",
     "iopub.status.busy": "2026-05-19T20:37:41.444405Z",
     "iopub.status.idle": "2026-05-19T20:37:41.553464Z",
     "shell.execute_reply": "2026-05-19T20:37:41.552737Z"
    }
   },
   "outputs": [],
   "source": [
    "gr1.Draw(\n",
    "    \"ACP\"\n",
    ")  # \"A\" draw axes, \"C\" = draw a smooth line through the markers (optional) and \"P\" = draw markers for data points"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b2284fc6",
   "metadata": {},
   "source": [
    "Optional customization can be done on a ROOT interactive session"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7e14d879",
   "metadata": {},
   "source": [
    "SECOND EXAMPLE (Data stored in a text file)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "811ed341",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:37:41.560569Z",
     "iopub.status.busy": "2026-05-19T20:37:41.560433Z",
     "iopub.status.idle": "2026-05-19T20:37:41.663717Z",
     "shell.execute_reply": "2026-05-19T20:37:41.663280Z"
    }
   },
   "outputs": [],
   "source": [
    "c1.cd(2)\n",
    "\n",
    "w = np.array([])\n",
    "z = np.array([])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c3ea5084",
   "metadata": {},
   "source": [
    "Open the data file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "57c79ab5",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:37:41.677424Z",
     "iopub.status.busy": "2026-05-19T20:37:41.677275Z",
     "iopub.status.idle": "2026-05-19T20:37:41.797280Z",
     "shell.execute_reply": "2026-05-19T20:37:41.792368Z"
    }
   },
   "outputs": [],
   "source": [
    "with open(f\"{ROOT.gROOT.GetTutorialDir()}/visualisation/graphs/data_basic.txt\") as file:  # Open the data file\n",
    "    for line in file:\n",
    "        w_str, z_str = re.split(r\"\\s+\", line)[:2]\n",
    "        w = np.append(w, float(w_str))\n",
    "        z = np.append(z, float(z_str))\n",
    "\n",
    "m = len(w)\n",
    "\n",
    "gr2 = ROOT.TGraph(m, w, z)  # Create a TGraph object for the file data\n",
    "gr2.SetLineColor(4)\n",
    "gr2.SetLineWidth(2)\n",
    "gr2.SetMarkerColor(2)\n",
    "gr2.SetMarkerStyle(20)\n",
    "gr2.SetTitle(\"Graph from data file\")\n",
    "gr2.GetXaxis().SetTitle(\"W title\")\n",
    "gr2.GetYaxis().SetTitle(\"Z title\")\n",
    "\n",
    "gr2.Draw(\"ACP\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5d104718",
   "metadata": {},
   "source": [
    "Draw all canvases "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "1bad8389",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:37:41.799328Z",
     "iopub.status.busy": "2026-05-19T20:37:41.799194Z",
     "iopub.status.idle": "2026-05-19T20:37:41.992999Z",
     "shell.execute_reply": "2026-05-19T20:37:41.992665Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "<div id=\"root_plot_1779223061983\" style=\"width: 700px; height: 500px; position: relative\">\n",
       "</div>\n",
       "\n",
       "</div>\n",
       "<script>\n",
       "   function process_root_plot_1779223061983() {\n",
       "      function execCode(Core) {\n",
       "         Core.settings.HandleKeys = false;\n",
       "         \n",
       "Core.unzipJSON(28880,'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').then(json => {\n",
       "   const obj = Core.parse(json);\n",
       "   Core.draw('root_plot_1779223061983', obj, '');\n",
       "});\n",
       "\n",
       "      }\n",
       "      const servers = ['/static/', 'https://root.cern/js/7.11.0/', 'https://jsroot.gsi.de/7.11.0/'],\n",
       "            path = 'build/jsroot';\n",
       "      if (typeof JSROOT !== 'undefined')\n",
       "         execCode(JSROOT);\n",
       "      else if (typeof requirejs !== 'undefined') {\n",
       "         servers.forEach((s,i) => { servers[i] = s + path; });\n",
       "         requirejs.config({ paths: { 'jsroot' : servers } })(['jsroot'],  execCode);\n",
       "      } else {\n",
       "         const config = document.getElementById('jupyter-config-data');\n",
       "         if (config)\n",
       "            servers[0] = (JSON.parse(config.innerHTML || '{}')?.baseUrl || '/') + 'static/';\n",
       "         else\n",
       "            servers.shift();\n",
       "         function loadJsroot() {\n",
       "            return !servers.length ? 0 : import(servers.shift() + path + '.js').catch(loadJsroot).then(() => execCode(JSROOT));\n",
       "         }\n",
       "         loadJsroot();\n",
       "      }\n",
       "   }\n",
       "   process_root_plot_1779223061983();\n",
       "</script>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from ROOT import gROOT \n",
    "gROOT.GetListOfCanvases().Draw()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.12.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
