From 1b211d5b9ca0a74e9a527c100bf9b4515f5a4346 Mon Sep 17 00:00:00 2001 From: "Timothy M. Shead" Date: Fri, 14 Oct 2022 12:17:32 -0600 Subject: [PATCH] Checkpoint work on the computational graph proof of concept. --- .../experimental/graphcat-etree-layout.ipynb | 162 +++++++++++++----- 1 file changed, 120 insertions(+), 42 deletions(-) diff --git a/notebooks/experimental/graphcat-etree-layout.ipynb b/notebooks/experimental/graphcat-etree-layout.ipynb index 25975e82..524e2b9b 100644 --- a/notebooks/experimental/graphcat-etree-layout.ipynb +++ b/notebooks/experimental/graphcat-etree-layout.ipynb @@ -27,6 +27,7 @@ "import xml.etree.ElementTree as xml\n", "\n", "from IPython.display import display_svg\n", + "import numpy\n", "\n", "import boxcat\n", "import domcat\n", @@ -40,6 +41,13 @@ "metadata": {}, "outputs": [], "source": [ + "def plot(graph, name, inputs):\n", + " x = inputs.getone(\"x\")\n", + " y = inputs.getone(\"y\")\n", + " plot = xml.Element(\"plot\", x=x, y=y)\n", + " return plot\n", + "\n", + "\n", "def render(graph, name, inputs):\n", " root = inputs.getone(None)\n", " top, right, bottom, left = root.get(\"boxcat:content\")\n", @@ -74,9 +82,19 @@ "graph = graphcat.StaticGraph()\n", "graph.add_task(\"canvas\", domcat.create_element(\"canvas\", width=200, height=100))\n", "graph.add_task(\"axes1\", domcat.create_element(\"cartesian\", margin=\"10px\", padding=\"5px\"))\n", + "graph.add_task(\"x\", graphcat.constant(numpy.arange(10)))\n", + "graph.add_task(\"y\", graphcat.constant(numpy.arange(10) ** 2))\n", + "graph.add_task(\"plot\", plot)\n", "graph.add_task(\"append1\", domcat.append_element)\n", - "graph.add_links(\"canvas\", (\"append1\", \"parent\"))\n", - "graph.add_links(\"axes1\", (\"append1\", \"child\"))\n", + "graph.add_task(\"append2\", domcat.append_element)\n", + "\n", + "graph.add_links(\"x\", (\"plot\", \"x\"))\n", + "graph.add_links(\"y\", (\"plot\", \"y\"))\n", + "graph.add_links(\"plot\", (\"append1\", \"child\"))\n", + "graph.add_links(\"axes1\", (\"append1\", \"parent\"))\n", + "\n", + "graph.add_links(\"append1\", (\"append2\", \"child\"))\n", + "graph.add_links(\"canvas\", (\"append2\", \"parent\"))\n", "\n", "# graph.add_task(\"axes2\", domcat.create_element(\"radial\", left=\"50%\"))\n", "# graph.add_task(\"append2\", domcat.append_element)\n", @@ -84,7 +102,7 @@ "# graph.add_links(\"axes2\", (\"append2\", \"child\"))\n", "\n", "graph.add_task(\"layout\", boxcat.graphcat_layout)\n", - "graph.add_links(\"append1\", \"layout\")\n", + "graph.add_links(\"append2\", \"layout\")\n", "\n", "graph.add_task(\"render\", render)\n", "graph.add_links(\"layout\", \"render\")" @@ -99,66 +117,118 @@ { "data": { "image/svg+xml": [ - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", "\n", "\n", "canvas\n", - "\n", - "canvas\n", + "\n", + "canvas\n", "\n", - "\n", + "\n", "\n", - "append1\n", - "\n", - "append1\n", + "append2\n", + "\n", + "append2\n", "\n", - "\n", + "\n", "\n", - "canvas->append1\n", - "\n", - "\n", - "  parent  \n", + "canvas->append2\n", + "\n", + "\n", + "  parent  \n", "\n", "\n", - "\n", + "\n", "layout\n", - "\n", - "layout\n", + "\n", + "layout\n", "\n", - "\n", - "\n", - "append1->layout\n", - "\n", - "\n", - "    \n", + "\n", + "\n", + "append2->layout\n", + "\n", + "\n", + "    \n", "\n", "\n", "\n", "axes1\n", - "\n", - "axes1\n", + "\n", + "axes1\n", + "\n", + "\n", + "\n", + "append1\n", + "\n", + "append1\n", "\n", "\n", "\n", "axes1->append1\n", - "\n", - "\n", - "  child  \n", + "\n", + "\n", + "  parent  \n", "\n", - "\n", + "\n", + "\n", + "append1->append2\n", + "\n", + "\n", + "  child  \n", + "\n", + "\n", "\n", + "x\n", + "\n", + "x\n", + "\n", + "\n", + "\n", + "plot\n", + "\n", + "plot\n", + "\n", + "\n", + "\n", + "x->plot\n", + "\n", + "\n", + "  x  \n", + "\n", + "\n", + "\n", + "plot->append1\n", + "\n", + "\n", + "  child  \n", + "\n", + "\n", + "\n", + "y\n", + "\n", + "y\n", + "\n", + "\n", + "\n", + "y->plot\n", + "\n", + "\n", + "  y  \n", + "\n", + "\n", + "\n", "render\n", - "\n", - "render\n", + "\n", + "render\n", "\n", "\n", - "\n", + "\n", "layout->render\n", - "\n", - "\n", - "    \n", + "\n", + "\n", + "    \n", "\n", "\n", "" @@ -186,13 +256,15 @@ "output_type": "stream", "text": [ "\n", - " \n", + " \n", + " \n", + " \n", "\n" ] } ], "source": [ - "domcat.dump(graph.output(\"append1\"))" + "domcat.dump(graph.output(\"append2\"))" ] }, { @@ -206,7 +278,9 @@ "output_type": "stream", "text": [ "\n", - " \n", + " \n", + " \n", + " \n", "\n" ] } @@ -234,6 +308,10 @@ " \n", " cartesian\n", " \n", + " \n", + " \n", + " plot\n", + " \n", "\n" ] } @@ -251,7 +329,7 @@ { "data": { "image/svg+xml": [ - "canvascartesian" + "canvascartesianplot" ] }, "metadata": {},