{ "metadata": { "language": "ruby", "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Nyaplot Tutorial 3: Picking colors suitable for your plots" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nyaplot has an interface to various prepared colorsets. All of those colorsets are provided by [Colorbrewer](http://colorbrewer2.org/) that is licensed under [Apache License Version 2.0](https://github.com/domitry/nyaplot/blob/master/lib/nyaplot/colorbrewer/LICENSE)." ] }, { "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\\\", \\\"http://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": "pyout", "prompt_number": 1, "text": [ "true" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use Nyaplot::Colors#lists to show the lists of prepared colorsets." ] }, { "cell_type": "code", "collapsed": false, "input": [ "Nyaplot::Colors.lists" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 2, "text": [ "[\"Spectral\", \"RdYlGn\", \"RdBu\", \"PiYG\", \"PRGn\", \"RdYlBu\", \"BrBG\", \"RdGy\", \"PuOr\", \"Set2\", \"Accent\", \"Set1\", \"Set3\", \"Dark2\", \"Paired\", \"Pastel2\", \"Pastel1\", \"OrRd\", \"PuBu\", \"BuPu\", \"Oranges\", \"BuGn\", \"YlOrBr\", \"YlGn\", \"Reds\", \"RdPu\", \"Greens\", \"YlGnBu\", \"Purples\", \"GnBu\", \"Greys\", \"YlOrRd\", \"PuRd\", \"Blues\", \"PuBuGn\"]" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Try some of those colorsets." ] }, { "cell_type": "code", "collapsed": false, "input": [ "Nyaplot::Colors.Pastel2" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
rgb(179,226,205)rgb(253,205,172)rgb(203,213,232)rgb(244,202,228)rgb(230,245,201)rgb(255,242,174)rgb(241,226,204)rgb(204,204,204)
        
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "#" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "Nyaplot::Colors.jet" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
rgb(215,48,39)rgb(244,109,67)rgb(253,174,97)rgb(254,224,144)rgb(255,255,191)rgb(224,243,248)rgb(171,217,233)rgb(116,173,209)rgb(69,117,180)
         
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "#" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "Nyaplot::Colors.GnBu" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
rgb(247,252,240)rgb(224,243,219)rgb(204,235,197)rgb(168,221,181)rgb(123,204,196)rgb(78,179,211)rgb(43,140,190)rgb(8,104,172)rgb(8,64,129)
         
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "#" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "Nyaplot::Colors.binary" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
rgb(255,255,255)rgb(240,240,240)rgb(217,217,217)rgb(189,189,189)rgb(150,150,150)rgb(115,115,115)rgb(82,82,82)rgb(37,37,37)rgb(0,0,0)
         
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "#" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nyaplot::Colors#seq return random colors that is suitable for sequential data. Similarly, Nyaplot::Colors#div returns colors for diverging data, and Nyaplot::Colors#qual is for qualitative data." ] }, { "cell_type": "code", "collapsed": false, "input": [ "Nyaplot::Colors.seq" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
rgb(247,244,249)rgb(231,225,239)rgb(212,185,218)rgb(201,148,199)rgb(223,101,176)rgb(231,41,138)rgb(206,18,86)rgb(152,0,67)rgb(103,0,31)
         
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "#" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "Nyaplot::Colors.div" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
rgb(215,48,39)rgb(244,109,67)rgb(253,174,97)rgb(254,224,139)rgb(255,255,191)rgb(217,239,139)rgb(166,217,106)rgb(102,189,99)rgb(26,152,80)
         
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "#" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "Nyaplot::Colors.qual" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
rgb(141,211,199)rgb(255,255,179)rgb(190,186,218)rgb(251,128,114)rgb(128,177,211)rgb(253,180,98)rgb(179,222,105)rgb(252,205,229)rgb(217,217,217)
         
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 9, "text": [ "#" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Those methods can have one argument to specify required number of colors." ] }, { "cell_type": "code", "collapsed": false, "input": [ "Nyaplot::Colors.seq(3)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
rgb(231,225,239)rgb(201,148,199)rgb(221,28,119)
   
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "#" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "Nyaplot::Colors.Spectral(11)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
rgb(158,1,66)rgb(213,62,79)rgb(244,109,67)rgb(253,174,97)rgb(254,224,139)rgb(255,255,191)rgb(230,245,152)rgb(171,221,164)rgb(102,194,165)rgb(50,136,189)rgb(94,79,162)
           
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "#" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use Nyaplot::Color to try your favorite color (Credits: [fatalflaws](http://www.colourlovers.com/lover/fatalflaws/loveNote))" ] }, { "cell_type": "code", "collapsed": false, "input": [ "Nyaplot::Color.new([\"#DEDEDE\", \"#ACACAC\", \"#1F141C\", \"#4A173D\", \"#8C547E\"])" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
#DEDEDE#ACACAC#1F141C#4A173D#8C547E
     
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 12, "text": [ "#" ] } ], "prompt_number": 12 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Examples" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then try those colors in some plots." ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot = Nyaplot::Plot.new\n", "bar = plot.add(:bar, ['Persian', 'Maine Coon', 'American Shorthair'], [10,20,30])\n", "plot.show" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ "#[#[#:bar, :options=>{:x=>\"data0\", :y=>\"data1\"}, :data=>\"387e2cfe-6440-4287-a3fc-e16210ac81d0\"}, @xrange=[\"Persian\", \"Maine Coon\", \"American Shorthair\"], @yrange=[0, 30]>], :options=>{:width=>700, :xrange=>[\"Persian\", \"Maine Coon\", \"American Shorthair\"], :yrange=>[0, 30]}}>], :data=>{\"387e2cfe-6440-4287-a3fc-e16210ac81d0\"=>#\"Persian\", :data1=>10}, {:data0=>\"Maine Coon\", :data1=>20}, {:data0=>\"American Shorthair\", :data1=>30}]>}, :extension=>[]}>" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "colors = Nyaplot::Colors.qual(3)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
rgb(27,158,119)rgb(217,95,2)rgb(117,112,179)
   
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "#" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "bar.color(colors)\n", "plot.show" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "#[#[#:bar, :options=>{:x=>\"data0\", :y=>\"data1\", :color=>#}, :data=>\"387e2cfe-6440-4287-a3fc-e16210ac81d0\"}, @xrange=[\"Persian\", \"Maine Coon\", \"American Shorthair\"], @yrange=[0, 30]>], :options=>{:width=>700, :xrange=>[\"Persian\", \"Maine Coon\", \"American Shorthair\"], :yrange=>[0, 30]}}>], :data=>{\"387e2cfe-6440-4287-a3fc-e16210ac81d0\"=>#\"Persian\", :data1=>10}, {:data0=>\"Maine Coon\", :data1=>20}, {:data0=>\"American Shorthair\", :data1=>30}]>}, :extension=>[]}>" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "x=[]; y=[]; fill=[]\n", "-5.step(5, 1) do |i|\n", " -5.step(5, 1) 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", "plot2 = Nyaplot::Plot.new\n", "hm = plot2.add(:heatmap, x, y, fill)\n", "hm.width(1)\n", "hm.height(1)\n", "plot2.legend(true)\n", "plot2.show" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "#[#[#:heatmap, :options=>{:x=>\"data0\", :y=>\"data1\", :fill=>\"data2\", :width=>1, :height=>1}, :data=>\"8b536751-d443-4063-bae8-67ba63633644\"}, @xrange=[-5, 5], @yrange=[-5, 5]>], :options=>{:legend=>true, :zoom=>true, :width=>800, :xrange=>[-5, 5], :yrange=>[-5, 5]}}>], :data=>{\"8b536751-d443-4063-bae8-67ba63633644\"=>#-5, :data1=>-5, :data2=>0.10024812527586709}, {:data0=>-5, :data1=>-4, :data2=>0.018686436816934687}, {:data0=>-5, :data1=>-3, :data2=>-0.07494068295407723}, {:data0=>-5, :data1=>-2, :data2=>-0.14523137672394124}, {:data0=>-5, :data1=>-1, :data2=>-0.18163979110507836}, {:data0=>-5, :data1=>0, :data2=>-0.1917848549326277}, {:data0=>-5, :data1=>1, :data2=>-0.18163979110507836}, {:data0=>-5, :data1=>2, :data2=>-0.14523137672394124}, {:data0=>-5, :data1=>3, :data2=>-0.07494068295407723}, {:data0=>-5, :data1=>4, :data2=>0.018686436816934687}, {:data0=>-5, :data1=>5, :data2=>0.10024812527586709}, {:data0=>-4, :data1=>-5, :data2=>0.018686436816934687}, {:data0=>-4, :data1=>-4, :data2=>-0.10362229026069987}, {:data0=>-4, :data1=>-3, :data2=>-0.1917848549326277}, {:data0=>-4, :data1=>-2, :data2=>-0.21718431835123952}, {:data0=>-4, :data1=>-1, :data2=>-0.20162936743561297}, {:data0=>-4, :data1=>0, :data2=>-0.18920062382698205}, {:data0=>-4, :data1=>1, :data2=>-0.20162936743561297}, {:data0=>-4, :data1=>2, :data2=>-0.21718431835123952}, {:data0=>-4, :data1=>3, :data2=>-0.1917848549326277}, {:data0=>-4, :data1=>4, :data2=>-0.10362229026069987}, {:data0=>-4, :data1=>5, :data2=>0.018686436816934687}, {:data0=>-3, :data1=>-5, :data2=>-0.07494068295407723}, {:data0=>-3, :data1=>-4, :data2=>-0.1917848549326277}, {:data0=>-3, :data1=>-3, :data2=>-0.21017152293525476}, {:data0=>-3, :data1=>-2, :data2=>-0.12411188138749576}, {:data0=>-3, :data1=>-1, :data2=>-0.0065407069689387}, {:data0=>-3, :data1=>0, :data2=>0.0470400026866224}, {:data0=>-3, :data1=>1, :data2=>-0.0065407069689387}, {:data0=>-3, :data1=>2, :data2=>-0.12411188138749576}, {:data0=>-3, :data1=>3, :data2=>-0.21017152293525476}, {:data0=>-3, :data1=>4, :data2=>-0.1917848549326277}, {:data0=>-3, :data1=>5, :data2=>-0.07494068295407723}, {:data0=>-2, :data1=>-5, :data2=>-0.14523137672394124}, {:data0=>-2, :data1=>-4, :data2=>-0.21718431835123952}, {:data0=>-2, :data1=>-3, :data2=>-0.12411188138749576}, {:data0=>-2, :data1=>-2, :data2=>0.10891980905843199}, {:data0=>-2, :data1=>-1, :data2=>0.35184490787569894}, {:data0=>-2, :data1=>0, :data2=>0.45464871341284085}, {:data0=>-2, :data1=>1, :data2=>0.35184490787569894}, {:data0=>-2, :data1=>2, :data2=>0.10891980905843199}, {:data0=>-2, :data1=>3, :data2=>-0.12411188138749576}, {:data0=>-2, :data1=>4, :data2=>-0.21718431835123952}, {:data0=>-2, :data1=>5, :data2=>-0.14523137672394124}, {:data0=>-1, :data1=>-5, :data2=>-0.18163979110507836}, {:data0=>-1, :data1=>-4, :data2=>-0.20162936743561297}, {:data0=>-1, :data1=>-3, :data2=>-0.0065407069689387}, {:data0=>-1, :data1=>-2, :data2=>0.35184490787569894}, {:data0=>-1, :data1=>-1, :data2=>0.6984559986366083}, {:data0=>-1, :data1=>0, :data2=>0.8414709848078965}, {:data0=>-1, :data1=>1, :data2=>0.6984559986366083}, {:data0=>-1, :data1=>2, :data2=>0.35184490787569894}, {:data0=>-1, :data1=>3, :data2=>-0.0065407069689387}, {:data0=>-1, :data1=>4, :data2=>-0.20162936743561297}, {:data0=>-1, :data1=>5, :data2=>-0.18163979110507836}, {:data0=>0, :data1=>-5, :data2=>-0.1917848549326277}, {:data0=>0, :data1=>-4, :data2=>-0.18920062382698205}, {:data0=>0, :data1=>-3, :data2=>0.0470400026866224}, {:data0=>0, :data1=>-2, :data2=>0.45464871341284085}, {:data0=>0, :data1=>-1, :data2=>0.8414709848078965}, {:data0=>0, :data1=>0, :data2=>0}, {:data0=>0, :data1=>1, :data2=>0.8414709848078965}, {:data0=>0, :data1=>2, :data2=>0.45464871341284085}, {:data0=>0, :data1=>3, :data2=>0.0470400026866224}, {:data0=>0, :data1=>4, :data2=>-0.18920062382698205}, {:data0=>0, :data1=>5, :data2=>-0.1917848549326277}, {:data0=>1, :data1=>-5, :data2=>-0.18163979110507836}, {:data0=>1, :data1=>-4, :data2=>-0.20162936743561297}, {:data0=>1, :data1=>-3, :data2=>-0.0065407069689387}, {:data0=>1, :data1=>-2, :data2=>0.35184490787569894}, {:data0=>1, :data1=>-1, :data2=>0.6984559986366083}, {:data0=>1, :data1=>0, :data2=>0.8414709848078965}, {:data0=>1, :data1=>1, :data2=>0.6984559986366083}, {:data0=>1, :data1=>2, :data2=>0.35184490787569894}, {:data0=>1, :data1=>3, :data2=>-0.0065407069689387}, {:data0=>1, :data1=>4, :data2=>-0.20162936743561297}, {:data0=>1, :data1=>5, :data2=>-0.18163979110507836}, {:data0=>2, :data1=>-5, :data2=>-0.14523137672394124}, {:data0=>2, :data1=>-4, :data2=>-0.21718431835123952}, {:data0=>2, :data1=>-3, :data2=>-0.12411188138749576}, {:data0=>2, :data1=>-2, :data2=>0.10891980905843199}, {:data0=>2, :data1=>-1, :data2=>0.35184490787569894}, {:data0=>2, :data1=>0, :data2=>0.45464871341284085}, {:data0=>2, :data1=>1, :data2=>0.35184490787569894}, {:data0=>2, :data1=>2, :data2=>0.10891980905843199}, {:data0=>2, :data1=>3, :data2=>-0.12411188138749576}, {:data0=>2, :data1=>4, :data2=>-0.21718431835123952}, {:data0=>2, :data1=>5, :data2=>-0.14523137672394124}, {:data0=>3, :data1=>-5, :data2=>-0.07494068295407723}, {:data0=>3, :data1=>-4, :data2=>-0.1917848549326277}, {:data0=>3, :data1=>-3, :data2=>-0.21017152293525476}, {:data0=>3, :data1=>-2, :data2=>-0.12411188138749576}, {:data0=>3, :data1=>-1, :data2=>-0.0065407069689387}, {:data0=>3, :data1=>0, :data2=>0.0470400026866224}, {:data0=>3, :data1=>1, :data2=>-0.0065407069689387}, {:data0=>3, :data1=>2, :data2=>-0.12411188138749576}, {:data0=>3, :data1=>3, :data2=>-0.21017152293525476}, {:data0=>3, :data1=>4, :data2=>-0.1917848549326277}, {:data0=>3, :data1=>5, :data2=>-0.07494068295407723}, {:data0=>4, :data1=>-5, :data2=>0.018686436816934687}, {:data0=>4, :data1=>-4, :data2=>-0.10362229026069987}, {:data0=>4, :data1=>-3, :data2=>-0.1917848549326277}, {:data0=>4, :data1=>-2, :data2=>-0.21718431835123952}, {:data0=>4, :data1=>-1, :data2=>-0.20162936743561297}, {:data0=>4, :data1=>0, :data2=>-0.18920062382698205}, {:data0=>4, :data1=>1, :data2=>-0.20162936743561297}, {:data0=>4, :data1=>2, :data2=>-0.21718431835123952}, {:data0=>4, :data1=>3, :data2=>-0.1917848549326277}, {:data0=>4, :data1=>4, :data2=>-0.10362229026069987}, {:data0=>4, :data1=>5, :data2=>0.018686436816934687}, {:data0=>5, :data1=>-5, :data2=>0.10024812527586709}, {:data0=>5, :data1=>-4, :data2=>0.018686436816934687}, {:data0=>5, :data1=>-3, :data2=>-0.07494068295407723}, {:data0=>5, :data1=>-2, :data2=>-0.14523137672394124}, {:data0=>5, :data1=>-1, :data2=>-0.18163979110507836}, {:data0=>5, :data1=>0, :data2=>-0.1917848549326277}, {:data0=>5, :data1=>1, :data2=>-0.18163979110507836}, {:data0=>5, :data1=>2, :data2=>-0.14523137672394124}, {:data0=>5, :data1=>3, :data2=>-0.07494068295407723}, {:data0=>5, :data1=>4, :data2=>0.018686436816934687}, {:data0=>5, :data1=>5, :data2=>0.10024812527586709}]>}, :extension=>[]}>" ] } ], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "colors = Nyaplot::Colors.GnBu" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
rgb(247,252,240)rgb(224,243,219)rgb(204,235,197)rgb(168,221,181)rgb(123,204,196)rgb(78,179,211)rgb(43,140,190)rgb(8,104,172)rgb(8,64,129)
         
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 39, "text": [ "#" ] } ], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [ "hm.color(colors)\n", "plot2.show" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 41, "text": [ "\"
\\n\\n\"" ] } ], "prompt_number": 41 } ], "metadata": {} } ] }