Skip to content

Instantly share code, notes, and snippets.

@ryneches
Last active August 29, 2015 13:56
Show Gist options
  • Save ryneches/8911786 to your computer and use it in GitHub Desktop.
Save ryneches/8911786 to your computer and use it in GitHub Desktop.
Cura Applicaiton Note Notebook
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Run times for Cura, Slic3r, Skeinforge and Makerware\n",
"\n",
"## Run times for tool path generation for Yoda's head\n",
"\n",
"### Cura 14.01\n",
"\n",
"Run command:\n",
"\n",
" #!/bin/bash\n",
" for run in {1..10}; do\n",
" time -p python/python -m Cura.cura -i /c/Models/Cura.ini \\\n",
" -s /c/Models/Yoda-Lite.stl \\\n",
" -o /c/Models/Yoda-Lite.gcode > /dev/null;\n",
" done\n",
"\n",
"Times: 9.65 9.56 9.60 9.64 9.51 9.59 9.57 9.63 9.72 9.68\n",
"\n",
"Average running time: 9.61 seconds\n",
"\n",
"### Slic3r 0.9.10b\n",
"\n",
"Run command:\n",
" \n",
" #!/bin/bash\n",
" for run in {1..10}; do\n",
" time -p slic3r.exe --load /c/Models/Slic3r.ini -o /c/Models/Yoda-Lite.gcode \\\n",
" /c/Models/Yoda-Lite.stl > /dev/null;\n",
" done\n",
"\n",
"Times: 74.32 75.38 73.88 73.11 73.17 73.01 72.90 73.24 73.00 73.67\n",
"\n",
"### Skeinforge 50\n",
"\n",
"Run command:\n",
" \n",
" #!/bin/bash\n",
" for run in {1..10}; do \n",
" time -p /c/Python27/python skeinforge.py /c/Models/Yoda-Lite.stl > /dev/null;\n",
" done\n",
"\n",
"Times: 838.71 834.55 859.63 839.39 793.91 782.47 787.52 847.69 829.26 820.32\n",
"\n",
"### Makerware 2.4.1.24\n",
"\n",
"Run command:\n",
" \n",
" #!/bin/bash\n",
" for run in {1..10}; do \n",
" time -p miracle_grue.exe\n",
" -h 0.1\n",
" -w 0.4\n",
" -p 20\n",
" -n 2\n",
" -b 6\n",
" -t 6\n",
" /c/Models/Yoda-Lite.stl > /dev/null;\n",
" done\n",
"\n",
"Times: 67.29 67.06 67.75 67.22 67.85 67.13 67.40 66.81 67.78 67.43\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"cura = [ 9.65, 9.56, 9.60, 9.64, 9.51, 9.59, 9.57, 9.63, 9.72, 9.68 ]\n",
"slicer = [ 74.32, 75.38, 73.88, 73.11, 73.17, 73.01, 72.90, 73.24, 73.00, 73.67 ]\n",
"skeinforge = [ 838.71, 834.55, 859.63, 839.39, 793.91, 782.47, 787.52, 847.69, 829.26, 820.32 ]\n",
"makerware = [ 67.29, 67.06, 67.75, 67.22, 67.85, 67.13, 67.40, 66.81, 67.78, 67.43 ]\n",
"\n",
"print \"Cura\", mean(cura), numpy.std(cura)\n",
"print \"Slic3r\", mean(slicer), numpy.std(slicer)\n",
"print \"Skeinforge\", mean(skeinforge), numpy.std(skeinforge)\n",
"print \"Makerware\", mean(makerware), numpy.std(makerware)\n",
"\n",
"boxplot([cura, slicer, makerware, skeinforge])\n",
"xticks( [1,2,3,4], [\"Cura\", \"Slic3r\", \"Makerware\", \"Skeinforge\"])\n",
"#semilogy()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Cura 9.615 0.0585234995536\n",
"Slic3r 73.568 0.742466160845\n",
"Skeinforge 823.345 25.284601737\n",
"Makerware 67.372 0.323041792962\n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 108,
"text": [
"([<matplotlib.axis.XTick at 0x67d9e90>,\n",
" <matplotlib.axis.XTick at 0x6f093d0>,\n",
" <matplotlib.axis.XTick at 0x699bb50>,\n",
" <matplotlib.axis.XTick at 0x699e1d0>],\n",
" <a list of 4 Text xticklabel objects>)"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nWMD/AzGWr3O0PlBoAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x65bf310>"
]
}
],
"prompt_number": 108
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Run times for 150mm box\n",
"\n",
"### Cura 14.01\n",
"\t\n",
"Run command:\n",
" \n",
" #!/bin/bash\n",
" for run in {1..10}; do\n",
" time -p python/python -m Cura.cura -i /c/Models/Cura.ini \\\n",
" -s /c/Models/Box_150.stl \\\n",
" -o /c/Models/Box_150.gcode > /dev/null; \n",
" done\n",
"\t\n",
"Times: 2.46 2.28 2.31 2.27 2.26 2.21 2.22 2.23 2.23 2.26\n",
"\n",
"### Slic3r 0.9.10b\n",
"\n",
"Run command:\n",
" \n",
" #!/bin/bash\n",
" for run in {1..10}; do\n",
" time -p slic3r.exe --load /c/Models/Slic3r.ini \\\n",
" -o /c/Models/Box_150.gcode \\\n",
" /c/Models/Box_150.stl > /dev/null;\n",
" done\n",
"\t\n",
"Times: 21.20 20.95 20.94 22.06 22.06 22.24 21.32 20.77 20.89 20.62\n",
"\n",
"### Skeinforge 50\n",
"\t\n",
"Run command:\n",
"\n",
" #!/bin/bash\n",
" for run in {1..10}; do\n",
" time -p /c/Python27/python skeinforge.py /c/Models/Box_150.stl > /dev/null;\n",
" done\n",
"\t\n",
"Times: 8156.47 7585.18 7718.89 7853.33 8093.76\n",
" \n",
"### Makerware 2.4.1.24\n",
"\t\n",
"Run command:\n",
"\n",
" #!/bin/bash\n",
" for run in {1..10}; do\n",
" time -p miracle_grue.exe \\\n",
" -h 0.1 \\\n",
" -w 0.4 \\\n",
" -p 20 \\\n",
" -n 2 \\\n",
" -b 6 \\\n",
" -t 6 \\\n",
" /c/Models/Box_150.stl > /dev/null;\n",
" done\n",
"\t\n",
"Times: 59.39 59.51 58.32 57.53 57.16 58.63 56.92 60.08 63.94 60.37"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"cura = [ 2.46, 2.28, 2.31, 2.27, 2.26, 2.21, 2.22, 2.23, 2.23, 2.26 ]\n",
"slicer = [ 21.20, 20.95, 20.94, 22.06, 22.06, 22.24, 21.32, 20.77, 20.89, 20.62 ]\n",
"skeinforge = [ 8156.47, 7585.18, 7718.89, 7853.33, 8093.76 ]\n",
"makerware = [ 59.39, 59.51, 58.32, 57.53, 57.16, 58.63, 56.92, 60.08, 63.94, 60.37 ]\n",
"\n",
"print \"Cura\", mean(cura), numpy.std(cura)\n",
"print \"Slic3r\", mean(slicer), numpy.std(slicer)\n",
"print \"Skeinforge\", mean(skeinforge), numpy.std(skeinforge)\n",
"print \"Makerware\", mean(makerware), numpy.std(makerware)\n",
"\n",
"boxplot([cura, slicer, makerware, skeinforge])\n",
"xticks( [1,2,3,4], [\"Cura\", \"Slic3r\", \"Makerware\", \"Skeinforge\"])\n",
"semilogy()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Cura 2.273 0.0687095335452\n",
"Slic3r 21.305 0.56678479161\n",
"Skeinforge 7881.526 217.119279899\n",
"Makerware 59.185 1.94907798715\n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 109,
"text": [
"[]"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nLZ7wb8uAgFAdk52xvoM51loyduxYjR07tsXlXnjhBe3Zs0df/OIXg9puZ6qvLplI+/btU8+ePfWD\nH/zAP2/06NG6du2aHn30Uf+8vLw8bdy4UZIUHR2tp59+WmPHjtXrr7+u9evXa/z48UpKStLcuXN1\n6dKlu/4+OtKZM2fUv39/9ejRQ5LUr18/3X///QHLREdHq6amRpL06quvKjExUUlJSZo/f74kqU+f\nPv5la2tr1b9/f0kNF2+kpqZqzpw5io+PvxtvJ+Rmzpzp/zArLCxUdna2/6R/WVmZUlJSNGbMGE2c\nOFEVFRVN1i8uLlZKSoqqq6u1a9cupaSkaOzYscrIyNCFCxckBR6TmzdvVnJysiTpX//6l7p166b/\n/e9/kqSYmBhdvnxZO3bs0IMPPqgxY8Zo6tSp+vDDDyVJbrdb3/3udzVp0iQtWLBAH3/8sebOnavx\n48dr/Pjx+sc//tHu9XU7LR1rly5d0owZM/Tyyy/r4sWLys3N1YQJEzRmzBj/LUW8Xq//f9vtdis3\nN1dTpkzR0KFDtXbtWknSokWL9M477+irX/2qfv3rX6umpkZf+9rXlJiYqIceekjHjx/3r39zfU2d\nOlWjRo3S97///YDjftOmTZowYYIeeOABLVq0qH0vpOzorwYdYc2aNebHP/5xk/n79u0L+Cqcl5dn\nNm7caIwxJjo62vzyl7/0/67x17tnn33WrF27th1L3PnU1taapKQkM2zYMLN48WKzf/9+Y4wxLpfL\n380SHR1tqqurzb///W8zbNgwf53V1NT4t/Ob3/zGDB061AwePNi88847xpiGv0OvXr2Mz+e7y+8q\nNHr37m2OHTtm5s6day5fvmySkpKM1+v1H1vnz583165dM8YYs3v3bvPNb37TGPNZN8u2bdtMamqq\nOXfunPnoo4/M5MmTzcWLF40xxqxatcqsWLHCGNP0mIyPjzfnz583a9euNePHjzebN282Pp/PPPTQ\nQ8YYY86ePetf9qWXXjJLly41xhiTn59vkpOTzeXLl40xxmRnZ5u///3vxhhj3nvvPRMXF9dudRWM\nWx1r0dHRxufzma985Svm97//vTHGmOXLl5tNmzYZYxre77Bhw8yFCxcC/rfz8/PNxIkTTV1dnfn4\n44/Nfffd5/973DhmjWn4/79R13v37jVJSUn+9RvX15IlS8yqVauMMcZ4PB7jcDhMdXW1KS8vN48+\n+qh/248//rh59dVX262eOsf3g7ustV9nMzMz/T8fP35czz77rD755BPV1tZq+vTpoSpeWOjVq5cO\nHz6sAwcOaN++fcrMzNSqVauaLGeM0d69e5WRkaF+/fpJUsDVxIsXL9bixYtVWFio3Nxc7du3T5I0\nfvx4DRky5O68mXaQkJAgn8+nwsJCzZo1K+B3586d0/z583Xy5Ek5HA5du3bN/7u9e/fq0KFD2r17\nt3r37q2//OUvKi8vV0pKiiSprq7O/7MUeEympKTo4MGDOnDggJYvXy6PxyNjjFJTUyU1DB/OyMjQ\nmTNnVFdXpy9/+cuSGv4f0tPTdc8990iSSkpKdOLECf92P/30U128eFH33ntviGspOLc71ubMmaOn\nnnpK2dnZkqRdu3Zpx44d+tWvfiVJunLlSsAQaqnh/c6aNUs9evTQfffdp4EDB+qDDz5o0rVy8OBB\nbdu2TZI0ZcoUVVdX69NPP21SXwcPHtSf//xnSdL06dP9x/eePXt0+PBh/zemS5cuafDgwe1RRZLa\n4Ra44SA+Pl5bt25tMj8iIiLga9DNXSe9evXy//zYY4/pjTfeUEJCgjZu3Bj293VojW7duiktLU1p\naWn+emiOw+Fo8bqCzMxMf/+5FFjX4So9PV3Lli3T/v379dFHH/nnP/fcc3rkkUe0fft2vffee3K5\nXJIa6mno0KF699139fbbb/v7eKdOnao//OEPze6jcT1NnjxZf/vb33Tq1CnNmTNHq1atksPh0OzZ\nsyVJTzzxhJYtW6bZs2dr//79crvd/nUbB7UxRqWlperZs2eoqqLNbj7WXnnlFUnSpEmTtHPnTn+Y\nSw13br353Nf7778fMN34vXXv3j3gA7WxWx23N3+w3bzcjekFCxbo5z//+W3eWeh0yT7zhx9+WFeu\nXNFLL73kn3fs2DEZY1ReXq66ujqdO3dOe/fuveU2amtrNXjwYF29elWbNm26G8XuVCoqKlRZWemf\nPnLkSLMtaYfDoYcfflivv/66vx/x7NmzkqSTJ0/6lysuLtbo0aPbudR3V25urtxud5N+//Pnz/tb\ngRs2bPDPN8ZoyJAh2rp1q+bPn6/y8nJNmDBBBw8e1H//+19JDc8LaFzvjaWmpmrTpk2KjY2Vw+FQ\nv3799Ne//lWTJk1qst8bYXhjv41NmzZNzz//vH/66NGjrayB0GjuWIuOjpbUcMVm3759tWTJEkkN\nLePGZT9y5EiT7bXUsLghNTVVmzdvltTQ5z5gwAD16dOnyfoTJ07Ua6+9Jqnhm8HZs2flcDj0yCOP\naOvWrf4P8pqaGp06dSrId33numSYS9L27dtVUlKimJgYjRo1Ss8884zuv/9+ZWRkaNSoUcrMzNSY\nMWNuuf7PfvYzTZgwQZMmTVJcXFzY3JogVGpra/XYY48pPj5eiYmJeuuttwJaeo2NHDlSzzzzjNLS\n0pSUlKSlS5dKktatW6dRo0bpgQce0Nq1a/3B5nA4wro+b5Q9MjJSeXl5/nk35v/kJz/R8uXLNWbM\nGNXX1/vn31hm+PDh2rx5s+bNm6fa2lq98sorys7OVmJiolJSUvT22283u98bH6aTJ0+W9NkN8r7w\nhS9IajhxN2/ePCUnJ2vAgAFN9nvD888/r0OHDikxMVHx8fF68cUXQ11Fd+R2x5rD4dCaNWt06dIl\nPf3003ruued09epVjR49WqNGjVJ+fr5/O7d6v401nu92u3X48GElJibqpz/9qf+b583r5+fna9eu\nXUpISNDWrVs1ePBg9enTR3FxcVq5cqWmTZumxMRETZs2TWfOnAl19XxWdhPsxxQAoIm6ujp1795d\n3bt315tvvqklS5bon//8510vR5fsMweAUDl16pQyMjJ0/fp19ezZM6D79m6iZQ4AFuiyfeYAYBPC\nHAAsQJgDgAUIcwCwAGEOABYgzAHAAv8HNtyXNgKzwKEAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x72e2ad0>"
]
}
],
"prompt_number": 109
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Run times for Ultimaker robot\n",
"\n",
"### Cura 14.01\n",
"\t\n",
"Run command:\n",
"\n",
" #!/bin/bash\n",
" for run in {1..10}; do \n",
" time -p python/python -m Cura.cura \\\n",
" -i /c/Models/Cura.ini \\\n",
" -s /c/Models/UltimakerRobot_support.stl \\\n",
" -o /c/Models/UltimakerRobot_support.gcode > /dev/null; \n",
" done\n",
"\n",
"Times: 5.34 5.39 5.38 5.34 5.35 5.31 5.29 5.28 5.26 5.31\n",
"\n",
"### Slic3r 0.9.10b\n",
"\n",
"Run command:\n",
"\n",
" #!/bin/bash\n",
" for run in {1..10}; do\n",
" time -p slic3r.exe --load /c/Models/Slic3r.ini \\\n",
" -o /c/Models/UltimakerRobot_support.gcode \\\n",
" /c/Models/UltimakerRobot_support.stl > /dev/null;\n",
" done\n",
"\n",
"Times: 64.00 66.97 64.25 63.30 64.09 72.46 69.24 63.98 67.13 68.31\n",
"\n",
"### Skeinforge 50\n",
"\n",
"Run command:\n",
"\n",
" #!/bin/bash\n",
" for run in {1..10}; do \n",
" time -p /c/Python27/python skeinforge.py \\\n",
" /c/Models/UltimakerRobot_support.stl > /dev/null;\n",
" done\n",
"\n",
"Times: 270.90 271.11 249.83 250.58 250.38 249.52 249.60 249.38 250.05 249.59\n",
" \n",
"### Makerware 2.4.1.24\n",
"\t\n",
"Run command:\n",
"\n",
" #!/bin/bash \n",
" for run in {1..10}; do\n",
" time -p miracle_grue.exe -h 0.1 \\\n",
" -w 0.4 \\\n",
" -p 20 \\\n",
" -n 2 \\\n",
" -b 6 \\\n",
" -t 6 \\\n",
" /c/Models/UltimakerRobot_support.stl > /dev/null;\n",
" done\n",
"\n",
"Times: 10.44 10.39 10.30 10.29 10.23 10.26 10.30 10.37 10.27 10.22"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"cura = [ 5.34, 5.39, 5.38, 5.34, 5.35, 5.31, 5.29, 5.28, 5.26, 5.31 ]\n",
"slicer = [ 64.00, 66.97, 64.25, 63.30, 64.09, 72.46, 69.24, 63.98, 67.13, 68.31 ]\n",
"skeinforge = [270.90, 271.11, 249.83, 250.58, 250.38, 249.52, 249.60, 249.38, 250.05, 249.59]\n",
"makerware = [ 10.44, 10.39, 10.30, 10.29, 10.23, 10.26, 10.30, 10.37, 10.27, 10.22]\n",
"\n",
"print \"Cura\", mean(cura), numpy.std(cura)\n",
"print \"Slic3r\", mean(slicer), numpy.std(slicer)\n",
"print \"Skeinforge\", mean(skeinforge), numpy.std(skeinforge)\n",
"print \"Makerware\", mean(makerware), numpy.std(makerware)\n",
"\n",
"boxplot([cura, slicer, makerware, skeinforge])\n",
"xticks( [1,2,3,4], [\"Cura\", \"Slic3r\", \"Makerware\", \"Skeinforge\"])\n",
"#semilogy()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Cura 5.325 0.0403112887415\n",
"Slic3r 66.373 2.83677299057\n",
"Skeinforge 254.094 8.46338490204\n",
"Makerware 10.307 0.0678306715284\n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 110,
"text": [
"([<matplotlib.axis.XTick at 0x747da90>,\n",
" <matplotlib.axis.XTick at 0x72f7150>,\n",
" <matplotlib.axis.XTick at 0x77270d0>,\n",
" <matplotlib.axis.XTick at 0x7727710>],\n",
" <a list of 4 Text xticklabel objects>)"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nihIbN6tY7AAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x76ea5d0>"
]
}
],
"prompt_number": 110
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Run time as a function of volume\n",
"\n",
"\n",
" #!/bin/bash\n",
" \n",
" for i in `seq 10 210`; do\n",
" echo \":: $i\"\n",
" echo \"n = $i; cube([$i,$i,$i]);\" > cube_$i.scad\n",
" openscad -o cube_$i.stl cube_$i.scad &> /dev/null\n",
" time -p python -m Cura.cura \\\n",
" -i Cura.ini \\\n",
" -s /home/russell/Projects/CuraPaper/scaled_cube/cube_$i.stl \\\n",
" -o /home/russell/Projects/CuraPaper/scaled_cube/cube_$i.gcode > /dev/null\n",
" done\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"T,N = [],[]\n",
"for n,line in enumerate(open(\"Projects/CuraPaper/scaled_cube/scaled.log\").read().split('::')) :\n",
" if n == 0 : continue\n",
" ll = line.split()\n",
" N.append( int(ll[0]) )\n",
" T.append( float(ll[2]) )\n",
"subplot(2,2,1)\n",
"plot(N,T)\n",
"xlabel(\"cube length (mm)\")\n",
"ylabel(\"time (seconds)\")\n",
"yticks([0.5, 1.0, 1.5])\n",
"\n",
"subplot(2,2,3)\n",
"plot(N,T)\n",
"xlabel(\"cube length (mm)\")\n",
"ylabel(\"time (seconds)\")\n",
"semilogy()\n",
"\n",
"subplot(2,2,2)\n",
"plot(array(N)**3/float(100**3),T)\n",
"xlabel(r'$\\mathbf{dL}^3$')\n",
"ylabel('time (seconsd)')\n",
"yticks([0.5, 1.0, 1.5])\n",
"\n",
"subplot(2,2,4)\n",
"plot(array(N)**3/float(100**3),T)\n",
"xlabel(r'$\\mathbf{dL}^3$')\n",
"ylabel('time (seconsd)')\n",
"semilogy()\n",
"\n",
"tight_layout()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x7463650>"
]
}
],
"prompt_number": 111
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Run time as a function of facets\n",
"\n",
" #!/bin/bash\n",
" \n",
" for i in `seq 3 203`; do\n",
" echo \":: $i\"\n",
" echo \"\\$fn = $i; cylinder( r=50, h=100 );\" > cylinder_$i.scad\n",
" openscad -o cylinder_$i.stl cylinder_$i.scad &> /dev/null\n",
" time -p python -m Cura.cura \\\n",
" -i Cura.ini \\\n",
" -s /home/russell/Projects/CuraPaper/scaled_cube/cylinder_$i.stl \\\n",
" -o /home/russell/Projects/CuraPaper/scaled_cube/cylinder_$i.gcode > /dev/null\n",
" done"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"T,N = [],[]\n",
"for n,line in enumerate(open(\"Projects/CuraPaper/scaled_cube/nfaces.log\").read().split('::')) :\n",
" if n == 0 : continue\n",
" ll = line.split()\n",
" N.append( int(ll[0]) )\n",
" T.append( float(ll[2]) )\n",
"subplot(1,2,1)\n",
"plot(N,T)\n",
"xlabel(\"facets\")\n",
"xlim([0,210])\n",
"xticks([50,100,150,200])\n",
"ylabel(\"time (seconds)\")\n",
"yticks([1,2,3])\n",
"\n",
"subplot(1,2,2)\n",
"plot(N,T)\n",
"xlabel(\"facets\")\n",
"xlim([0,210])\n",
"xticks([50,100,150,200])\n",
"ylabel(\"time (seconds)\")\n",
"semilogy()\n",
"\n",
"tight_layout()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x66038d0>"
]
}
],
"prompt_number": 95
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment