{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Sage test display notebook\n", "\n", "This is to test various displays in the **Jupyter Notebook** (classic) or **JupyterLab**: LaTeX, interactive widgets, 2d and 3d plots, animated 3d plots, Matplotlib interface, etc., especially in the scope of `%display latex`. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'SageMath version 10.2.rc1, Release Date: 2023-11-10'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "version()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\sin\\left(x^{2}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\sin\\left(x^{2}\\right)$" ], "text/plain": [ "sin(x^2)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sin(x^2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Check that long outputs are wrapped (cf. this [comment in #36129](https://github.com/sagemath/sage/pull/36129#issuecomment-1711714578)):" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle x^{20} + 20 \\, x^{19} + 190 \\, x^{18} + 1140 \\, x^{17} + 4845 \\, x^{16} + 15504 \\, x^{15} + 38760 \\, x^{14} + 77520 \\, x^{13} + 125970 \\, x^{12} + 167960 \\, x^{11} + 184756 \\, x^{10} + 167960 \\, x^{9} + 125970 \\, x^{8} + 77520 \\, x^{7} + 38760 \\, x^{6} + 15504 \\, x^{5} + 4845 \\, x^{4} + 1140 \\, x^{3} + 190 \\, x^{2} + 20 \\, x + 1\\)" ], "text/latex": [ "$\\displaystyle x^{20} + 20 \\, x^{19} + 190 \\, x^{18} + 1140 \\, x^{17} + 4845 \\, x^{16} + 15504 \\, x^{15} + 38760 \\, x^{14} + 77520 \\, x^{13} + 125970 \\, x^{12} + 167960 \\, x^{11} + 184756 \\, x^{10} + 167960 \\, x^{9} + 125970 \\, x^{8} + 77520 \\, x^{7} + 38760 \\, x^{6} + 15504 \\, x^{5} + 4845 \\, x^{4} + 1140 \\, x^{3} + 190 \\, x^{2} + 20 \\, x + 1$" ], "text/plain": [ "x^20 + 20*x^19 + 190*x^18 + 1140*x^17 + 4845*x^16 + 15504*x^15 + 38760*x^14 + 77520*x^13 + 125970*x^12 + 167960*x^11 + 184756*x^10 + 167960*x^9 + 125970*x^8 + 77520*x^7 + 38760*x^6 + 15504*x^5 + 4845*x^4 + 1140*x^3 + 190*x^2 + 20*x + 1" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "((1+x)^20).expand()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Miscellaneous outputs in the scope of `%display latex`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check that [#32859](https://github.com/sagemath/sage/issues/32859) is fixed (output of `type()`)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\verb|<class|\\verb| |\\verb|'sage.symbolic.expression.Expression'>|\\)" ], "text/latex": [ "$\\displaystyle \\verb||$" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check that [#32208](https://github.com/sagemath/sage/issues/32208) is fixed" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\verb|{1,|\\verb| |\\verb|2}|\\)" ], "text/latex": [ "$\\displaystyle \\verb|{1,|\\verb| |\\verb|2}|$" ], "text/plain": [ "{1, 2}" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "set([1,2])" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{l}\n", "\\verb| |\\verb|┌──────────────┐|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|1|\\verb| |\\verb|2|\\verb| |\\verb|3|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|4|\\verb| |\\verb|top|\\verb| |\\verb|5|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|6|\\verb| |\\verb|7|\\verb| |\\verb|8|\\verb| |\\verb|│|\\\\\n", "\\verb|┌────────────┼──────────────┼─────────────┬────────────┐|\\\\\n", "\\verb|│|\\verb| |\\verb|9|\\verb| |\\verb|10|\\verb| |\\verb|11|\\verb| |\\verb|│|\\verb| |\\verb|17|\\verb| |\\verb|18|\\verb| |\\verb|19|\\verb| |\\verb|│|\\verb| |\\verb|25|\\verb| |\\verb|26|\\verb| |\\verb|27|\\verb| |\\verb|│|\\verb| |\\verb|33|\\verb| |\\verb|34|\\verb| |\\verb|35|\\verb| |\\verb|│|\\\\\n", "\\verb|│|\\verb| |\\verb|12|\\verb| |\\verb|left|\\verb| |\\verb|13|\\verb| |\\verb|│|\\verb| |\\verb|20|\\verb| |\\verb|front|\\verb| |\\verb|21|\\verb| |\\verb|│|\\verb| |\\verb|28|\\verb| |\\verb|right|\\verb| |\\verb|29|\\verb| |\\verb|│|\\verb| |\\verb|36|\\verb| |\\verb|rear|\\verb| |\\verb|37|\\verb| |\\verb|│|\\\\\n", "\\verb|│|\\verb| |\\verb|14|\\verb| |\\verb|15|\\verb| |\\verb|16|\\verb| |\\verb|│|\\verb| |\\verb|22|\\verb| |\\verb|23|\\verb| |\\verb|24|\\verb| |\\verb|│|\\verb| |\\verb|30|\\verb| |\\verb|31|\\verb| |\\verb|32|\\verb| |\\verb|│|\\verb| |\\verb|38|\\verb| |\\verb|39|\\verb| |\\verb|40|\\verb| |\\verb|│|\\\\\n", "\\verb|└────────────┼──────────────┼─────────────┴────────────┘|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|41|\\verb| |\\verb|42|\\verb| |\\verb|43|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|44|\\verb| |\\verb|bottom|\\verb| |\\verb|45|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|46|\\verb| |\\verb|47|\\verb| |\\verb|48|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|└──────────────┘|\\\\\n", "\n", "\\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{l}\n", "\\verb| |\\verb|┌──────────────┐|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|1|\\verb| |\\verb|2|\\verb| |\\verb|3|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|4|\\verb| |\\verb|top|\\verb| |\\verb|5|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|6|\\verb| |\\verb|7|\\verb| |\\verb|8|\\verb| |\\verb|│|\\\\\n", "\\verb|┌────────────┼──────────────┼─────────────┬────────────┐|\\\\\n", "\\verb|│|\\verb| |\\verb|9|\\verb| |\\verb|10|\\verb| |\\verb|11|\\verb| |\\verb|│|\\verb| |\\verb|17|\\verb| |\\verb|18|\\verb| |\\verb|19|\\verb| |\\verb|│|\\verb| |\\verb|25|\\verb| |\\verb|26|\\verb| |\\verb|27|\\verb| |\\verb|│|\\verb| |\\verb|33|\\verb| |\\verb|34|\\verb| |\\verb|35|\\verb| |\\verb|│|\\\\\n", "\\verb|│|\\verb| |\\verb|12|\\verb| |\\verb|left|\\verb| |\\verb|13|\\verb| |\\verb|│|\\verb| |\\verb|20|\\verb| |\\verb|front|\\verb| |\\verb|21|\\verb| |\\verb|│|\\verb| |\\verb|28|\\verb| |\\verb|right|\\verb| |\\verb|29|\\verb| |\\verb|│|\\verb| |\\verb|36|\\verb| |\\verb|rear|\\verb| |\\verb|37|\\verb| |\\verb|│|\\\\\n", "\\verb|│|\\verb| |\\verb|14|\\verb| |\\verb|15|\\verb| |\\verb|16|\\verb| |\\verb|│|\\verb| |\\verb|22|\\verb| |\\verb|23|\\verb| |\\verb|24|\\verb| |\\verb|│|\\verb| |\\verb|30|\\verb| |\\verb|31|\\verb| |\\verb|32|\\verb| |\\verb|│|\\verb| |\\verb|38|\\verb| |\\verb|39|\\verb| |\\verb|40|\\verb| |\\verb|│|\\\\\n", "\\verb|└────────────┼──────────────┼─────────────┴────────────┘|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|41|\\verb| |\\verb|42|\\verb| |\\verb|43|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|44|\\verb| |\\verb|bottom|\\verb| |\\verb|45|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|46|\\verb| |\\verb|47|\\verb| |\\verb|48|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|└──────────────┘|\\\\\n", "\n", "\\end{array}$" ], "text/plain": [ " ┌──────────────┐\n", " │ 1 2 3 │\n", " │ 4 top 5 │\n", " │ 6 7 8 │\n", "┌────────────┼──────────────┼─────────────┬────────────┐\n", "│ 9 10 11 │ 17 18 19 │ 25 26 27 │ 33 34 35 │\n", "│ 12 left 13 │ 20 front 21 │ 28 right 29 │ 36 rear 37 │\n", "│ 14 15 16 │ 22 23 24 │ 30 31 32 │ 38 39 40 │\n", "└────────────┼──────────────┼─────────────┴────────────┘\n", " │ 41 42 43 │\n", " │ 44 bottom 45 │\n", " │ 46 47 48 │\n", " └──────────────┘\n" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "RubiksCube()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check that [#33729](https://github.com/sagemath/sage/issues/33729) is fixed" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\newcommand{\\ZZ}{\\Bold{Z}}\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\ZZ/6\\ZZ\\)" ], "text/latex": [ "$\\displaystyle \\newcommand{\\ZZ}{\\Bold{Z}}\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\ZZ/6\\ZZ$" ], "text/plain": [ "Ring of integers modulo 6" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IntegerModRing(6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test of IPython native LaTeX display via `_repr_latex_`\n", "\n", "IPython implements LaTeX display of all objects that are endowed with a method `_repr_latex_`, cf. IPyhton's [rich display documentation](https://ipython.readthedocs.io/en/stable/config/integrating.html)." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "%display plain" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "sin(x^2)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = sin(x^2)\n", "s" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the plain text mode, the only way to get the LaTeX display of some object is via the function `view`, which generates a pdf file:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "view(s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us test the `_repr_latex_` mechanism of IPython via the method `_latex_` of Sage objects:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'\\\\sin\\\\left(x^{2}\\\\right)'" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s._latex_()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "class NativeDisplay(SageObject):\n", "\n", " def __init__(self, data):\n", " self._data = data\n", "\n", " def _repr_latex_(self):\n", " try:\n", " return '$' + self._data._latex_() + '$'\n", " except (AttributeError, NotImplementedError): \n", " return None # if None is returned, plain text is used\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We get a LaTeX display, even if we are the scope of `%display plain`:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "sin(x^2)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\sin\\left(x^{2}\\right)$" ], "text/plain": [ "<__main__.NativeDisplay object at 0x7f749fe78df0>" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NativeDisplay(s)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<__main__.NativeDisplay object at 0x7f749fe78370>" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NativeDisplay([s, s])" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "<__main__.NativeDisplay object at 0x7f749fe796f0>\n" ] } ], "source": [ "g = plot(s)\n", "print(NativeDisplay(g))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Test of IPython native LaTeX display in the scope of `%display latex`\n", "**(this fails in Sage 9.6.rc2 and Sage 10.2.rc1)**:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\verb|<__main__.NativeDisplay|\\verb| |\\verb|object|\\verb| |\\verb|at|\\verb| |\\verb|0x7f749fea4c10>|\\)" ], "text/latex": [ "$\\displaystyle \\verb|<__main__.NativeDisplay|\\verb| |\\verb|object|\\verb| |\\verb|at|\\verb| |\\verb|0x7f749fea4c10>|$" ], "text/plain": [ "<__main__.NativeDisplay object at 0x7f749fea4c10>" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%display latex\n", "\n", "NativeDisplay(s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test of matplotlib.pyplot\n", "\n", "### Check that [#32882](https://github.com/sagemath/sage/issues/32882) is fixed:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%display latex\n", "\n", "import matplotlib.pyplot as plt\n", "plt.plot([1, 2, 3, 4])\n", "plt.ylabel('some numbers')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%display plain\n", "\n", "import matplotlib.pyplot as plt\n", "plt.plot([1, 2, 3, 4])\n", "plt.ylabel('some numbers')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check that `%matplotlib notebook` and `%matplotlib widget` work in the scope of `%display latex` ([#33469](https://github.com/sagemath/sage/issues/33469))" ] }, { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "`%matplotlib notebook` provides an interactive Matplotlib window in the Jupyter Notebook. It is however not supported by **Jupyterlab**; one should use `%matplotlib widget` instead (which requires the Python package `ipympl`)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**This failed in Sage 9.6.beta5 but has been fixed in Sage 9.6.beta7**:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a4b36863ea834452a752306099deb358", "version_major": 2, "version_minor": 0 }, "image/png": "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", "text/html": [ "\n", "
\n", "
\n", " Figure\n", "
\n", " \n", "
\n", " " ], "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous view', 'arrow-left', 'back'), ('Forward', 'Forward to next view', 'arrow-right', 'forward'), ('Pan', 'Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect', 'arrows', 'pan'), ('Zoom', 'Zoom to rectangle\\nx/y fixes axis', 'square-o', 'zoom'), ('Download', 'Download plot', 'floppy-o', 'save_figure')]))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%display latex\n", "\n", "#%matplotlib notebook\n", "%matplotlib widget\n", "import matplotlib.pyplot as plt\n", "plt.plot([1, 2, 3, 4])\n", "plt.ylabel('some numbers')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Test of the solution proposed at [#33469](https://github.com/sagemath/sage/issues/33469):" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\verb|<class|\\verb| |\\verb|'IPython.core.display.DisplayObject'>|, \\verb|<class|\\verb| |\\verb|'ipywidgets.widgets.widget.Widget'>|\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\verb||, \\verb||\\right)$" ], "text/plain": [ "(,\n", " )" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sage.repl.display.formatter.IPYTHON_NATIVE_TYPES" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\verb|<class|\\verb| |\\verb|'IPython.core.display.DisplayObject'>|, \\verb|<class|\\verb| |\\verb|'ipywidgets.widgets.widget.Widget'>|, \\verb|<class|\\verb| |\\verb|'ipywidgets.widgets.widget.Widget'>|\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\verb||, \\verb||, \\verb||\\right)$" ], "text/plain": [ "(,\n", " ,\n", " )" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import ipywidgets\n", "sage.repl.display.formatter.IPYTHON_NATIVE_TYPES += (ipywidgets.Widget,)\n", "\n", "sage.repl.display.formatter.IPYTHON_NATIVE_TYPES" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a4b36863ea834452a752306099deb358", "version_major": 2, "version_minor": 0 }, "image/png": "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", "text/html": [ "\n", "
\n", "
\n", " Figure\n", "
\n", " \n", "
\n", " " ], "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous view', 'arrow-left', 'back'), ('Forward', 'Forward to next view', 'arrow-right', 'forward'), ('Pan', 'Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect', 'arrows', 'pan'), ('Zoom', 'Zoom to rectangle\\nx/y fixes axis', 'square-o', 'zoom'), ('Download', 'Download plot', 'floppy-o', 'save_figure')]))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib widget\n", "import matplotlib.pyplot as plt\n", "plt.plot([1, 2, 3, 4])\n", "plt.ylabel('some numbers')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test of interact in the scope of `%display latex`\n", "\n", "First we test it with `%display plain`:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3f26727b4d074869ad4ce9579b8c4d8a", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Interactive function with 1 widget\n", " n: IntSlider(value=10, description='n', max=30, min=-10)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%display plain \n", "\n", "@interact\n", "def f(n=10):\n", " print(n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and then we switch on the LaTeX display:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7ba21e383e57466fb3fe0bc35e3458da", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Interactive function with 1 widget\n", " n: IntSlider(value=10, description='n', max=30, min=-10)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "@interact\n", "def f(n=10):\n", " print(n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test of 2d interactive plots" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "459868269c9a450eb2e5f8d9ee0c6872", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Interactive function with 5 widgets\n", " a: SelectionSlider(description='a', options=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), value=1)\n", " color: SageColorPicker(value='#ff0000', description='color')\n", " axes: Checkbox(value=True, description='Show axes')\n", " x_label: TransformText(value='$x$', description='x-label', layout=Layout(max_width='81em'))\n", " y_label: TransformText(value='$y$', description='y-label', layout=Layout(max_width='81em'))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "@interact\n", "def _(a = slider([1..10]), \n", " color=Color('red'),\n", " axes=checkbox(True, 'Show axes'), \n", " x_label=input_box('$x$', 'x-label', str),\n", " y_label=input_box('$y$', 'y-label', str)):\n", " axes_labels = [x_label, y_label] if axes else None\n", " show(plot(cos(a*x), (x, 0, 2*pi), color=color, thickness=2), \n", " axes=axes, axes_labels=axes_labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test of 3d plots" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x, y = var('x y')\n", "g = (plot3d(sin(x*y), (x, -pi, pi), (y, -pi, pi), color='green')\n", " + sphere() \n", " + icosahedron(center=(0, 0, 2), color='red')\n", " + text3d('A nice plot', (-4, -4, 2), color='orange', \n", " fontsize='200%', fontfamily='serif', fontweight='bold'))\n", "g" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Animated 3D plots" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 20\n", "animate([plot3d(sin((x - k*pi/(n-1))*y), (x, -pi, pi), (y, -pi, pi))\n", " for k in range(n)]).interactive(delay=10)" ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 10.2.rc1", "language": "sage", "name": "sagemath" }, "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.12" } }, "nbformat": 4, "nbformat_minor": 4 }