Graphviz/dot cleanup
parent
b54ad4e3f0
commit
f48e94fa25
|
@ -57,7 +57,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": 8,
|
||||
"metadata": {
|
||||
"id": "bayesnet_import_code"
|
||||
},
|
||||
|
@ -65,6 +65,7 @@
|
|||
"source": [
|
||||
"import gtsam\n",
|
||||
"import numpy as np\n",
|
||||
"import graphviz\n",
|
||||
"\n",
|
||||
"# We need concrete graph types and elimination to get a BayesNet\n",
|
||||
"from gtsam import GaussianFactorGraph, Ordering, GaussianBayesNet\n",
|
||||
|
@ -87,7 +88,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": 9,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"base_uri": "https://localhost:8080/"
|
||||
|
@ -184,7 +185,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": 10,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"base_uri": "https://localhost:8080/"
|
||||
|
@ -235,7 +236,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": 11,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"base_uri": "https://localhost:8080/"
|
||||
|
@ -282,7 +283,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": 12,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"base_uri": "https://localhost:8080/"
|
||||
|
@ -291,22 +292,6 @@
|
|||
"outputId": "3456789a-bcde-f012-3456-789abcdef012"
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"digraph {\n",
|
||||
" size=\"5,5\";\n",
|
||||
"\n",
|
||||
" var8646911284551352320[label=\"x0\"];\n",
|
||||
" var8646911284551352321[label=\"x1\"];\n",
|
||||
" var8646911284551352322[label=\"x2\"];\n",
|
||||
"\n",
|
||||
" var8646911284551352322->var8646911284551352321\n",
|
||||
" var8646911284551352321->var8646911284551352320\n",
|
||||
"}\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/svg+xml": [
|
||||
|
@ -354,22 +339,16 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<graphviz.sources.Source at 0x2c3022fcc20>"
|
||||
"<graphviz.sources.Source at 0x18b7818a990>"
|
||||
]
|
||||
},
|
||||
"execution_count": 5,
|
||||
"execution_count": 12,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"dot_string = bayes_net.dot()\n",
|
||||
"print(dot_string)\n",
|
||||
"\n",
|
||||
"# To render:\n",
|
||||
"# dot -Tpng bayesnet.dot -o bayesnet.png\n",
|
||||
"import graphviz\n",
|
||||
"graphviz.Source(dot_string)"
|
||||
"graphviz.Source(bayes_net.dot())"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": 8,
|
||||
"metadata": {
|
||||
"id": "bayestree_import_code"
|
||||
},
|
||||
|
@ -65,6 +65,7 @@
|
|||
"source": [
|
||||
"import gtsam\n",
|
||||
"import numpy as np\n",
|
||||
"import graphviz\n",
|
||||
"\n",
|
||||
"# We need concrete graph types and elimination to get a BayesTree\n",
|
||||
"from gtsam import GaussianFactorGraph, Ordering, GaussianBayesTree, VariableIndex\n",
|
||||
|
@ -239,7 +240,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": 5,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"base_uri": "https://localhost:8080/"
|
||||
|
@ -262,7 +263,7 @@
|
|||
"traceback": [
|
||||
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)",
|
||||
"Cell \u001b[1;32mIn[4], line 4\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mBayesTree number of cliques: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mbayes_tree\u001b[38;5;241m.\u001b[39msize()\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 3\u001b[0m \u001b[38;5;66;03m# Access roots\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m roots \u001b[38;5;241m=\u001b[39m \u001b[43mbayes_tree\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mroots\u001b[49m()\n\u001b[0;32m 5\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNumber of roots: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(roots)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m roots:\n\u001b[0;32m 7\u001b[0m \u001b[38;5;66;03m# Access the conditional associated with the first root clique\u001b[39;00m\n",
|
||||
"Cell \u001b[1;32mIn[5], line 4\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mBayesTree number of cliques: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mbayes_tree\u001b[38;5;241m.\u001b[39msize()\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 3\u001b[0m \u001b[38;5;66;03m# Access roots\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m roots \u001b[38;5;241m=\u001b[39m \u001b[43mbayes_tree\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mroots\u001b[49m()\n\u001b[0;32m 5\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNumber of roots: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(roots)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m roots:\n\u001b[0;32m 7\u001b[0m \u001b[38;5;66;03m# Access the conditional associated with the first root clique\u001b[39;00m\n",
|
||||
"\u001b[1;31mAttributeError\u001b[0m: 'gtsam.gtsam.GaussianBayesTree' object has no attribute 'roots'"
|
||||
]
|
||||
}
|
||||
|
@ -298,7 +299,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": 6,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"base_uri": "https://localhost:8080/"
|
||||
|
@ -377,7 +378,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": 9,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"base_uri": "https://localhost:8080/"
|
||||
|
@ -386,17 +387,6 @@
|
|||
"outputId": "789abcde-f012-3456-789a-bcdef0123456"
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"digraph G{\n",
|
||||
"0[label=\"x1, l2, x2\"];\n",
|
||||
"0->1\n",
|
||||
"1[label=\"l1, x0 : x1\"];\n",
|
||||
"}\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/svg+xml": [
|
||||
|
@ -433,22 +423,16 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<graphviz.sources.Source at 0x1241c40dbe0>"
|
||||
"<graphviz.sources.Source at 0x1698193de80>"
|
||||
]
|
||||
},
|
||||
"execution_count": 6,
|
||||
"execution_count": 9,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"dot_string = bayes_tree.dot()\n",
|
||||
"print(dot_string)\n",
|
||||
"\n",
|
||||
"# To render:\n",
|
||||
"# dot -Tpng bayestree.dot -o bayestree.png\n",
|
||||
"import graphviz\n",
|
||||
"graphviz.Source(dot_string)"
|
||||
"graphviz.Source(bayes_tree.dot())"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
|
@ -123,7 +123,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"base_uri": "https://localhost:8080/"
|
||||
|
@ -300,7 +300,6 @@
|
|||
"\n",
|
||||
"# Generate dot string using the configured writer\n",
|
||||
"dot_string = graph.dot(writer=writer)\n",
|
||||
"# print(dot_string)\n",
|
||||
"\n",
|
||||
"# Render the graph\n",
|
||||
"graphviz.Source(dot_string)"
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": 1,
|
||||
"metadata": {
|
||||
"id": "fg_import_code"
|
||||
},
|
||||
|
@ -66,6 +66,7 @@
|
|||
"source": [
|
||||
"import gtsam\n",
|
||||
"import numpy as np\n",
|
||||
"import graphviz\n",
|
||||
"\n",
|
||||
"# Example uses NonlinearFactorGraph, but concepts apply to others\n",
|
||||
"from gtsam import NonlinearFactorGraph, PriorFactorPose2, BetweenFactorPose2, Pose2, Point3\n",
|
||||
|
@ -87,7 +88,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": 2,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"base_uri": "https://localhost:8080/"
|
||||
|
@ -134,7 +135,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": 3,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"base_uri": "https://localhost:8080/"
|
||||
|
@ -191,7 +192,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": 4,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"base_uri": "https://localhost:8080/"
|
||||
|
@ -237,7 +238,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"execution_count": 5,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"base_uri": "https://localhost:8080/"
|
||||
|
@ -246,25 +247,6 @@
|
|||
"outputId": "56789abc-def0-1234-5678-9abcdef01234"
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"graph {\n",
|
||||
" size=\"5,5\";\n",
|
||||
"\n",
|
||||
" var8646911284551352320[label=\"x0\", pos=\"0,0!\"];\n",
|
||||
" var8646911284551352321[label=\"x1\", pos=\"0,1!\"];\n",
|
||||
"\n",
|
||||
" factor0[label=\"\", shape=point];\n",
|
||||
" var8646911284551352320--factor0;\n",
|
||||
" factor1[label=\"\", shape=point];\n",
|
||||
" var8646911284551352320--factor1;\n",
|
||||
" var8646911284551352321--factor1;\n",
|
||||
"}\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/svg+xml": [
|
||||
|
@ -319,23 +301,16 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<graphviz.sources.Source at 0x1c24ffedfd0>"
|
||||
"<graphviz.sources.Source at 0x17b3cbfcc20>"
|
||||
]
|
||||
},
|
||||
"execution_count": 8,
|
||||
"execution_count": 5,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"dot_string = graph.dot(values)\n",
|
||||
"print(dot_string)\n",
|
||||
"\n",
|
||||
"# To render, save dot_string to a file (e.g., graph.dot) and run:\n",
|
||||
"# dot -Tpng graph.dot -o graph.png\n",
|
||||
"# Or use a Python library like graphviz\n",
|
||||
"import graphviz\n",
|
||||
"graphviz.Source(dot_string)"
|
||||
"graphviz.Source(graph.dot(values))"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue