From 3c30a8d4958a16ad87743c1939590d33cd5a94bc Mon Sep 17 00:00:00 2001 From: Tingkai Liu Date: Tue, 14 Sep 2021 15:53:33 -0400 Subject: [PATCH] support svg figures in matlab_kernel --- matlab_kernel.ipynb | 599 +++++++--------------------------------- matlab_kernel/kernel.py | 49 +++- 2 files changed, 141 insertions(+), 507 deletions(-) diff --git a/matlab_kernel.ipynb b/matlab_kernel.ipynb index be7e02a..37cd6d0 100644 --- a/matlab_kernel.ipynb +++ b/matlab_kernel.ipynb @@ -14,360 +14,23 @@ "cell_type": "code", "execution_count": 1, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [ { "data": { - "image/png": [ - "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\n", - "AAAAAElFTkSuQmCC\n" + "image/svg+xml": [ + "020406080100-1-0.8-0.6-0.4-0.200.20.40.60.81" ], "text/plain": [ - "" + "" ] }, "metadata": {}, "output_type": "display_data" - }, - { - "data": {}, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ @@ -380,133 +43,34 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 11, "metadata": { - "collapsed": true + "tags": [] }, "outputs": [], "source": [ - "%plot -s 200,150" + "%plot -s 200,150 -f png" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 12, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [ { "data": { - "image/png": [ - "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\n" - ], + "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" - }, - { - "data": {}, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ @@ -515,62 +79,99 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 13, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "%plot -s 200,150 -f svg" + ] + }, + { + "cell_type": "code", + "execution_count": 14, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [ { "data": { + "image/svg+xml": [ + "050100203040" + ], "text/plain": [ - "a =\n", - "\n", - " 1 2 3" + "" ] }, - "execution_count": 4, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "a = [1,2,3]" + "b = 10*cos(t)+30; plot(b); grid on" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 15, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [ { - "data": {}, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "a =\n", + "\n", + " 1 2 3\n", + "\n" + ] } ], + "source": [ + "a = [1,2,3]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], "source": [ "b = a + 3;" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 17, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [ { - "data": { - "text/plain": [ - "4 5 6" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + " 4 5 6\n", + "\n" + ] } ], "source": [ @@ -579,9 +180,12 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 18, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [ { @@ -589,10 +193,10 @@ "output_type": "stream", "text": [ "Available line magics:\n", - "%cd %connect_info %download %edit %get %help %html %install %install_magic %javascript %kernel %kx %latex %load %ls %lsmagic %magic %parallel %plot %pmap %px %python %reload_magics %restart %run %set %shell %spell\n", + "%activity %cd %connect_info %conversation %dot %download %edit %get %help %html %include %install %install_magic %javascript %jigsaw %kernel %kx %latex %load %ls %lsmagic %macro %magic %matplotlib %parallel %plot %pmap %px %python %reload_magics %restart %run %scheme %set %shell\n", "\n", "Available cell magics:\n", - "%%debug %%file %%help %%html %%javascript %%kx %%latex %%processing %%px %%python %%shell %%show %%spell %%time\n" + "%%activity %%brain %%conversation %%debug %%dot %%file %%help %%html %%javascript %%kx %%latex %%macro %%pipe %%processing %%px %%python %%scheme %%shell %%show %%time %%tutor\n" ] } ], @@ -602,9 +206,12 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 19, "metadata": { - "collapsed": false + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [ { @@ -619,24 +226,6 @@ "%%python\n", "print('Hello, world!')" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -646,17 +235,19 @@ "name": "matlab" }, "language_info": { + "codemirror_mode": "octave", "file_extension": ".m", "help_links": [ { "text": "MetaKernel Magics", - "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + "url": "https://metakernel.readthedocs.io/en/latest/source/README.html" } ], - "mimetype": "text/x-matlab", - "name": "matlab" + "mimetype": "text/x-octave", + "name": "matlab", + "version": "0.16.11" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 4 } diff --git a/matlab_kernel/kernel.py b/matlab_kernel/kernel.py index 96f81c8..546a2e0 100644 --- a/matlab_kernel/kernel.py +++ b/matlab_kernel/kernel.py @@ -18,8 +18,9 @@ class MatlabExecutionError(Exception): except ImportError: from backports.tempfile import TemporaryDirectory -from IPython.display import Image +from IPython.display import Image, SVG from metakernel import MetaKernel, ExceptionWrapper +from xml.dom import minidom try: from wurlitzer import pipes @@ -127,8 +128,15 @@ def do_execute_direct(self, code): "arrayfun(@(h) close(h), get(0, 'children'))", nargout=0) for fname in sorted(os.listdir(tmpdir)): - self.Display(Image( - filename="{}/{}".format(tmpdir, fname))) + if settings["format"] == "svg": + img = SVG(filename="{}/{}".format(tmpdir, fname)) + try: + img.data = self._fix_svg_size(img.data) + except Exception as e: + pass + else: + img = Image(filename="{}/{}".format(tmpdir, fname)) + self.Display(img) except Exception as exc: self.Error(exc) @@ -229,6 +237,11 @@ def handle_plot_settings(self): if resolution is not None: settings["resolution"] = resolution + + format = raw.get("format") + if format is not None: + settings["format"] = format + backend = settings["backend"] width, height = settings["size"] resolution = settings["resolution"] @@ -283,6 +296,36 @@ def _execute_sync(self, code): stdout = out.getvalue() self.Print(stdout) + def _fix_svg_size(self, data): + """MATLAB Generated SVG have the wrong height/width attributes. + We first set the figure viewBox to be '0 0 old_width old_height' + then we set the viewPort to the correct width/height. + + NOTE: adapted from octave_kernel + [solution](https://github.com/Calysto/octave_kernel/blob/a613c29f40e22b1751164bca30df381799539f06/octave_kernel/kernel.py#L344-L371). + """ + # Minidom does not support parseUnicode, so it must be decoded + # to accept unicode characters + parsed = minidom.parseString(data.encode('utf-8')) + (svg,) = parsed.getElementsByTagName('svg') + + height = svg.getAttribute('height') + width = svg.getAttribute('width') + + svg.setAttribute('viewBox', '0 0 %d %d '% (int(width), int(height))) + # Handle overrides in case they were not encoded. + settings = self.plot_settings + if settings['width'] != -1: + if settings['height'] == -1: + height = height * settings['width'] / width + width = settings['width'] + if settings['height'] != -1: + if settings['width'] == -1: + width = width * settings['height'] / height + height = settings['height'] + svg.setAttribute('width', '%dpx' % width) + svg.setAttribute('height', '%dpx' % height) + return svg.toxml() if __name__ == '__main__': try: