{ "metadata": { "language": "ruby", "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Nyaplot Tutorial 4: Introduction of charts bundled with Nyaplot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Various types of diagrams are bundled with Nyaplot, but the usage is not so different. This notebook introduce a part of them." ] }, { "cell_type": "code", "collapsed": false, "input": [ "require 'nyaplot'" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 1, "text": [ "\"if(window['d3'] === undefined ||\\n window['Nyaplot'] === undefined){\\n var path = {\\\"d3\\\":\\\"http://d3js.org/d3.v3.min\\\"};\\n\\n\\n\\n var shim = {\\\"d3\\\":{\\\"exports\\\":\\\"d3\\\"}};\\n\\n require.config({paths: path, shim:shim});\\n\\n\\nrequire(['d3'], function(d3){window['d3']=d3;console.log('finished loading d3');\\n\\n\\tvar script = d3.select(\\\"head\\\")\\n\\t .append(\\\"script\\\")\\n\\t .attr(\\\"src\\\", \\\"https://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": "pyout", "prompt_number": 1, "text": [ "true" ] } ], "prompt_number": 1 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Bar chart" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot = Nyaplot::Plot.new\n", "plot.add(:bar, ['Persian', 'Maine Coon', 'American Shorthair'], [10,20,30])\n", "plot.x_label(\"Species\")\n", "plot.y_label(\"Number\")\n", "plot.show" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "\"
\\n\\n\"" ] } ], "prompt_number": 3 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Line chart" ] }, { "cell_type": "code", "collapsed": false, "input": [ "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" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "\"
\\n\\n\"" ] } ], "prompt_number": 4 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Scatter" ] }, { "cell_type": "code", "collapsed": false, "input": [ "sc_y=[]; line_x=sc_x=[]; line_y=[]; a=0.5; b=3; noise=1.5; x=0\n", "rnd = Random.new\n", "while x<10\n", " line_x.push(x)\n", " line_y.push(a*x+b)\n", " sc_y.push(a*x+b+noise*(rnd.rand-0.5))\n", " x=(x+0.5).round(1)\n", "end\n", "plot2 = Nyaplot::Plot.new\n", "sc = plot2.add(:scatter, sc_x, sc_y)\n", "line = plot2.add(:line, line_x, line_y)\n", "sc.color('#000')\n", "sc.title('point')\n", "line.title('line')\n", "plot2.legend(true)\n", "plot2.show" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "\"
\\n\\n\"" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "sc.shape([\"triangle-up\"])\n", "sc.color('#fff')\n", "plot2.show" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "\"
\\n\\n\"" ] } ], "prompt_number": 6 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Histogram" ] }, { "cell_type": "code", "collapsed": false, "input": [ "require 'distribution'\n", "rng = Distribution::Normal.rng\n", "arr = []\n", "1000.times {arr.push(rng.call)}\n", "plot3 = Nyaplot::Plot.new\n", "plot3.add(:histogram, arr)\n", "plot3.yrange([0,300])\n", "plot3.show" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "\"
\\n\\n\"" ] } ], "prompt_number": 7 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Box plot" ] }, { "cell_type": "code", "collapsed": false, "input": [ "arr2 = arr.map{|val| val/0.8-2}\n", "arr3 = arr.map{|val| val*1.1+0.3}\n", "arr4 = arr.map{|val| val*1.3+0.3}\n", "\"\"" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "\"\"" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "plot4 = Nyaplot::Plot.new\n", "plot4.add(:box, arr, arr2, arr3, arr4)\n", "plot4.show" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ "\"
\\n\\n\"" ] } ], "prompt_number": 17 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "2D Histogram" ] }, { "cell_type": "code", "collapsed": false, "input": [ "x=[]; y=[]; fill=[]\n", "-5.step(5, 0.2) do |i|\n", " -5.step(5, 0.2) do |j|\n", " x.push(i)\n", " y.push(j)\n", " val = Math.sin(Math.sqrt(i*i+j*j))/Math.sqrt(i*i+j*j)\n", " fill.push((val.nan? ? 0 : val))\n", " end\n", "end\n", "\n", "plot5 = Nyaplot::Plot.new\n", "hm = plot5.add(:heatmap, x, y, fill)\n", "hm.stroke_color(\"#fff\")\n", "hm.stroke_width(\"0\")\n", "hm.width(0.2)\n", "hm.height(0.2)\n", "plot5.legend(true)\n", "plot5.show" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "\"
\\n\\n\"" ] } ], "prompt_number": 18 } ], "metadata": {} } ] }