{
"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": {}
}
]
}