{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# This is an Jupyter notebook backed by a Ruby kernel" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I am developing [IRuby](https://github.com/SciRuby/iruby) a kernel in Ruby that adheres to the [Jupyter](http://jupyter.org/)/[IPython](http://ipython.org/) messaging protocol. It integrates nicely with different Rubygems as will be shown later." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What does this give you?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This gives us a very fancy web notebook interface for Ruby. It's a very good tool for programming presentations. It's basically an in-browser REPL loop, with some extra goodies." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Usage" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Install IRuby with:\n", "\n", "~~~\n", "gem install iruby\n", "~~~\n", "\n", "Start the IRuby notebook with:\n", "\n", "~~~\n", "iruby notebook\n", "~~~" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`$stdout` and `$stderr` are redirected to the notebook" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello, world!\n" ] } ], "source": [ "puts 'Hello, world!'" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Error!\n" ] } ], "source": [ "$stderr.puts 'Error!'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The last computed result is returned." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.4142135623730951" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Math.sqrt(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This works even for images." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "image/svg+xml\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\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", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "" ], "text/plain": [ "#" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "File.open('IRuby Examples/ruby.svg')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "#" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "File.open('IRuby Examples/ruby.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Display" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "IRuby provides a method to display objects `IRuby.display` and methods to create $\\LaTeX$ and HTML representations." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "Hello, world!" ], "text/plain": [ "\"Hello, world!\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "IRuby.display 'Hello, world!', mime: 'text/html'" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "\"\"" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IRuby.html ''" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\LaTeX$ is rendered using MathJax." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "\\begin{eqnarray}\n", "\\nabla \\times \\vec{\\mathbf{B}} -\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{E}}}{\\partial t} & = \\frac{4\\pi}{c}\\vec{\\mathbf{j}} \\\\\n", "\\nabla \\cdot \\vec{\\mathbf{E}} & = 4 \\pi \\rho \\\\\n", "\\nabla \\times \\vec{\\mathbf{E}}\\, +\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{B}}}{\\partial t} & = \\vec{\\mathbf{0}} \\\\\n", "\\nabla \\cdot \\vec{\\mathbf{B}} & = 0 \n", "\\end{eqnarray}\n" ], "text/plain": [ "\"\\\\begin{eqnarray}\\n\\\\nabla \\\\times \\\\vec{\\\\mathbf{B}} -\\\\, \\\\frac1c\\\\, \\\\frac{\\\\partial\\\\vec{\\\\mathbf{E}}}{\\\\partial t} & = \\\\frac{4\\\\pi}{c}\\\\vec{\\\\mathbf{j}} \\\\\\\\\\n\\\\nabla \\\\cdot \\\\vec{\\\\mathbf{E}} & = 4 \\\\pi \\\\rho \\\\\\\\\\n\\\\nabla \\\\times \\\\vec{\\\\mathbf{E}}\\\\, +\\\\, \\\\frac1c\\\\, \\\\frac{\\\\partial\\\\vec{\\\\mathbf{B}}}{\\\\partial t} & = \\\\vec{\\\\mathbf{0}} \\\\\\\\\\n\\\\nabla \\\\cdot \\\\vec{\\\\mathbf{B}} & = 0 \\n\\\\end{eqnarray}\\n\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$$F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx$$" ], "text/plain": [ "\"$$F(k) = \\\\int_{-\\\\infty}^{\\\\infty} f(x) e^{2\\\\pi i k} dx$$\"" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IRuby.display IRuby.latex <<-'TEX'\n", "\\begin{eqnarray}\n", "\\nabla \\times \\vec{\\mathbf{B}} -\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{E}}}{\\partial t} & = \\frac{4\\pi}{c}\\vec{\\mathbf{j}} \\\\\n", "\\nabla \\cdot \\vec{\\mathbf{E}} & = 4 \\pi \\rho \\\\\n", "\\nabla \\times \\vec{\\mathbf{E}}\\, +\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{B}}}{\\partial t} & = \\vec{\\mathbf{0}} \\\\\n", "\\nabla \\cdot \\vec{\\mathbf{B}} & = 0 \n", "\\end{eqnarray}\n", "TEX\n", "\n", "IRuby.math('F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Arrays and Hashes can be printed as HTML tables." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
1
2
3
" ], "text/plain": [ "\"
1
2
3
\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
abc
123
" ], "text/plain": [ "\"
abc
123
\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
11121314
212223
not an Array
31323334
" ], "text/plain": [ "\"
11121314
212223
not an Array
31323334
\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
abc
112131
122232
132333
1434
" ], "text/plain": [ "\"
abc
112131
122232
132333
1434
\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
abce
123
not an Array
2345
" ], "text/plain": [ "\"
abce
123
not an Array
2345
\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
abcd012
123
2345
xy
abc
" ], "text/plain": [ "\"
abcd012
123
2345
xy
abc
\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "IRuby.display IRuby.table([1,2,[],3])\n", "IRuby.display IRuby.table({a:1,b:2,c:3})\n", "IRuby.display IRuby.table([[11,12,13,14],[21,22,23],'not an Array',[31,32,33,34]])\n", "IRuby.display IRuby.table({a:[11,12,13,14],b:[21,22,23],c:[31,32,33,34]})\n", "IRuby.display IRuby.table([{a:1,b:2,c:3},'not an Array',{a:2,b:3,c:4,e:5}])\n", "IRuby.display IRuby.table([{a:1,b:2,c:3},{a:2,b:3,c:4,d:5},{0=>:x,1=>:y},[:a,:b,:c]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Integration with Ruby gems" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Pry" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Pry](https://github.com/pry/pry) is an enhanced Ruby REPL. It will be automatically used by IRuby if available. You can use the code browsing utilities for example." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1m\u001b[1;34mObject.methods\u001b[0m\u001b[0m: yaml_tag\n", "\u001b[1m\u001b[1;34mArray.methods\u001b[0m\u001b[0m: [] try_convert\n", "\u001b[1m\u001b[1;34mArray#methods\u001b[0m\u001b[0m: \n", " & concat hash reject slice \n", " * count include? reject! slice! \n", " + cycle index repeated_combination sort \n", " - delete insert repeated_permutation sort! \n", " << delete_at inspect replace sort_by! \n", " <=> delete_if join reverse take \n", " == drop keep_if reverse! take_while\n", " [] drop_while last reverse_each to_a \n", " []= each length rindex to_ary \n", " any? each_index map rotate to_h \n", " assoc empty? map! rotate! to_s \n", " at eql? pack sample transpose \n", " bsearch fetch permutation select uniq \n", " clear fill pop select! uniq! \n", " collect find_index pretty_print shelljoin unshift \n", " collect! first pretty_print_cycle shift values_at \n", " combination flatten product shuffle zip \n", " compact flatten! push shuffle! | \n", " compact! frozen? rassoc size \n" ] } ], "source": [ "ls Array" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Gnuplot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Gnuplot::Plot` objects are automatically displayed inline as SVG." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "Gnuplot\n", "Produced by GNUPLOT 5.0 patchlevel 3 \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-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", "\n", "\n", "\t\n", "\n", "\t\n", "\t\tx\n", "\t\n", "\n", "\n", "\t\n", "\t\tsin(1/x)\n", "\t\n", "\n", "\n", "\t\n", "\t\tExample plot\n", "\t\n", "\n", "\tsin(1/x)\n", "\n", "\n", "\n", "\t\n", "\t\tsin(1/x)\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "#]>" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "require 'gnuplot'\n", "\n", "Gnuplot::Plot.new do |plot| \n", " plot.xrange '[-0.5:0.5]'\n", " plot.title 'Example plot'\n", " plot.ylabel 'x'\n", " plot.xlabel 'sin(1/x)'\n", " plot.samples 10000\n", " plot.data << Gnuplot::DataSet.new('sin(1/x)') do |ds|\n", " ds.with = 'lines'\n", " ds.linewidth = 2\n", " end\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can also create nice 3D plots" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "Gnuplot\n", "Produced by GNUPLOT 5.0 patchlevel 3 \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\n", "\t\tSpiral\n", "\t\n", "\n", "\tgnuplot_plot_1\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\t\n", "\tgnuplot_plot_2\n", "\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t-8\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t-6\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t-4\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t-2\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t 0\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t 2\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t 4\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t 6\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t 8\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t-8\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t-6\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t-4\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t-2\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t 0\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t 2\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t 4\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t 6\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t 8\n", "\t\n", "\n", "\n", "\n", "\n", "\t\t\n", "\t\t-8\n", "\t\n", "\n", "\n", "\n", "\n", "\t\t\n", "\t\t-6\n", "\t\n", "\n", "\n", "\n", "\n", "\t\t\n", "\t\t-4\n", "\t\n", "\n", "\n", "\n", "\n", "\t\t\n", "\t\t-2\n", "\t\n", "\n", "\n", "\n", "\n", "\t\t\n", "\t\t 0\n", "\t\n", "\n", "\n", "\n", "\n", "\t\t\n", "\t\t 2\n", "\t\n", "\n", "\n", "\n", "\n", "\t\t\n", "\t\t 4\n", "\t\n", "\n", "\n", "\n", "\n", "\t\t\n", "\t\t 6\n", "\t\n", "\n", "\n", "\n", "\n", "\t\t\n", "\t\t 8\n", "\t\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "#]>" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Gnuplot::SPlot.new do |plot|\n", " plot.title 'Spiral'\n", " plot.nokey\n", " plot.parametric\n", " plot.hidden3d\n", " plot.view '80,50'\n", " plot.isosamples '60,15'\n", " plot.xrange '[-8:8]'\n", " plot.yrange '[-8:8]'\n", " plot.zrange '[-8:8]'\n", " plot.urange '[-2*pi:2*pi]'\n", " plot.vrange '[-pi:pi]'\n", " plot.data << Gnuplot::DataSet.new('cos(u)*(cos(v)+3), sin(u)*(cos(v)+3), sin(v)+u') do |ds|\n", " ds.with = 'lines'\n", " end\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Rubyvis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Rubyvis` objects are automatically displayed inline as SVG." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "" ], "text/plain": [ "#, #, #, @_type=3, @fixed=nil>, #, #, @_type=3, @fixed=nil>], @defs={}, @child_index=0, @index=nil, @index_defined=false, @scale=nil, @scene=nil, @parent=#, @root=#, @seen={:left=>#, @_type=3, @fixed=nil>, :bottom=>#, :height=>#, @_type=3, @fixed=nil>, :width=>#, :data=>#, :fill_style=>#, @_type=3, @fixed=nil>, :line_width=>#, :events=>#, :antialias=>#, :visible=>#, :right=>#, :top=>#, :cursor=>#, :title=>#, :reverse=>#, :id=>#, :stroke_style=>#}, @types={1=>[], 2=>[#, #, #, #, #, #, #, #, #, #, #, #], 3=>[#, @_type=3, @fixed=nil>, #, @_type=3, @fixed=nil>, #, @_type=3, @fixed=nil>]}, @_data=#, @_required=[#], @binds=##, @_type=3, @fixed=nil>, :bottom=>#, :height=>#, @_type=3, @fixed=nil>, :width=>#, :data=>#, :fill_style=>#, @_type=3, @fixed=nil>, :line_width=>#, :events=>#, :antialias=>#, :visible=>#, :right=>#, :top=>#, :cursor=>#, :title=>#, :reverse=>#, :id=>#, :stroke_style=>#}, data=#, required=[#], optional=[#, #, #, #, #, #, #, #, #, #, #, #, #, @_type=3, @fixed=nil>, #, @_type=3, @fixed=nil>, #, @_type=3, @fixed=nil>]>>], @root=#, @_properties=[#, #], @defs={}, @child_index=-1, @index=nil, @index_defined=false, @scale=nil, @scene=), children: 0, data: >, @stack=[], @indexes=[], @seen={:height=>#, :width=>#, :overflow=>#, :fill_style=>#, :line_width=>#, :events=>#, :antialias=>#, :visible=>#, :data=>#, @_type=3, @fixed=nil>, :left=>#, :right=>#, :top=>#, :bottom=>#, :cursor=>#, :title=>#, :reverse=>#, :id=>#, :stroke_style=>#, :transform=>#, :canvas=>#}, @types={1=>[], 2=>[#, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #], 3=>[]}, @_data=#, @_type=3, @fixed=nil>, @_required=[#], @binds=##, :width=>#, :overflow=>#, :fill_style=>#, :line_width=>#, :events=>#, :antialias=>#, :visible=>#, :data=>#, @_type=3, @fixed=nil>, :left=>#, :right=>#, :top=>#, :bottom=>#, :cursor=>#, :title=>#, :reverse=>#, :id=>#, :stroke_style=>#, :transform=>#, :canvas=>#}, data=#, @_type=3, @fixed=nil>, required=[#], optional=[#, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #]>, @_canvas={0=># attributes=[#, #, #, #, #, #, #] children=[# attributes=[#] children=[# attributes=[#, #, #, #]>, # attributes=[#, #, #, #, #]>, # attributes=[#, #, #, #, #]>, # attributes=[#, #, #, #, #]>, # attributes=[#, #, #, #, #]>, # attributes=[#, #, #, #, #]>]>]>]>}>" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "require 'rubyvis'\n", " \n", "Rubyvis::Panel.new do \n", " width 150\n", " height 150\n", " bar do\n", " data [1, 1.2, 1.7, 1.5, 0.7, 0.3]\n", " width 20\n", " height {|d| d * 80}\n", " bottom(0)\n", " left {index * 25}\n", " end\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Matrix & GSL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Matrix` and `GSL::Matrix` objects are automatically displayed as $\\LaTeX$." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$\\left(\\begin{array}{ccc}\n", " 1&2&3\\\\\n", " 1&2&3\\\\\n", "\\end{array}\\right)$$" ], "text/plain": [ "Matrix[[1, 2, 3], [1, 2, 3]]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "require 'matrix'\n", "Matrix[[1,2,3],[1,2,3]]" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Nyaplot" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "application/javascript": [ "if(window['d3'] === undefined ||\n", " window['Nyaplot'] === undefined){\n", " var path = {\"d3\":\"https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min\",\"downloadable\":\"https://cdn.rawgit.com/domitry/d3-downloadable/master/d3-downloadable\"};\n", "\n", "\n", "\n", " var shim = {\"d3\":{\"exports\":\"d3\"},\"downloadable\":{\"exports\":\"downloadable\"}};\n", "\n", " require.config({paths: path, shim:shim});\n", "\n", "\n", "require(['d3'], function(d3){window['d3']=d3;console.log('finished loading d3');require(['downloadable'], function(downloadable){window['downloadable']=downloadable;console.log('finished loading downloadable');\n", "\n", "\tvar script = d3.select(\"head\")\n", "\t .append(\"script\")\n", "\t .attr(\"src\", \"https://cdn.rawgit.com/domitry/Nyaplotjs/master/release/nyaplot.js\")\n", "\t .attr(\"async\", true);\n", "\n", "\tscript[0][0].onload = script[0][0].onreadystatechange = function(){\n", "\n", "\n", "\t var event = document.createEvent(\"HTMLEvents\");\n", "\t event.initEvent(\"load_nyaplot\",false,false);\n", "\t window.dispatchEvent(event);\n", "\t console.log('Finished loading Nyaplotjs');\n", "\n", "\t};\n", "\n", "\n", "});});\n", "}\n" ], "text/plain": [ "\"if(window['d3'] === undefined ||\\n window['Nyaplot'] === undefined){\\n var path = {\\\"d3\\\":\\\"https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min\\\",\\\"downloadable\\\":\\\"https://cdn.rawgit.com/domitry/d3-downloadable/master/d3-downloadable\\\"};\\n\\n\\n\\n var shim = {\\\"d3\\\":{\\\"exports\\\":\\\"d3\\\"},\\\"downloadable\\\":{\\\"exports\\\":\\\"downloadable\\\"}};\\n\\n require.config({paths: path, shim:shim});\\n\\n\\nrequire(['d3'], function(d3){window['d3']=d3;console.log('finished loading d3');require(['downloadable'], function(downloadable){window['downloadable']=downloadable;console.log('finished loading downloadable');\\n\\n\\tvar script = d3.select(\\\"head\\\")\\n\\t .append(\\\"script\\\")\\n\\t .attr(\\\"src\\\", \\\"https://cdn.rawgit.com/domitry/Nyaplotjs/master/release/nyaplot.js\\\")\\n\\t .attr(\\\"async\\\", true);\\n\\n\\tscript[0][0].onload = script[0][0].onreadystatechange = function(){\\n\\n\\n\\t var event = document.createEvent(\\\"HTMLEvents\\\");\\n\\t event.initEvent(\\\"load_nyaplot\\\",false,false);\\n\\t window.dispatchEvent(event);\\n\\t console.log('Finished loading Nyaplotjs');\\n\\n\\t};\\n\\n\\n});});\\n}\\n\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#[#:line, :options=>{:x=>\"data0\", :y=>\"data1\"}, :data=>\"a329c558-0f4a-43fe-a9c8-53b7023034a0\"}, @xrange=[-0.33650797881023503, 1.3755593581827972], @yrange=[-0.21722891503668823, 0.9410707889917257]>], :options=>{:zoom=>true, :width=>700, :xrange=>[-0.33650797881023503, 1.3755593581827972], :yrange=>[-0.21722891503668823, 0.9410707889917257]}}>], :data=>{\"a329c558-0f4a-43fe-a9c8-53b7023034a0\"=>#1.3755593581827972, :data1=>0.9410707889917257}, {:data0=>1.0926316961206979, :data1=>0.9203109817681301}, {:data0=>0.8708833866839569, :data1=>0.8966951136244035}, {:data0=>0.6906777425229607, :data1=>0.870363232919426}, {:data0=>0.5403023058681399, :data1=>0.8414709848078965}, {:data0=>0.4123601103868887, :data1=>0.8101885091467594}, {:data0=>0.30196479539722804, :data1=>0.7766992383060219}, {:data0=>0.20576832971122103, :data1=>0.7411986041670715}, {:data0=>0.12140510207160057, :data1=>0.7038926642774715}, {:data0=>0.047158134445135114, :data1=>0.6649966577360362}, {:data0=>-0.018249701438305645, :data1=>0.6247335019009406}, {:data0=>-0.07579087899736768, :data1=>0.5833322414426284}, {:data0=>-0.12622338594060414, :data1=>0.5410264615989971}, {:data0=>-0.17015240361237047, :data1=>0.4980526777302179}, {:data0=>-0.20807341827357134, :data1=>0.45464871341284063}, {:data0=>-0.24040290695231323, :data1=>0.4110520793566063}, {:data0=>-0.2675005078433391, :data1=>0.36749836537254077}, {:data0=>-0.28968522664340196, :data1=>0.3242196574681389}, {:data0=>-0.30724738147551905, :data1=>0.2814429918963125}, {:data0=>-0.3204574462187736, :data1=>0.23938885764158221}, {:data0=>-0.32957259744959516, :data1=>0.19826975839287045}, {:data0=>-0.3348415340803931, :data1=>0.1582888445310477}, {:data0=>-0.33650797881023503, :data1=>0.11963862505567989}, {:data0=>-0.33481316039641046, :data1=>0.08249976869447621}, {:data0=>-0.32999749886681506, :data1=>0.04704000268662195}, {:data0=>-0.3223016613784771, :data1=>0.013413116913964239}, {:data0=>-0.31196711743586014, :data1=>-0.018241919821119185}, {:data0=>-0.29923629391177703, :data1=>-0.04780172549795451}, {:data0=>-0.28435240958219415, :data1=>-0.07515914765495083}, {:data0=>-0.26755905351165576, :data1=>-0.10022377933989181}, {:data0=>-0.24909956009281825, :data1=>-0.12292234535968162}, {:data0=>-0.2292162247865964, :data1=>-0.14319895700229582}, {:data0=>-0.20814939787221448, :data1=>-0.16101523445861063}, {:data0=>-0.18613648825644571, :data1=>-0.17635029722666024}, {:data0=>-0.16341090521590257, :data1=>-0.18920062382698227}, {:data0=>-0.14020096256908965, :data1=>-0.19957978318644173}, {:data0=>-0.1167287669858806, :data1=>-0.2075180410508544}, {:data0=>-0.09320910978604059, :data1=>-0.21306184575568723}, {:data0=>-0.06984837954054984, :data1=>-0.21627319861125363}, {:data0=>-0.04684351098461771, :data1=>-0.21722891503668823}, {:data0=>-0.024380984116316277, :data1=>-0.21601978339857925}, {:data0=>-0.0026358858431683933, :data1=>-0.21274962926895766}, {:data0=>0.018228954883217817, :data1=>-0.20753429350746688}, {:data0=>0.03806374886174981, :data1=>-0.20050053318863942}, {:data0=>0.05673243709264494, :data1=>-0.19178485493262787}, {:data0=>0.0741132828848978, :data1=>-0.18153229065249676}, {:data0=>0.09009935986545672, :data1=>-0.1698951261000298}, {:data0=>0.10459893135455828, :data1=>-0.15703159287243457}, {:data0=>0.11753571776715413, :data1=>-0.14310453473259072}, {:data0=>0.12884904987113782, :data1=>-0.12828005919461727}, {:data0=>0.13849390687682997, :data1=>-0.1127261853343437}, {:data0=>0.14644083944546632, :data1=>-0.09661149870134066}, {:data0=>0.15267577878298577, :data1=>-0.08010382403685547}, {:data0=>0.15719973402441265, :data1=>-0.06336892624241378}, {:data0=>0.16002838110839424, :data1=>-0.04656924969982187}, {:data0=>0.1611915472856696, :data1=>-0.029862705618377262}, {:data0=>0.16073259629406741, :data1=>-0.013401516583468174}, {:data0=>0.15870772006085973, :data1=>0.0026688730927529386}, {:data0=>0.1551851435559679, :data1=>0.01821081325788855}, {:data0=>0.150244250112004, :data1=>0.03309538278273982}, {:data0=>0.14397463514523226, :data1=>0.04720323689596537}, {:data0=>0.13647509675154085, :data1=>0.06042536128605843}, {:data0=>0.12785257211026915, :data1=>0.07266372810861792}, {:data0=>0.1182210290036758, :data1=>0.08383184991133241}, {:data0=>0.10770032204904449, :data1=>0.0938552283883976}, {:data0=>0.09641502344264985, :data1=>0.10267169579237617}, {:data0=>0.084493238129481, :data1=>0.11023164775682615}, {:data0=>0.07206541333987868, :data1=>0.11649816720939184}, {:data0=>0.05926315237491899, :data1=>0.12144703997454372}, {:data0=>0.046218042378004844, :data1=>0.12506666356996485}, {:data0=>0.033060505602929786, :data1=>0.12735785158309013}, {:data0=>0.019918683381542335, :data1=>0.12833353686714286}, {:data0=>0.006917361610597611, :data1=>0.12801837761212895}, {:data0=>-0.005823053878420835, :data1=>0.12644827111895873}, {:data0=>-0.01818750422607518, :data1=>0.12366978082792314}, {:data0=>-0.03006717947355302, :data1=>0.1197394828203816}, {:data0=>-0.04136034890046627, :data1=>0.11472323861948523}, {:data0=>-0.05197311385188057, :data1=>0.10869540165738566}, {:data0=>-0.06182007787103266, :data1=>0.10173796524860587}, {:data0=>-0.0708249297276251, :data1=>0.09393966030864707}, {:data0=>-0.0789209357348841, :data1=>0.08539501138071212}, {:data0=>-0.0860513385744127, :data1=>0.07620335977956266}, {:data0=>-0.09216966068882364, :data1=>0.06646786282861088}, {:data0=>-0.09723991115068603, :data1=>0.05629447825369656}, {:data0=>-0.10123669576496355, :data1=>0.04579094280464132}, {:data0=>-0.10414523100341852, :data1=>0.035065754104326136}, {:data0=>-0.10596126319610455, :data1=>0.024227164576115612}, {:data0=>-0.10669089520995732, :data1=>0.01338219607603006}, {:data0=>-0.1063503236207668, :data1=>0.0026356835588697415}, {:data0=>-0.10496549012593491, :data1=>-0.007910644259135973}, {:data0=>-0.10257165164522208, :data1=>-0.018159039710725258}, {:data0=>-0.0992128742094141, :data1=>-0.02801655942380679}, {:data0=>-0.09494145633722063, :data1=>-0.03739582951550111}, {:data0=>-0.08981728814397692, :data1=>-0.04621574684599039}, {:data0=>-0.08390715290764647, :data1=>-0.05440211108893545}, {:data0=>-0.077283978234574, :data1=>-0.0618881830586998}, {:data0=>-0.07002604431639366, :data1=>-0.06861516545034606}, {:data0=>-0.062216157048059315, :data1=>-0.07453260288966702}, {:data0=>-0.05394079398338919, :data1=>-0.07959869895054264}, {:data0=>-0.04528923123771545, :data1=>-0.08378054856872968}, {:data0=>-0.036352659506778316, :data1=>-0.08705428505781135}, {:data0=>-0.027223297357137057, :data1=>-0.0894051417074938}, {:data0=>-0.017993509856977577, :data1=>-0.09082742870986009}, {:data0=>-0.00875494045880494, :data1=>-0.09132442690884195}, {:data0=>0.00040233618072979115, :data1=>-0.0909082005955187}, {:data0=>0.009390633050961633, :data1=>-0.08959933227063006}, {:data0=>0.018125434269529304, :data1=>-0.08742658295993966}, {:data0=>0.02652613657318512, :data1=>-0.0844264822922211}, {:data0=>0.034516742662093765, :data1=>-0.08064285312848135}, {:data0=>0.04202650076112915, :data1=>-0.07612627605986455}, {:data0=>0.048990485324823654, :data1=>-0.07093349956626938}, {:data0=>0.055350114414859694, :data1=>-0.06512680204436334}, {:data0=>0.06105359991447642, :data1=>-0.058773312269249416}, {:data0=>0.06605632740680879, :data1=>-0.05194429514597106}, {:data0=>0.07032116322770664, :data1=>-0.044714409833371556}, {:data0=>0.07381868690159607, :data1=>-0.03716094748220052}, {:data0=>0.07652734787496966, :data1=>-0.02936305592105364}, {:data0=>0.07843354616964264, :data1=>-0.02140095864762837}, {:data0=>0.07953163728055332, :data1=>-0.01335517543938208}, {:data0=>0.07982386233428648, :data1=>-0.005305751788098336}, {:data0=>0.0793202051984927, :data1=>0.0026684958111990766}, {:data0=>0.07803817888301255, :data1=>0.0104907119228279}, {:data0=>0.07600254419511286, :data1=>0.018086705086055477}, {:data0=>0.07324496419843975, :data1=>0.025385615437028313}, {:data0=>0.06980359857309315, :data1=>0.03232054129435496}, {:data0=>0.06572264247804, :data1=>0.038829119417736556}, {:data0=>0.061051814972762915, :data1=>0.04485405414448486}, {:data0=>0.05584580245892426, :data1=>0.050343591142600015}, {:data0=>0.05016366295175323, :data1=>0.05525193208600215}, {:data0=>0.04406819728221623, :data1=>0.05953958715197065}, {:data0=>0.03762529356273365, :data1=>0.06317366285709423}, {:data0=>0.030903251419758793, :data1=>0.06612808338017886}, {:data0=>0.023972092605005768, :data1=>0.06838374416261565}, {:data0=>0.01690286464315514, :data1=>0.06992859722265975}, {:data0=>0.00976694415770481, :data1=>0.07075766826391915}, {:data0=>0.0026353464390681007, :data1=>0.07087300629417864}, {:data0=>-0.004421952318594946, :data1=>0.07028356709270185}, {:data0=>-0.011336673881096757, :data1=>0.06900503246675675}, {:data0=>-0.018042871959286264, :data1=>0.06705956781592286}, {:data0=>-0.024477535640598114, :data1=>0.06447552107066883}, {:data0=>-0.03058115694604349, :data1=>0.06128706658496728}, {:data0=>-0.03629825759109449, :data1=>0.057533798036935736}, {:data0=>-0.04157787046991168, :data1=>0.05326027482265818}, {:data0=>-0.046373971860342325, :data1=>0.048515526812886144}, {:data0=>-0.05064586085725326, :data1=>0.043352522677143124}, {:data0=>-0.054358483078983375, :data1=>0.037827607262253024}, {:data0=>-0.057482696250727904, :data1=>0.03199991374038379}, {:data0=>-0.05999547584407059, :data1=>0.025930756413767905}, {:data0=>-0.061880059538127974, :data1=>0.019683010178294824}, {:data0=>-0.06312602985928249, :data1=>0.013320482705666796}, {:data0=>-0.06372933494768035, :data1=>0.006907285403813025}, {:data0=>-0.06369224798403453, :data1=>0.0005072091583424485}, {:data0=>-0.06302326638438575, :data1=>-0.005816889254913999}, {:data0=>-0.061736952428075136, :data1=>-0.012003684363154073}, {:data0=>-0.05985371752021243, :data1=>-0.01799395729156418}, {:data0=>-0.05739955279957443, :data1=>-0.02373114392447023}, {:data0=>-0.0544057092816207, :data1=>-0.02916185101224894}, {:data0=>-0.05090833116997993, :data1=>-0.0342363356617637}, {:data0=>-0.046948046374518056, :data1=>-0.03890894404560497}, {:data0=>-0.04256951863652972, :data1=>-0.04313850559812725}, {:data0=>-0.037820965978699696, :data1=>-0.04688867942977577}, {:data0=>-0.032753650466722364, :data1=>-0.05012825018082221}, {:data0=>-0.027421344488773317, :data1=>-0.05283137104651735}, {:data0=>-0.02187977892681658, :data1=>-0.05497775223280234}, {:data0=>-0.0161860787089191, :data1=>-0.056552793639973564}, {:data0=>-0.010398191293751106, :data1=>-0.05754766111588537}, {:data0=>-0.0045743136472014565, :data1=>-0.05795930616520904}, {:data0=>0.0012276767730416867, :data1=>-0.057790429541792664}, {:data0=>0.006950781605083513, :data1=>-0.05704938968222052}, {:data0=>0.012539426469225073, :data1=>-0.055750057455323625}, {:data0=>0.017939986074955876, :data1=>-0.05391161919989385}, {:data0=>0.02310128471180023, :data1=>-0.05155833049667755}, {:data0=>0.02797506757238205, :data1=>-0.04871922356660624}, {:data0=>0.0325164386816822, :data1=>-0.04542777160120098}, {:data0=>0.036684261569115, :data1=>-0.04172151370953812}, {:data0=>0.0404415192159634, :data1=>-0.03764164450582933}, {:data0=>0.043755630235819624, :data1=>-0.03323257265968643}, {:data0=>0.04659871869567585, :data1=>-0.02854145298506781}, {:data0=>0.04894783545569379, :data1=>-0.02361769685173388}, {:data0=>0.05078512939179751, :data1=>-0.01851246586322267}, {:data0=>0.05209796736231443, :data1=>-0.013278153856807948}, {:data0=>0.05287900228310939, :data1=>-0.007967862343005474}, {:data0=>0.05312618918017076, :data1=>-0.0026348745148069667}, {:data0=>0.05284274958960326, :data1=>0.002667867079725462}, {:data0=>0.05203708516771943, :data1=>0.007888274192786966}, {:data0=>0.05072264185378063, :data1=>0.012975612983401037}, {:data0=>0.04891772639046195, :data1=>0.017880985876036388}, {:data0=>0.04664527744804677, :data1=>0.022557790692896183}, {:data0=>0.043932594013683525, :data1=>0.026962152843180535}, {:data0=>0.040811024093022535, :data1=>0.03105332665228751}, {:data0=>0.037315617124769974, :data1=>0.03479406224837451}, {:data0=>0.03348474382606363, :data1=>0.03815093478944949}, {:data0=>0.029359687465375085, :data1=>0.041094633207429856}, {:data0=>0.024984210797547368, :data1=>0.04360020606239567}, {:data0=>0.020404103090668937, :data1=>0.04564726253638164}, {:data0=>0.015666711825269675, :data1=>0.04722012704715912}, {:data0=>0.010820463751744808, :data1=>0.04830794642410785}, {:data0=>0.005914380051350196, :data1=>0.04890474905595608}, {:data0=>0.000997590359395179, :data1=>0.04900945588934651}, {:data0=>-0.0038811496233444502, :data1=>0.04862584362335593}, {:data0=>-0.008673932282755113, :data1=>0.04776246090381608}, {:data0=>-0.013334159480651721, :data1=>0.046432498768217804}, {:data0=>-0.017816986819118464, :data1=>0.04465361702294375}, {:data0=>-0.02207974662277196, :data1=>0.042447728645566354}, {:data0=>-0.02608234572496626, :data1=>0.03984074469219235}, {:data0=>-0.029787634422735035, :data1=>0.03686228254981393}, {:data0=>-0.03316174327667017, :data1=>0.03354534070311127}, {:data0=>-0.03617438477270366, :data1=>0.02992594348123067}, {:data0=>-0.038799117229371204, :data1=>0.026042759510169673}, {:data0=>-0.041013568722853, :data1=>0.021936697818333212}, {:data0=>-0.04279961920898767, :data1=>0.017650485724764197}, {:data0=>-0.044143539442475815, :data1=>0.013228232780077905}, {:data0=>-0.045036085724462493, :data1=>0.008714985128229312}, {:data0=>-0.045472549946382716, :data1=>0.004156274712319874}, {:data0=>-0.04545276483611976, :data1=>-0.00040233224047484044}, {:data0=>-0.044981064747930094, :data1=>-0.004915683050865246}, {:data0=>-0.04406620276605837, :data1=>-0.00933947840571187}, {:data0=>-0.04272122530942836, :data1=>-0.013630699946685669}, {:data0=>-0.04096330582731426, :data1=>-0.01774802156792311}, {:data0=>-0.03881353955971064, :data1=>-0.021652200553802306}, {:data0=>-0.03629670169767516, :data1=>-0.025306444916354132}, {:data0=>-0.03344097161490544, :data1=>-0.02867675355358087}, {:data0=>-0.030277626149190013, :data1=>-0.031732226142292985}, {:data0=>-0.026840705188402772, :data1=>-0.034445339998927925}, {:data0=>-0.023166653057971658, :data1=>-0.036792191485878215}, {:data0=>-0.019293939413172343, :data1=>-0.03875269990561493}, {:data0=>-0.015262663508461274, :data1=>-0.04031077220666198}, {:data0=>-0.011114145846032285, :data1=>-0.04145442722043277}, {:data0=>-0.006890511295902791, :data1=>-0.0421758785521648}, {:data0=>-0.0026342678295470873, :data1=>-0.04247157565869777}, {:data0=>0.0016121149817726389, :data1=>-0.042342203056636545}, {:data0=>0.005806623584048197, :data1=>-0.041792638012537735}, {:data0=>0.009908110123974266, :data1=>-0.04083186746822876}, {:data0=>0.01387669025955295, :data1=>-0.039472865345377785}, {:data0=>0.017674125305710837, :data1=>-0.037732431750274624}, {:data0=>0.021264185105578027, :data1=>-0.03563099595891662}, {:data0=>0.024612988234515156, :data1=>-0.0331923854005747}, {:data0=>0.0276893163917037, :data1=>-0.03044356317192761}, {:data0=>0.030464900110500938, :data1=>-0.027414336900736233}, {:data0=>0.03291467322091013, :data1=>-0.02413704203530855}, {:data0=>0.0350169938223065, :data1=>-0.0206462028614046}, {:data0=>0.03675382986867314, :data1=>-0.016978174739803877}, {:data0=>0.03811090782855624, :data1=>-0.013170771213896933}, {:data0=>0.03907782325413718, :data1=>-0.009262879756116945}, {:data0=>0.03964811247453926, :data1=>-0.005294070003907522}, {:data0=>0.03981928501397987, :data1=>-0.0013041983797115533}, {:data0=>0.03959281672186988, :data1=>0.002666987004982671}, {:data0=>0.03897410398568952, :data1=>0.006580237293962302}, {:data0=>0.037972379774729205, :data1=>0.010397185881281794}, {:data0=>0.03660059262995629, :data1=>0.014080719765578557}, {:data0=>0.034875250068861906, :data1=>0.01759533571388555}, {:data0=>0.032816228210816666, :data1=>0.02090747786017707}, {:data0=>0.03044654974507149, :data1=>0.02398585357054699}, {:data0=>0.027792132657144943, :data1=>0.02680172464294637}, {:data0=>0.024881512397252385, :data1=>0.029329171172294777}, {:data0=>0.021745540414232174, :data1=>0.03154532569877911}, {:data0=>0.018417062187977583, :data1=>0.033430575565302885}, {:data0=>0.014930578070866141, :data1=>0.034968731736199875}, {:data0=>0.011321890392589724, :data1=>0.03614716267017898}, {:data0=>0.007627740391965162, :data1=>0.03695689219260131}, {:data0=>0.0038854386129272343, :data1=>0.03739266067209944}, {:data0=>0.00013249243950561038, :data1=>0.03745294917067479}, {:data0=>-0.003593765553950366, :data1=>0.03713996660117703}, {:data0=>-0.007256544795473344, :data1=>0.03645960028792292}, {:data0=>-0.010819955879034952, :data1=>0.03542133068164688}, {:data0=>-0.014249358231034535, :data1=>0.034038111325573356}, {:data0=>-0.017511692949085157, :data1=>0.032326215501862675}, {:data0=>-0.020575797651327634, :data1=>0.03030505130385748}, {:data0=>-0.02341270037308295, :data1=>0.02799694717647625}, {:data0=>-0.02599588977380896, :data1=>0.025426910242000306}, {:data0=>-0.02830155916866617, :data1=>0.02262235997885124}, {:data0=>-0.03030882217289834, :data1=>0.019612840044481626}, {:data0=>-0.03199989804087271, :data1=>0.016429711228204323}, {:data0=>-0.03336026509200453, :data1=>0.013105828683960596}, {:data0=>-0.034378780939771314, :data1=>0.009675206725276596}, {:data0=>-0.03504776857435075, :data1=>0.006172674563906241}, {:data0=>-0.03536306769076166, :data1=>0.0026335264391570876}, {:data0=>-0.03532405099937108, :data1=>-0.0009068303837699921}, {:data0=>-0.03493360560086018, :data1=>-0.0044132262710057215}, {:data0=>-0.034198079849846415, :data1=>-0.007851075094278138}, {:data0=>-0.03312719646701783, :data1=>-0.01118671195399736}, {:data0=>-0.031733932985612744, :data1=>-0.014387719485737433}, {:data0=>-0.030034370931253992, :data1=>-0.01742323961877401}, {:data0=>-0.028047515431544826, :data1=>-0.020264267819183737}, {:data0=>-0.025795087230651804, :data1=>-0.022883927041830017}, {:data0=>-0.023301289341733707, :data1=>-0.025257718833294515}, {:data0=>-0.020592550804145047, :data1=>-0.027363749269167716}, {:data0=>-0.017697250220711672, :data1=>-0.029182927671574793}, {:data0=>-0.014645421931173236, :data1=>-0.030699136333681806}, {:data0=>-0.011468447829522478, :data1=>-0.03189936977433896}, {:data0=>-0.008198737954147777, :data1=>-0.032773842354973534}, {:data0=>-0.004869403069413179, :data1=>-0.03331606340924418}, {:data0=>-0.0015139225149113592, :data1=>-0.03352287936063594}, {:data0=>0.0018341893762598733, :data1=>-0.03339448263089635}, {:data0=>0.005141714996257924, :data1=>-0.03293438746976108}, {:data0=>0.008376060064012527, :data1=>-0.03214937316059006}, {:data0=>0.01150557192653669, :data1=>-0.031049395374179493}, {:data0=>0.014499846479146612, :data1=>-0.029647466751065336}, {:data0=>0.017330020755353462, :data1=>-0.02795950808813281}, {:data0=>0.019969048396933854, :data1=>-0.026004171785481353}, {:data0=>0.022391955400787655, :data1=>-0.023802639471616913}, {:data0=>0.024576073749665524, :data1=>-0.02137839596669905}, {:data0=>0.026501250766482545, :data1=>-0.018756981962519233}, {:data0=>0.028150032284313543, :data1=>-0.01596572799212386}, {:data0=>0.02950781799369662, :data1=>-0.013033472429771188}, {:data0=>0.03056298761280836, :data1=>-0.009990266401743038}, {:data0=>0.03130699682154785, :data1=>-0.0068670685992216806}, {:data0=>0.03173444220461047, :data1=>-0.0036954330650818966}, {:data0=>0.03184309475821592, :data1=>-0.0005071930764307037}, {:data0=>0.03163390182720966, :data1=>0.0026658557362515354}, {:data0=>0.031110957650709332, :data1=>0.005792269904454481}, {:data0=>0.030281443002268746, :data1=>0.008841267185148008}, {:data0=>0.029155534711685242, :data1=>0.011783027158793329}, {:data0=>0.02774628614716924, :data1=>0.014588980450003647}, {:data0=>0.026069480015825115, :data1=>0.017232083788807546}, {:data0=>0.024143455104595275, :data1=>0.019687078286823194}, {:data0=>0.02198890883049289, :data1=>0.02193072848386525}, {:data0=>0.019628677695776576, :data1=>0.023942039924654417}, {:data0=>0.01708749794859543, :data1=>0.02570245325024324}, {:data0=>0.014391748930673886, :data1=>0.027196013032182005}, {:data0=>0.011569181749176496, :data1=>0.028409509836828082}, {:data0=>0.008648636038616203, :data1=>0.0293325942799122}, {:data0=>0.005659747679438863, :data1=>0.0299578621147613}, {:data0=>0.0026326504119060425, :data1=>0.03028090968859802}, {:data0=>-0.0004023256734320707, :data1=>0.03030035939718965}, {:data0=>-0.0034149557742803563, :data1=>0.0300178550658721}, {:data0=>-0.006375419166190321, :data1=>0.029438027481693087}, {:data0=>-0.009254592210849889, :data1=>0.028568430594195598}, {:data0=>-0.012024332724919531, :data1=>0.02741944918834523}, {:data0=>-0.014657752953146775, :data1=>0.02600417910952447}, {:data0=>-0.01712947851790203, :data1=>0.02433828138471185}, {:data0=>-0.019415890870804253, :data1=>0.02243981183341019}, {:data0=>-0.02149535094909383, :data1=>0.020329027994218495}, {:data0=>-0.023348401937990624, :data1=>0.018028175405971198}, {:data0=>-0.0249579492583739, :data1=>0.015561255474112929}, {:data0=>-0.026309416134484856, :data1=>0.012953777321672428}, {:data0=>-0.027390873346571296, :data1=>0.010232496168317552}, {:data0=>-0.02819314203592568, :data1=>0.007425140899236749}, {:data0=>-0.02870986870196237, :data1=>0.004560133576982309}, {:data0=>-0.028937571810108653, :data1=>0.0016663037131798347}, {:data0=>-0.028875659712563884, :data1=>-0.00122739984731709}, {:data0=>-0.0285264198686042, :data1=>-0.004092196569862213}, {:data0=>-0.027894979634270733, :data1=>-0.00689975856189637}, {:data0=>-0.026989239170200904, :data1=>-0.009622488802789509}, {:data0=>-0.025819777288325813, :data1=>-0.012233790557038677}, {:data0=>-0.024399731320525617, :data1=>-0.01470832535840793}, {:data0=>-0.022744652342581027, :data1=>-0.017022257079955777}, {:data0=>-0.02087233732248808, :data1=>-0.019153479756032085}, {:data0=>-0.01880263998117458, :data1=>-0.021081826995623377}, {:data0=>-0.016557262353808264, :data1=>-0.022789261020057433}, {:data0=>-0.014159529219350535, :data1=>-0.024260039570030013}, {:data0=>-0.011634147723132798, :data1=>-0.02548085915500335}, {:data0=>-0.009006954650588771, :data1=>-0.026440973359917096}, {:data0=>-0.0063046539186818054, :data1=>-0.027132285177392048}, {:data0=>-0.003554546934087895, :data1=>-0.027549412595642777}, {:data0=>-0.0007842585231598053, :data1=>-0.02768972694052086}, {:data0=>0.001978538832304169, :data1=>-0.027553363741812817}, {:data0=>0.004706399717572825, :data1=>-0.027143206166422993}, {:data0=>0.007372376754954244, :data1=>-0.026464841331694713}, {:data0=>0.00995028516209018, :data1=>-0.025526490078208463}, {:data0=>0.012414958317062501, :data1=>-0.02433891104034815}, {:data0=>0.014742491851470387, :data1=>-0.022915280102233277}, {:data0=>0.01691047391920453, :data1=>-0.021271046563872006}, {:data0=>0.01889819943773913, :data1=>-0.019423767565324504}, {:data0=>0.020686866268797368, :data1=>-0.017392922523156735}, {:data0=>0.022259751494437697, :data1=>-0.015199709521564617}, {:data0=>0.023602366150992652, :data1=>-0.012866825768499653}, {:data0=>0.024702587004747357, :data1=>-0.010418234373380655}, {:data0=>0.02555076418751097, :data1=>-0.007878919826203324}, {:data0=>0.026139803754937418, :data1=>-0.005274634656965418}, {:data0=>0.02646522448312654, :data1=>-0.0026316398284581713}, {:data0=>0.026525188477152763, :data1=>2.3558535967652164e-05}, {:data0=>0.026320505426154484, :data1=>0.002664473465417155}, {:data0=>0.025854610600886088, :data1=>0.005264899874381281}, {:data0=>0.025133516948610737, :data1=>0.007799173123937923}, {:data0=>0.024165741894353967, :data1=>0.01024242087423076}, {:data0=>0.022962209704366025, :data1=>0.012570805770641163}, {:data0=>0.021536130504758628, :data1=>0.01476175660932761}, {:data0=>0.01990285727340094, :data1=>0.01679418575377798}, {:data0=>0.01807972233412171, :data1=>0.018648690721346284}, {:data0=>0.016085855077060618, :data1=>0.020307738025866825}, {:data0=>0.013941982805803062, :data1=>0.021755827547608485}, {:data0=>0.011670216769065217, :data1=>0.022979635903133063}, {:data0=>0.009293825570720005, :data1=>0.02396813750298933}, {:data0=>0.006836998265632342, :data1=>0.02471270221241427}, {:data0=>0.004324599539094928, :data1=>0.025207168767024907}, {:data0=>0.0017819194338480426, :data1=>0.025447893339485144}, {:data0=>-0.0007655798698042863, :data1=>0.025433772901879793}, {:data0=>-0.003292517698692222, :data1=>0.025166243279545582}, {:data0=>-0.005773846442617254, :data1=>0.024649252042908975}, {:data0=>-0.008185098540854465, :data1=>0.023889206631990068}, {:data0=>-0.01050262647638368, :data1=>0.02289489835121626}, {:data0=>-0.01270383343610124, :data1=>0.02167740310767642}, {:data0=>-0.014767392399185942, :data1=>0.020249959991649205}, {:data0=>-0.016673451541311984, :data1=>0.018627829011978604}, {:data0=>-0.01840382398817506, :data1=>0.016828129498594552}, {:data0=>-0.01994216011628862, :data1=>0.014869660868283858}, {:data0=>-0.021274100780501223, :data1=>0.012772707615969535}, {:data0=>-0.0223874100443104, :data1=>0.010558830540700337}, {:data0=>-0.02327208619878958, :data1=>0.008250646341929136}, {:data0=>-0.023920450076668858, :data1=>0.005871597826320038}, {:data0=>-0.024327209897587257, :data1=>0.003445717047340738}, {:data0=>-0.024489502116455484, :data1=>0.000997383758567455}, {:data0=>-0.024406907986875066, :data1=>-0.0014489184035133976}, {:data0=>-0.024081445793262664, :data1=>-0.0038688455806101573}, {:data0=>-0.023517538946333426, :data1=>-0.006238434784265651}, {:data0=>-0.022721960374527773, :data1=>-0.008534340041677337}, {:data0=>-0.021703753876487566, :data1=>-0.010734061279675642}, {:data0=>-0.02047413332452915, :data1=>-0.012816163713779482}, {:data0=>-0.019046360824038884, :data1=>-0.014760485613872719}, {:data0=>-0.017435605136753983, :data1=>-0.01654833244321868}, {:data0=>-0.015658781865038867, :data1=>-0.018162655511919274}, {:data0=>-0.013734377067721707, :data1=>-0.01958821344801495}, {:data0=>-0.011682256134177147, :data1=>-0.02081171496752809}, {:data0=>-0.009523459880667825, :data1=>-0.021821941617041842}, {:data0=>-0.0072799899502204385, :data1=>-0.022609849366913477}, {:data0=>-0.004974585693445686, :data1=>-0.02316864814786924}, {:data0=>-0.002630494781863884, :data1=>-0.023493858646349293}, {:data0=>-0.0002712398568379915, :data1=>-0.02358334590233018}, {:data0=>0.002079616454262059, :data1=>-0.02343732948516604}, {:data0=>0.004398705817711398, :data1=>-0.02305837025595221}, {:data0=>0.006663085449758154, :data1=>-0.022451333956718736}, {:data0=>0.008850464071157128, :data1=>-0.021623332095121357}, {:data0=>0.010939420344461685, :data1=>-0.020583640815973234}, {:data0=>0.012909611663276858, :data1=>-0.019343598665776802}, {:data0=>0.014741971268020132, :data1=>-0.017916484361285023}, {:data0=>0.01641889178763814, :data1=>-0.016317375866064826}, {:data0=>0.017924393449864573, :data1=>-0.014562992258199833}, {:data0=>0.019244275362479905, :data1=>-0.012671520035945912}, {:data0=>0.020366248442991636, :data1=>-0.010662425654793454}, {:data0=>0.02128004876239727, :data1=>-0.008556256217621471}, {:data0=>0.021977530268301154, :data1=>-0.0063744303482657595}, {:data0=>0.022452736061605933, :data1=>-0.004139021366879999}, {:data0=>0.022701947617183058, :data1=>-0.001872534952166029}]>}, :extension=>[]}>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "require 'nyaplot'\n", "\n", "x = []; y = []; theta = 0.6; a=1\n", "while theta < 14*Math::PI do\n", " x.push(a*Math::cos(theta)/theta)\n", " y.push(a*Math::sin(theta)/theta)\n", " theta += 0.1\n", "end\n", "plot1 = Nyaplot::Plot.new\n", "plot1.add(:line, x, y)\n", "plot1.show" ] } ], "metadata": { "kernelspec": { "display_name": "Ruby 2.2.1", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": ".rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.2.1" } }, "nbformat": 4, "nbformat_minor": 0 }