{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Using GnuplotRB in IRuby notebooks\n", "GnuplotRB plots may be embedded into iRuby notebooks as images (terminals *svg*, *png*, *jpeg* and *pngcairo* are supported) or plain text (*dumb* terminal). By default GnuplotRB will use svg:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "Gnuplot\n", "Produced by GNUPLOT 5.0 patchlevel rc2 \n", "\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t \n", "\t \n", "\t\n", "\t\n", "\t \n", "\t \n", "\t\n", "\n", "\n", "\n", "\n", "\t\t\n", "\t\t-6\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-4\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-2\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 0\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 2\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 4\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 6\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 8\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-10\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-5\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 0\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 5\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 10\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\n", "\t\tx\n", "\t\n", "\n", "\n", "\t\n", "\t\tx*sin(x)\n", "\t\n", "\n", "\n", "\t\n", "\t\tMath function example\n", "\t\n", "\n", "\tx*sin(x)\n", "\n", "\n", "\n", "\t\n", "\t\tx*sin(x)\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "# -10..10, :ylabel => \"x\", :title => \"Math function example\", :xlabel => \"x*sin(x)\"], @datasets=Hamster::Vector[# {:rgb=>\"blue\", :lw=>3}, :with => \"lines\"]>], @cmd=\"plot \">" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "require 'gnuplotrb'\n", "include GnuplotRB\n", "\n", "simple_plot = Plot.new(\n", " ['x*sin(x)', with: 'lines', lt: { rgb: 'blue', lw: 3 }],\n", " xrange: -10..10,\n", " title: 'Math function example', \n", " ylabel: 'x',\n", " xlabel: 'x*sin(x)'\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can make GnuplotRB plots to be rendered into other formats using *term* option:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "# -10..10, :ylabel => \"x\", :title => \"Math function example\", :xlabel => \"x*sin(x)\", :term => [\"png\"]], @datasets=Hamster::Vector[# {:rgb=>\"blue\", :lw=>3}, :with => \"lines\"]>], @cmd=\"plot \">" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simple_plot.term('png')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2ODApLCBxdWFsaXR5ID0gOTAK/9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgB4AKAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A/VOiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK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VI8PJFm/idt+6Te0wXKiNaAPV6K810P47aXfWHjCbWtD1rwfd+FLFdU1LT9bjg85bN0leO4RoJpY2Rhbzj7+QY2DBSKg+HfjnWbHQfCsvj2SWDWfF7vcwRJDGtppkjoJIdO3jDFxGG+d873jl+Zd0cdAHqNFeN6r8WryDxh4c13TbiW78A6hq58K3YmhjCC6YlYL22kHztGbgG1YPwxKMgABaT2SgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDzD45+CtW+KVlonguG0ePwzqV4lzr2rxzrHJa29u6TJFDhhIJpZVjUSIP3arIwZXEebfwx8BNo/hDT/AA94k0awvJfDcb6NpuovbwsLqw8tFR1UD92WiCRyphQXjfA2FK9EooA+bPi78NdYm8UXsngf4c6lpHiNLOO20Pxj4f8AEEVjp8LCIJGdQtBPEZUhIGI/JuAyRqPlztXT8TfCzxPqI+I4g0vzBq/xM8L+ILL/AEiIedYWn9gfaZuW+XZ9gu/lbDN5Xyg7l3fQFFAHh3xL+E2ueN9d+NkMEAhsfFnw7sfDlheNKmGu1bWRIpXO5dovbc7iADv4JKtitr73f7TXwv8AA2m6dZSWvhnXniuvEl8JliuNMFq6u9mi7hIlybmMRF1GYhFKwZXEefeqp6fo2n6TJeSWNjbWUl7Obm6a3hWMzzFQpkcgfMxVVG45OFA7UAfPWu6VqmleFfhp8JbyGOTVLfxNposbi3Eai40nSp4L37YUT/VYWGG3cEKPOkwo2OmfpGqa6Np6avJqq2NsuqSQLbPfCFRO0KsWWMvjcVDMxC5wCxPerlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/2Q==", "text/plain": [ "# -10..10, :ylabel => \"x\", :title => \"Math function example\", :xlabel => \"x*sin(x)\", :term => [\"jpeg\"]], @datasets=Hamster::Vector[# {:rgb=>\"blue\", :lw=>3}, :with => \"lines\"]>], @cmd=\"plot \">" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simple_plot.term('jpeg')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "\f", "\n", " Math function example\n", "\n", " 8 +-+---------------+-----------------+----------------+---------------+-+\n", " + + + + + + + + +\n", " 6 +-+ + + x*sin(x)++-----+-+\n", " | + + + + |\n", " | | + + | |\n", " 4 +-+ + | | + +-+\n", " | | + + | |\n", " 2 +-++ + + ++-+\n", " | | | ++++++ ++++++ | | |\n", " | + + + +++ +++ + + + |\n", " 0 +-+ | + ++++ + | +-+\n", " || + + + + ||\n", " -2 +-+ + + + + +-+\n", " || + + + + ||\n", " |+ + + + + +|\n", " -4 +-+ ++ ++ ++ ++ +-+\n", " + + + + +\n", " -6 +-+---------------+-----------------+----------------+---------------+-+\n", " -10 -5 0 5 10\n", " x*sin(x)\n", "\n" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simple_plot.term('dumb')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Using terminal options\n", "To specify some image params like canvas size or font you can pass options to term:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "\f", "\n", " Math function example\n", "\n", " 8 +-+----------+------------+------------+----------+-+\n", " + + + + + + + + +\n", " | | + x*sin(x) +-----+ |\n", " 6 +-+ + | | + +-+\n", " | | + + | |\n", " | + | | + |\n", " | | + + | |\n", " 4 +-++ | | ++-+\n", " | | + + | |\n", " | | | | | |\n", " 2 +-+ + +++ +++ + +-+\n", " | | | + ++ ++ + | | |\n", " | | + + ++ ++ + + | |\n", " 0 +-+ | + +++ + | +-+\n", " | | + + + + | |\n", " || | + + | ||\n", " -2 +-+ + | | + +-+\n", " || | + + | ||\n", " || + + + + ||\n", " |+ + + + + +|\n", " -4 +-+ + + + + +-+\n", " | ++ ++ |\n", " + + + + +\n", " -6 +-+----------+------------+------------+----------+-+\n", " -10 -5 0 5 10\n", " x*sin(x)\n", "\n" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simple_plot.term('dumb', size: [60,30])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "Gnuplot\n", "Produced by GNUPLOT 5.0 patchlevel rc2 \n", "\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t \n", "\t \n", "\t\n", "\t\n", "\t \n", "\t \n", "\t\n", "\n", "\n", "\n", "\n", "\t\t\n", "\t\t-6\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-4\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-2\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 0\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 2\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 4\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 6\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 8\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-10\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-5\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 0\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 5\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 10\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\n", "\t\tx\n", "\t\n", "\n", "\n", "\t\n", "\t\tx*sin(x)\n", "\t\n", "\n", "\n", "\t\n", "\t\tMath function example\n", "\t\n", "\n", "\tx*sin(x)\n", "\n", "\n", "\n", "\t\n", "\t\tx*sin(x)\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "# -10..10, :ylabel => \"x\", :title => \"Math function example\", :xlabel => \"x*sin(x)\", :term => [\"svg\", {:fsize=>\"18\"}]], @datasets=Hamster::Vector[# {:rgb=>\"blue\", :lw=>3}, :with => \"lines\"]>], @cmd=\"plot \">" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simple_plot.term('svg', fsize: '18')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Of course plot may be created with *term* option already set:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "# true, :hidden3d => true, :urange => 0..3.141592653589793, :title => \"sphere\", :vrange => 0..6.283185307179586, :term => [\"png\", {:size=>[600, 800]}], :isosamples => 30], @datasets=Hamster::Vector[# \"Sphere\"]>], @cmd=\"splot \">" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Splot.new(\n", " ['sin(u)*cos(v), sin(u)*sin(v), cos(u)', title: 'Sphere'],\n", " parametric: true,\n", " urange: 0..Math::PI,\n", " vrange: 0..2*Math::PI,\n", " title: 'sphere',\n", " hidden3d: true,\n", " isosamples: 30,\n", " term: ['png', size: [600, 800]]\n", ")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Plotting to image file\n", "\n", "GnuplotRB allows to plot into png/svg/jpeg/gif files with handy ```#to_|format name|``` methods. They take 2 arguments: path to image file (optional, if none given, file contents will be returned from method) and options. This kind of methods are available for all Plottable objects except Animation (Dataset, Plot, Splot, Multiplot). You may see all possible formats in [gnuplot doc](http://www.gnuplot.info/docs_5.0/gnuplot.pdf) p. 190. You can also check which terminals are handled by your gnuplot installation:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[\"cairolatex\", \"canvas\", \"cgm\", \"context\", \"corel\", \"dumb\", \"dxf\", \"eepic\", \"emf\", \"emtex\", \"epscairo\", \"epslatex\", \"fig\", \"gif\", \"hpgl\", \"jpeg\", \"latex\", \"lua\", \"mf\", \"mp\", \"pcl5\", \"pdfcairo\", \"png\", \"pngcairo\", \"postscript\", \"pslatex\", \"pstex\", \"pstricks\", \"qms\", \"qt\", \"svg\", \"tek40xx\", \"tek410x\", \"texdraw\", \"tgif\", \"tikz\", \"tkcanvas\", \"tpic\", \"unknown\", \"vttek\", \"x11\", \"xlib\", \"xterm\"]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Settings.available_terminals" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Examples" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "#" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Plot.new('sin(x)').to_png('plot.png')\n", "File.open('plot.png')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "Gnuplot\n", "Produced by GNUPLOT 5.0 patchlevel rc2 \n", "\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t \n", "\t \n", "\t\n", "\t\n", "\t \n", "\t \n", "\t\n", "\n", "\n", "\n", "\n", "\t\t\n", "\t\t-1\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-0.8\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-0.6\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-0.4\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-0.2\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 0\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 0.2\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 0.4\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 0.6\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 0.8\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 1\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-10\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t-5\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 0\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 5\n", "\t\n", "\n", "\n", "\t\t\n", "\t\t 10\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\n", "\tsin(x)\n", "\n", "\t\n", "\t\tsin(x)\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "\"\\n\\n\\n\\nGnuplot\\nProduced by GNUPLOT 5.0 patchlevel rc2 \\n\\n\\n\\n\\n\\n\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t \\n\\t \\n\\t\\n\\t\\n\\t \\n\\t \\n\\t\\n\\n\\n\\n\\n\\t\\t\\n\\t\\t-1\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t-0.8\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t-0.6\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t-0.4\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t-0.2\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t 0\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t 0.2\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t 0.4\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t 0.6\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t 0.8\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t 1\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t-10\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t-5\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t 0\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t 5\\n\\t\\n\\n\\n\\t\\t\\n\\t\\t 10\\n\\t\\n\\n\\n\\n\\n\\t\\n\\n\\n\\tsin(x)\\n\\n\\t\\n\\t\\tsin(x)\\n\\t\\n\\n\\n\\t\\n\\t\\n\\n\\n\\n\\n\\n\\n\\n\\t\\n\\n\\n\\n\\n\\n\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "svg_contents = Plot.new('sin(x)').to_svg(size: [600, 600])\n", "IRuby.display(svg_contents, mime: 'image/svg+xml')" ] } ], "metadata": { "kernelspec": { "display_name": "Ruby 2.1.2", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": "rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.1.2" } }, "nbformat": 4, "nbformat_minor": 0 }