{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "_Note:_ this tutorial is from the Daru visualization tutorial : http://nbviewer.jupyter.org/github/SciRuby/sciruby-notebooks/blob/master/Visualization/Visualizing%20data%20with%20daru%20DataFrame.ipynb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating Visualizations with DataFrame\n", "\n", "Using nyaplot in the background to generate interactive plots, which can be viewed in your browser.\n", "\n", "In this tutorial we'll see how we can create some interesting plots with Daru::DataFrame using the Daru::View::Plot function." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "Install the spreadsheet gem version ~>1.1.1 for using spreadsheet functions.\n", "\n", "Install the mechanize gem version ~>2.7.5 for using mechanize functions.\n" ] }, { "data": { "text/plain": [ "true" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "require 'daru/view'" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "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\":\"http://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\", \"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" ], "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\\\":\\\"http://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\\\", \\\"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": "display_data" }, { "data": { "text/plain": [ ":nyaplot" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Set a default plotting library\n", "Daru::View.plotting_library = :nyaplot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Scatter Plot\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ " Daru::DataFrame(100x2) \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "
ab
000.24387830585378023
110.7364083916949039
220.045806423951191166
330.8503977568601644
440.3429703076234011
550.25151658306670177
660.13806340225375935
770.9904713904406061
880.09006319661808859
990.29625338363152565
10100.48694450801983535
11110.26094495175555543
12120.47916845960425714
13130.5378424568152994
14140.936936480590333
15150.4836656237345066
16160.5485818395800696
17170.3219304166746563
18180.29705634962739746
19190.39433310276899514
20200.20973357195190911
21210.5343820015458812
22220.3672381331260772
23230.2784173351688527
24240.8636423920279024
25250.27121403960690593
26260.10419720077465422
27270.24052633538219703
28280.4110019094652734
29290.7803357210732309
.........
99990.3472277017862768
" ], "text/plain": [ "#\n", " a b\n", " 0 0 0.24387830\n", " 1 1 0.73640839\n", " 2 2 0.04580642\n", " 3 3 0.85039775\n", " 4 4 0.34297030\n", " 5 5 0.25151658\n", " 6 6 0.13806340\n", " 7 7 0.99047139\n", " 8 8 0.09006319\n", " 9 9 0.29625338\n", " 10 10 0.48694450\n", " 11 11 0.26094495\n", " 12 12 0.47916845\n", " 13 13 0.53784245\n", " 14 14 0.93693648\n", " ... ... ..." ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = Daru::DataFrame.new({\n", " a: Array.new(100) {|i| i}, \n", " b: 100.times.map{rand}\n", "})\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "#\n", " a b\n", " 0 0 0.24387830\n", " 1 1 0.73640839\n", " 2 2 0.04580642\n", " 3 3 0.85039775\n", " 4 4 0.34297030\n", " 5 5 0.25151658\n", " 6 6 0.13806340\n", " 7 7 0.99047139\n", " 8 8 0.09006319\n", " 9 9 0.29625338\n", " 10 10 0.48694450\n", " 11 11 0.26094495\n", " 12 12 0.47916845\n", " 13 13 0.53784245\n", " 14 14 0.93693648\n", " ... ... ..., @options={:type=>:scatter, :x=>:a, :y=>:b}, @adapter=Daru::View::Adapter::NyaplotAdapter, @chart=#[#:scatter, :options=>{:x=>:a, :y=>:b}, :data=>\"194f5b87-62fe-4d5d-b400-10bb90a34746\"}, @xrange=[0, 99], @yrange=[0.004754053061438501, 0.9940970174718221]>], :options=>{}}>>" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "scatter_1 = Daru::View::Plot.new(df, type: :scatter, x: :a, y: :b)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#[#:scatter, :options=>{:x=>:a, :y=>:b}, :data=>\"194f5b87-62fe-4d5d-b400-10bb90a34746\"}, @xrange=[0, 99], @yrange=[0.004754053061438501, 0.9940970174718221]>], :options=>{:zoom=>true, :width=>700, :xrange=>[0, 99], :yrange=>[0.004754053061438501, 0.9940970174718221]}}>], :data=>{\"194f5b87-62fe-4d5d-b400-10bb90a34746\"=>#0, :b=>0.24387830585378023}, {:a=>1, :b=>0.7364083916949039}, {:a=>2, :b=>0.045806423951191166}, {:a=>3, :b=>0.8503977568601644}, {:a=>4, :b=>0.3429703076234011}, {:a=>5, :b=>0.25151658306670177}, {:a=>6, :b=>0.13806340225375935}, {:a=>7, :b=>0.9904713904406061}, {:a=>8, :b=>0.09006319661808859}, {:a=>9, :b=>0.29625338363152565}, {:a=>10, :b=>0.48694450801983535}, {:a=>11, :b=>0.26094495175555543}, {:a=>12, :b=>0.47916845960425714}, {:a=>13, :b=>0.5378424568152994}, {:a=>14, :b=>0.936936480590333}, {:a=>15, :b=>0.4836656237345066}, {:a=>16, :b=>0.5485818395800696}, {:a=>17, :b=>0.3219304166746563}, {:a=>18, :b=>0.29705634962739746}, {:a=>19, :b=>0.39433310276899514}, {:a=>20, :b=>0.20973357195190911}, {:a=>21, :b=>0.5343820015458812}, {:a=>22, :b=>0.3672381331260772}, {:a=>23, :b=>0.2784173351688527}, {:a=>24, :b=>0.8636423920279024}, {:a=>25, :b=>0.27121403960690593}, {:a=>26, :b=>0.10419720077465422}, {:a=>27, :b=>0.24052633538219703}, {:a=>28, :b=>0.4110019094652734}, {:a=>29, :b=>0.7803357210732309}, {:a=>30, :b=>0.48560625889991293}, {:a=>31, :b=>0.30852678599550787}, {:a=>32, :b=>0.6071191039298149}, {:a=>33, :b=>0.2587905314952228}, {:a=>34, :b=>0.06717066388202075}, {:a=>35, :b=>0.6890390846373681}, {:a=>36, :b=>0.32743925979505195}, {:a=>37, :b=>0.9503145314211032}, {:a=>38, :b=>0.9418546541979249}, {:a=>39, :b=>0.38313415816598495}, {:a=>40, :b=>0.30113383604426114}, {:a=>41, :b=>0.8435305595032618}, {:a=>42, :b=>0.9351661543651039}, {:a=>43, :b=>0.3990177321889622}, {:a=>44, :b=>0.004754053061438501}, {:a=>45, :b=>0.648495022830432}, {:a=>46, :b=>0.49378827108445644}, {:a=>47, :b=>0.9417134580915654}, {:a=>48, :b=>0.9294224827537366}, {:a=>49, :b=>0.39421270824183585}, {:a=>50, :b=>0.1141809934572402}, {:a=>51, :b=>0.49772418797855}, {:a=>52, :b=>0.9720709271930512}, {:a=>53, :b=>0.8679243221109741}, {:a=>54, :b=>0.9529724130434045}, {:a=>55, :b=>0.0880942435477825}, {:a=>56, :b=>0.8879846628935797}, {:a=>57, :b=>0.48325701655086584}, {:a=>58, :b=>0.8017023531040474}, {:a=>59, :b=>0.2047184955033845}, {:a=>60, :b=>0.8178358411831732}, {:a=>61, :b=>0.9518670508983686}, {:a=>62, :b=>0.3092148898223893}, {:a=>63, :b=>0.6056208855755549}, {:a=>64, :b=>0.7099170758154227}, {:a=>65, :b=>0.3829993715084793}, {:a=>66, :b=>0.31900774621484085}, {:a=>67, :b=>0.07352026787763255}, {:a=>68, :b=>0.8051729008068453}, {:a=>69, :b=>0.04551640342823615}, {:a=>70, :b=>0.5726094065932035}, {:a=>71, :b=>0.008886590185564702}, {:a=>72, :b=>0.7716723153468592}, {:a=>73, :b=>0.33352315494209084}, {:a=>74, :b=>0.9450261051751211}, {:a=>75, :b=>0.08865673154111964}, {:a=>76, :b=>0.7770757820695727}, {:a=>77, :b=>0.24607002429237568}, {:a=>78, :b=>0.725926780010414}, {:a=>79, :b=>0.6164289193305184}, {:a=>80, :b=>0.14679357975184426}, {:a=>81, :b=>0.2390497192730694}, {:a=>82, :b=>0.045376965955234216}, {:a=>83, :b=>0.35179847484189575}, {:a=>84, :b=>0.6735261738788361}, {:a=>85, :b=>0.16787838553516932}, {:a=>86, :b=>0.3336790810009872}, {:a=>87, :b=>0.9255953533938671}, {:a=>88, :b=>0.798146482857892}, {:a=>89, :b=>0.2996652157069728}, {:a=>90, :b=>0.38370292411260365}, {:a=>91, :b=>0.3336610577896927}, {:a=>92, :b=>0.9940970174718221}, {:a=>93, :b=>0.07265894600725109}, {:a=>94, :b=>0.5306834164743245}, {:a=>95, :b=>0.4859094002424327}, {:a=>96, :b=>0.7620860413065794}, {:a=>97, :b=>0.9757120311485877}, {:a=>98, :b=>0.37013474339517993}, {:a=>99, :b=>0.3472277017862768}]>}, :extension=>[]}>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "scatter_1.show_in_iruby" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just specifying the options to plot yields a very simple graph without much customization.\n", "\n", "But what if you want to enhance your scatter plot with colors, add tooltips for each point and change the label of the X and Y axes. Also you may be faced with a situation where you want to see two different scatter plots on the same graph, each with a different color.\n", "\n", "All this can be done by combining #plot with a block. The #plot method yields the corresponding Nyaplot::Plot and Nyaplot::Diagram objects for the graph, which can be used for many varied customizations. Lets see some examples:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ " Daru::DataFrame(10x4) \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", "\n", "
temperaturesalescitystaff
030.4350Pune15
123.5150Delhi20
244.5500Pune15
320.3200Delhi20
434480Pune15
524250Delhi20
631.45330Pune15
728.34400Delhi20
837420Pune15
924560Delhi20
" ], "text/plain": [ "#\n", " temperatur sales city staff\n", " 0 30.4 350 Pune 15\n", " 1 23.5 150 Delhi 20\n", " 2 44.5 500 Pune 15\n", " 3 20.3 200 Delhi 20\n", " 4 34 480 Pune 15\n", " 5 24 250 Delhi 20\n", " 6 31.45 330 Pune 15\n", " 7 28.34 400 Delhi 20\n", " 8 37 420 Pune 15\n", " 9 24 560 Delhi 20" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# DataFrame denoting Ice Cream sales of a particular food chain in a city\n", "# according to the maximum recorded temperature in that city. It also lists\n", "# the staff strength present in each city.\n", "\n", "df = Daru::DataFrame.new({\n", " :temperature => [30.4, 23.5, 44.5, 20.3, 34, 24, 31.45, 28.34, 37, 24],\n", " :sales => [350, 150, 500, 200, 480, 250, 330, 400, 420, 560],\n", " :city => ['Pune', 'Delhi']*5,\n", " :staff => [15,20]*5\n", " })\n", "df" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:scatter, :options=>{:x=>:temperature, :y=>:sales, :tooltip_contents=>[:city, :staff], :color=>#, :fill_by=>:city, :shape_by=>:city}, :data=>\"c1c98e5c-7202-4e6d-baa5-999ebf20d65b\"}, @xrange=[20.3, 44.5], @yrange=[150, 560]>], :options=>{:x_label=>\"Temperature\", :y_label=>\"Sales\", :yrange=>[100, 600], :xrange=>[15, 50], :zoom=>true, :width=>700}}>" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Generating a scatter plot with tool tips, colours and different shapes.\n", "scatter_2 = Daru::View::Plot.new(df, type: :scatter, x: :temperature, y: :sales).chart\n", "scatter_2.tap do |plot, diagram|\n", " plot.x_label \"Temperature\"\n", " plot.y_label \"Sales\"\n", " plot.yrange [100, 600]\n", " plot.xrange [15, 50]\n", " plot.diagrams[0].tooltip_contents([:city, :staff])\n", " plot.diagrams[0].color(Nyaplot::Colors.qual) # set the color scheme for this diagram. See Nyaplot::Colors for more info.\n", " plot.diagrams[0].fill_by(:city) # Change color of each point WRT to the city that it belongs to.\n", " plot.diagrams[0].shape_by(:city) # Shape each point WRT to the city that it belongs to.\n", "end\n", "\n", "# Move the mouse pointer over the points to see the tool tips." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[#:scatter, :options=>{:x=>:temperature, :y=>:sales, :tooltip_contents=>[:city, :staff], :color=>#, :fill_by=>:city, :shape_by=>:city}, :data=>\"c1c98e5c-7202-4e6d-baa5-999ebf20d65b\"}, @xrange=[20.3, 44.5], @yrange=[150, 560]>]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Array of diagrams\n", "scatter_2.diagrams" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Bar Graph\n", "Generating a bar graph requires passing `:bar` into the `:type` option." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ " Daru::DataFrame(5x2) \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", "\n", "
nameage
3Shivaji Maharaj53
2Rana Pratap57
4Krishnadevaraya58
1Akbar The Great63
0Emperor Asoka72
" ], "text/plain": [ "#\n", " name age\n", " 3 Shivaji Ma 53\n", " 2 Rana Prata 57\n", " 4 Krishnadev 58\n", " 1 Akbar The 63\n", " 0 Emperor As 72" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# A Bar Graph denoting the age at which various Indian Kings died.\n", "\n", "df = Daru::DataFrame.new({\n", " name: ['Emperor Asoka', 'Akbar The Great', 'Rana Pratap', 'Shivaji Maharaj', 'Krishnadevaraya'],\n", " age: [72,63,57,53,58] \n", " }, order: [:name, :age])\n", "\n", "df.sort!([:age])" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:bar, :options=>{:x=>:name, :y=>:age}, :data=>\"668b8d58-69ad-475f-a5f4-5b72555ab9fd\"}, @xrange=[\"Shivaji Maharaj\", \"Rana Pratap\", \"Krishnadevaraya\", \"Akbar The Great\", \"Emperor Asoka\"], @yrange=[0, 72]>], :options=>{:x_label=>\"Name\", :y_label=>\"Age\", :yrange=>[20, 80], :width=>700, :xrange=>[\"Shivaji Maharaj\", \"Rana Pratap\", \"Krishnadevaraya\", \"Akbar The Great\", \"Emperor Asoka\"]}}>" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Daru::View::Plot.new(df, type: :bar, x: :name, y: :age).chart.tap do |plot|\n", " plot.x_label \"Name\"\n", " plot.y_label \"Age\"\n", " plot.yrange [20,80]\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**It is also possible to simply pass in the `:x ` parameter if you want to the frequency of occurence of each element in a Vector.**" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "v : \n", "[\"C\", \"G\", \"C\", \"A\", \"G\", \"C\", \"A\", \"C\", \"T\", \"T\", \"A\", \"C\", \"C\", \"T\", \"T\", \"A\", \"T\", \"G\", \"A\", \"A\", \"G\", \"A\", \"C\", \"G\", \"G\", \"C\", \"T\", \"A\", \"A\", \"C\", \"C\", \"G\", \"T\", \"A\", \"C\", \"A\", \"G\", \"G\", \"C\", \"G\", \"C\", \"T\", \"A\", \"G\", \"G\", \"G\", \"C\", \"G\", \"A\", \"G\", \"G\", \"C\", \"C\", \"T\", \"G\", \"G\", \"A\", \"A\", \"A\", \"G\", \"G\", \"G\", \"G\", \"T\", \"G\", \"G\", \"A\", \"C\", \"T\", \"C\", \"G\", \"G\", \"C\", \"T\", \"C\", \"C\", \"C\", \"G\", \"G\", \"G\", \"T\", \"C\", \"A\", \"G\", \"C\", \"C\", \"A\", \"G\", \"A\", \"C\", \"T\", \"G\", \"C\", \"G\", \"A\", \"A\", \"C\", \"A\", \"T\", \"C\", \"G\", \"A\", \"G\", \"A\", \"T\", \"G\", \"C\", \"A\", \"T\", \"G\", \"T\", \"T\", \"T\", \"A\", \"C\", \"G\", \"C\", \"A\", \"T\", \"A\", \"C\", \"C\", \"A\", \"A\", \"G\", \"G\", \"G\", \"C\", \"T\", \"T\", \"C\", \"G\", \"C\", \"G\", \"G\", \"A\", \"A\", \"C\", \"A\", \"A\", \"T\", \"G\", \"A\", \"G\", \"T\", \"T\", \"C\", \"G\", \"C\", \"A\", \"A\", \"G\", \"T\", \"C\", \"A\", \"A\", \"A\", \"A\", \"G\", \"T\", \"G\", \"A\", \"T\", \"A\", \"A\", \"G\", \"A\", \"G\", \"G\", \"G\", \"T\", \"G\", \"C\", \"G\", \"G\", \"T\", \"G\", \"A\", \"A\", \"T\", \"T\", \"T\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"T\", \"A\", \"A\", \"C\", \"A\", \"A\", \"T\", \"G\", \"T\", \"G\", \"G\", \"C\", \"A\", \"A\", \"T\", \"T\", \"T\", \"C\", \"A\", \"C\", \"A\", \"G\", \"A\", \"T\", \"T\", \"T\", \"T\", \"C\", \"T\", \"A\", \"G\", \"G\", \"T\", \"A\", \"G\", \"T\", \"G\", \"G\", \"A\", \"G\", \"T\", \"A\", \"A\", \"A\", \"T\", \"C\", \"A\", \"C\", \"C\", \"G\", \"G\", \"T\", \"G\", \"G\", \"T\", \"T\", \"C\", \"C\", \"C\", \"G\", \"T\", \"A\", \"T\", \"T\", \"T\", \"T\", \"C\", \"T\", \"A\", \"A\", \"G\", \"G\", \"C\", \"G\", \"A\", \"G\", \"A\", \"G\", \"G\", \"C\", \"G\", \"A\", \"A\", \"T\", \"A\", \"T\", \"A\", \"G\", \"A\", \"C\", \"T\", \"A\", \"A\", \"C\", \"C\", \"T\", \"T\", \"T\", \"T\", \"C\", \"A\", \"T\", \"T\", \"G\", \"A\", \"G\", \"A\", \"A\", \"T\", \"T\", \"G\", \"A\", \"T\", \"C\", \"C\", \"T\", \"C\", \"A\", \"T\", \"A\", \"A\", \"T\", \"T\", \"G\", \"T\", \"C\", \"G\", \"C\", \"A\", \"G\", \"C\", \"C\", \"C\", \"A\", \"C\", \"G\", \"T\", \"T\", \"C\", \"G\", \"C\", \"G\", \"A\", \"C\", \"G\", \"C\", \"T\", \"T\", \"A\", \"G\", \"T\", \"G\", \"A\", \"A\", \"G\", \"A\", \"C\", \"T\", \"C\", \"T\", \"C\", \"A\", \"T\", \"T\", \"A\", \"C\", \"T\", \"G\", \"A\", \"C\", \"G\", \"C\", \"G\", \"T\", \"G\", \"T\", \"C\", \"A\", \"C\", \"C\", \"T\", \"C\", \"G\", \"A\", \"G\", \"C\", \"T\", \"C\", \"T\", \"G\", \"C\", \"T\", \"A\", \"C\", \"C\", \"C\", \"A\", \"G\", \"T\", \"T\", \"T\", \"G\", \"T\", \"A\", \"T\", \"A\", \"C\", \"T\", \"C\", \"G\", \"A\", \"T\", \"C\", \"C\", \"A\", \"G\", \"T\", \"T\", \"T\", \"T\", \"C\", \"C\", \"T\", \"A\", \"A\", \"T\", \"T\", \"T\", \"T\", \"T\", \"C\", \"T\", \"G\", \"A\", \"C\", \"C\", \"A\", \"G\", \"A\", \"T\", \"C\", \"C\", \"A\", \"G\", \"C\", \"C\", \"G\", \"C\", \"A\", \"G\", \"T\", \"A\", \"C\", \"A\", \"C\", \"C\", \"G\", \"A\", \"G\", \"C\", \"G\", \"A\", \"T\", \"C\", \"A\", \"A\", \"C\", \"C\", \"A\", \"A\", \"T\", \"C\", \"C\", \"T\", \"G\", \"C\", \"T\", \"T\", \"A\", \"C\", \"C\", \"G\", \"C\", \"A\", \"T\", \"T\", \"G\", \"T\", \"T\", \"T\", \"T\", \"G\", \"A\", \"T\", \"G\", \"T\", \"G\", \"T\", \"G\", \"T\", \"T\", \"T\", \"G\", \"C\", \"T\", \"C\", \"G\", \"G\", \"T\", \"C\", \"T\", \"C\", \"G\", \"T\", \"A\", \"A\", \"C\", \"C\", \"G\", \"A\", \"A\", \"A\", \"G\", \"T\", \"G\", \"A\", \"A\", \"T\", \"T\", \"T\", \"G\", \"A\", \"A\", \"T\", \"T\", \"G\", \"T\", \"C\", \"G\", \"T\", \"T\", \"A\", \"C\", \"T\", \"A\", \"C\", \"C\", \"T\", \"A\", \"T\", \"A\", \"C\", \"T\", \"G\", \"T\", \"A\", \"T\", \"T\", \"C\", \"G\", \"A\", \"T\", \"T\", \"T\", \"T\", \"A\", \"T\", \"A\", \"G\", \"A\", \"G\", \"T\", \"A\", \"C\", \"T\", \"G\", \"T\", \"T\", \"T\", \"A\", \"G\", \"A\", \"G\", \"G\", \"C\", \"C\", \"A\", \"T\", \"A\", \"A\", \"G\", \"C\", \"G\", \"G\", \"C\", \"C\", \"C\", \"T\", \"C\", \"G\", \"A\", \"C\", \"T\", \"A\", \"A\", \"A\", \"A\", \"C\", \"T\", \"T\", \"T\", \"C\", \"G\", \"C\", \"C\", \"C\", \"A\", \"T\", \"C\", \"A\", \"A\", \"G\", \"G\", \"A\", \"A\", \"A\", \"T\", \"T\", \"C\", \"G\", \"G\", \"C\", \"G\", \"G\", \"G\", \"T\", \"A\", \"T\", \"C\", \"C\", \"T\", \"A\", \"T\", \"A\", \"T\", \"G\", \"G\", \"A\", \"C\", \"G\", \"G\", \"A\", \"T\", \"C\", \"T\", \"T\", \"T\", \"C\", \"T\", \"C\", \"G\", \"A\", \"C\", \"A\", \"C\", \"T\", \"A\", \"C\", \"A\", \"A\", \"T\", \"T\", \"A\", \"G\", \"C\", \"A\", \"T\", \"T\", \"G\", \"C\", \"A\", \"T\", \"T\", \"T\", \"C\", \"T\", \"T\", \"A\", \"A\", \"G\", \"G\", \"A\", \"C\", \"A\", \"G\", \"G\", \"T\", \"G\", \"C\", \"T\", \"T\", \"A\", \"C\", \"A\", \"C\", \"T\", \"C\", \"G\", \"A\", \"G\", \"T\", \"A\", \"G\", \"T\", \"A\", \"C\", \"C\", \"C\", \"A\", \"G\", \"T\", \"G\", \"T\", \"G\", \"C\", \"G\", \"A\", \"A\", \"G\", \"A\", \"A\", \"G\", \"C\", \"C\", \"A\", \"G\", \"T\", \"G\", \"A\", \"T\", \"T\", \"G\", \"C\", \"A\", \"T\", \"A\", \"T\", \"C\", \"C\", \"A\", \"G\", \"T\", \"C\", \"G\", \"G\", \"T\", \"T\", \"T\", \"A\", \"C\", \"G\", \"A\", \"G\", \"G\", \"C\", \"A\", \"C\", \"A\", \"G\", \"A\", \"G\", \"C\", \"T\", \"T\", \"C\", \"A\", \"C\", \"C\", \"T\", \"C\", \"G\", \"C\", \"A\", \"T\", \"C\", \"T\", \"C\", \"C\", \"G\", \"G\", \"G\", \"G\", \"G\", \"A\", \"G\", \"C\", \"T\", \"G\", \"A\", \"A\", \"C\", \"T\", \"T\", \"T\", \"G\", \"G\", \"G\", \"G\", \"G\", \"A\", \"T\", \"T\", \"T\", \"C\", \"C\", \"C\", \"T\", \"C\", \"C\", \"G\", \"C\", \"A\", \"C\", \"C\", \"C\", \"C\", \"T\", \"T\", \"T\", \"T\", \"A\", \"A\", \"T\", \"G\", \"T\", \"C\", \"A\", \"G\", \"T\", \"C\", \"A\", \"G\", \"A\", \"A\", \"T\", \"G\", \"G\", \"T\", \"A\", \"T\", \"T\", \"A\", \"T\", \"C\", \"T\", \"T\", \"T\", \"T\", \"C\", \"T\", \"A\", \"C\", \"G\", \"G\", \"A\", \"C\", \"G\", \"G\", \"T\", \"T\", \"C\", \"C\", \"A\", \"T\", \"C\", \"A\", \"C\", \"G\", \"A\", \"G\", \"C\", \"C\", \"G\", \"T\", \"A\", \"C\", \"C\", \"A\", \"T\", \"C\", \"C\", \"A\", \"A\", \"T\", \"T\", \"G\", \"A\", \"T\", \"G\", \"A\", \"C\", \"T\", \"A\", \"C\", \"G\", \"C\", \"C\", \"T\", \"C\", \"C\", \"G\", \"A\", \"G\", \"G\", \"A\", \"C\", \"T\", \"C\", \"C\", \"T\", \"T\", \"G\", \"T\", \"A\", \"T\", \"A\", \"A\", \"G\", \"T\", \"G\", \"C\", \"G\", \"C\", \"C\", \"A\", \"T\", \"T\", \"T\", \"C\", \"G\", \"A\", \"T\", \"T\", \"C\", \"T\", \"G\", \"A\", \"A\", \"T\", \"A\", \"G\", \"C\", \"T\", \"C\", \"A\", \"A\", \"A\", \"C\", \"A\", \"C\", \"G\", \"T\", \"C\", \"G\", \"T\", \"T\", \"A\", \"T\", \"A\", \"A\", \"C\", \"A\", \"G\", \"C\", \"A\", \"A\", \"C\", \"C\", \"T\", \"A\", \"C\", \"G\", \"T\", \"T\", \"G\", \"C\", \"G\", \"G\", \"C\", \"C\", \"T\", \"C\", \"T\", \"C\", \"C\", \"T\", \"C\", \"A\", \"A\", \"T\", \"T\", \"A\", \"G\", \"G\", \"A\", \"A\", \"C\", \"T\", \"C\", \"C\", \"C\", \"G\"]\n" ] }, { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:bar, :options=>{:value=>:a}, :data=>\"dc7f6d84-6ca4-4a45-baf2-1935c0ca8d1f\"}, @xrange=[\"C\", \"G\", \"A\", \"T\"], @yrange=[0, 1000]>], :options=>{:yrange=>[0, 350], :y_label=>\"Frequency\", :x_label=>\"Letter\", :width=>700, :xrange=>[\"C\", \"G\", \"A\", \"T\"]}}>" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = ['A', 'C', 'G', 'T']\n", "v = 1000.times.map { a.sample }\n", "\n", "puts \"v : \", v\n", "\n", "df = Daru::DataFrame.new({\n", " a: v\n", " })\n", "Daru::View::Plot.new(df, type: :bar, x: :a).chart.tap do |plot|\n", " plot.yrange [0,350]\n", " plot.y_label \"Frequency\"\n", " plot.x_label \"Letter\"\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Box Plots\n", "\n", "A box plot can be generated of the numerical vectors in the DataFrame by simply passing `:box` to the `:type` argument.\n", "\n", "To demonstrate, I'll prepare some data using the distribution gem to get a bunch of normally distributed random variables. We'll then plot in a Box plot after creating a DataFrame with the data." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#[#:box, :options=>{:value=>[:a, :b, :c, :d]}, :data=>\"38c051b5-0cba-47e1-98bb-fed02986f0b1\"}, @xrange=[:a, :b, :c, :d], @yrange=[-5.8301257058746705, 5.051412172426184]>], :options=>{:width=>700, :xrange=>[:a, :b, :c, :d], :yrange=>[-5.8301257058746705, 5.051412172426184]}}>], :data=>{\"38c051b5-0cba-47e1-98bb-fed02986f0b1\"=>#0.0067508446580879684, :b=>-1.9915614441773901, :c=>0.30742592912389677, :d=>0.30877609805551437}, {:a=>-2.3885551878356086, :b=>-4.98569398479451, :c=>-2.32741070661917, :d=>-2.8051217441862915}, {:a=>-0.13089500329157955, :b=>-2.1636187541144745, :c=>0.15601549637926249, :d=>0.12983649572094658}, {:a=>0.3123414213664613, :b=>-1.6095732232919233, :c=>0.6435755635031075, :d=>0.7060438477763997}, {:a=>-1.8214821260803982, :b=>-4.2768526576004975, :c=>-1.703630338688438, :d=>-2.067926763904518}, {:a=>0.03762984770297892, :b=>-1.9529626903712765, :c=>0.3413928324732768, :d=>0.3489188020138726}, {:a=>-0.8311730779681984, :b=>-3.038966347460248, :c=>-0.6142903857650184, :d=>-0.780525001358658}, {:a=>-0.6677158684793164, :b=>-2.8346448355991454, :c=>-0.43448745532724814, :d=>-0.5680306290231114}, {:a=>-0.6790096994178683, :b=>-2.8487621242723353, :c=>-0.4469106693596551, :d=>-0.5827126092432289}, {:a=>1.4261478871029254, :b=>-0.21731514112134342, :c=>1.868762675813218, :d=>2.153992253233803}, {:a=>0.2661912189698001, :b=>-1.66726097628775, :c=>0.5928103408667801, :d=>0.6460485846607401}, {:a=>-0.16930130791815542, :b=>-2.2116266348976943, :c=>0.11376856129002902, :d=>0.07990829970639793}, {:a=>-1.2766243232993553, :b=>-3.595780404124194, :c=>-1.1042867556292908, :d=>-1.359611620289162}, {:a=>0.8584971726047138, :b=>-0.9268785342441077, :c=>1.2443468898651853, :d=>1.416046324386128}, {:a=>1.13618908121974, :b=>-0.5797636484753252, :c=>1.549807989341714, :d=>1.777045805585662}, {:a=>-0.3705311521079498, :b=>-2.4631639401349372, :c=>-0.10758426731874482, :d=>-0.18169049774033474}, {:a=>-2.8355978955356136, :b=>-5.544497369419517, :c=>-2.8191576850891753, :d=>-3.386277264196298}, {:a=>-0.22563848793213584, :b=>-2.28204810991517, :c=>0.051797663274650546, :d=>0.006669965688223367}, {:a=>0.19582253499060642, :b=>-1.755221831261742, :c=>0.5154047884896671, :d=>0.5545692954877883}, {:a=>-0.19114095019010818, :b=>-2.2389261877376354, :c=>0.08974495479088096, :d=>0.05151676475285935}, {:a=>0.0774405560410611, :b=>-1.9031993049486737, :c=>0.3851846116451672, :d=>0.4006727228533794}, {:a=>-0.41291048473546665, :b=>-2.5161381059193335, :c=>-0.15420153320901336, :d=>-0.23678363015610665}, {:a=>-0.09087558552649998, :b=>-2.113594481908125, :c=>0.20003685592085002, :d=>0.18186173881555}, {:a=>-0.060484172074049464, :b=>-2.075605215092562, :c=>0.23346741071854557, :d=>0.2213705763037357}, {:a=>0.6375229937154654, :b=>-1.2030962578556683, :c=>1.001275293087012, :d=>1.128779891830105}, {:a=>0.5375023166242849, :b=>-1.3281221042196438, :c=>0.8912525482867135, :d=>0.9987530116115704}, {:a=>0.312017039732815, :b=>-1.6099787003339812, :c=>0.6432187437060966, :d=>0.7056221516526595}, {:a=>-1.4330963514708444, :b=>-3.7913704393385554, :c=>-1.276405986617929, :d=>-1.5630252569120977}, {:a=>0.8460234703433589, :b=>-0.9424706620708014, :c=>1.230625817377695, :d=>1.3998305114463667}, {:a=>0.4023915085462053, :b=>-1.4970106143172432, :c=>0.7426306594008258, :d=>0.8231089611100668}, {:a=>0.3924810648046226, :b=>-1.5093986689942218, :c=>0.7317291712850849, :d=>0.8102253842460094}, {:a=>0.7215671135292959, :b=>-1.0980411080883803, :c=>1.0937238248822256, :d=>1.2380372475880848}, {:a=>0.6098832723801263, :b=>-1.2376459095248422, :c=>0.970871599618139, :d=>1.0928482540941642}, {:a=>1.7756234222706677, :b=>0.21952927783833465, :c=>2.2531857644977347, :d=>2.608310448951868}, {:a=>0.4968265542712936, :b=>-1.3789668071608832, :c=>0.846509209698423, :d=>0.9458745205526817}, {:a=>1.797750651423788, :b=>0.24718831427973464, :c=>2.277525716566167, :d=>2.6370758468509243}, {:a=>1.138876171741927, :b=>-0.5764047853225915, :c=>1.5527637889161197, :d=>1.780539023264505}, {:a=>1.230236842054141, :b=>-0.46220394743232385, :c=>1.6532605262595552, :d=>1.8993078946703834}, {:a=>0.9185683894403015, :b=>-0.8517895131996231, :c=>1.3104252283843318, :d=>1.494138906272392}, {:a=>0.18291245010636092, :b=>-1.771359437367049, :c=>0.501203695116997, :d=>0.5377861851382693}, {:a=>-1.6552382124822507, :b=>-4.069047765602813, :c=>-1.520762033730476, :d=>-1.851809676226926}, {:a=>-0.412451468868439, :b=>-2.5155643360855486, :c=>-0.15369661575528293, :d=>-0.23618690952897065}, {:a=>-0.8831409171563188, :b=>-3.1039261464453984, :c=>-0.6714550088719509, :d=>-0.8480831923032144}, {:a=>0.2398360742789314, :b=>-1.7002049071513357, :c=>0.5638196817068246, :d=>0.6117868965626108}, {:a=>2.2526732502011266, :b=>0.815841562751408, :c=>2.777940575221239, :d=>3.2284752252614646}, {:a=>-0.3159186856448258, :b=>-2.3948983570560323, :c=>-0.04751055420930839, :d=>-0.11069429133827352}, {:a=>-0.4276802473864921, :b=>-2.534600309233115, :c=>-0.17044827212514135, :d=>-0.2559843216024397}, {:a=>-0.08414524472451725, :b=>-2.1051815559056464, :c=>0.207440230803031, :d=>0.19061118185812756}, {:a=>-1.2965923685716505, :b=>-3.620740460714563, :c=>-1.1262516054288156, :d=>-1.3855700791431456}, {:a=>1.308286037651854, :b=>-0.3646424529351826, :c=>1.7391146414170395, :d=>2.00077184894741}, {:a=>-0.5270980775495808, :b=>-2.658872596936976, :c=>-0.279807885304539, :d=>-0.38522750081445506}, {:a=>0.13588174540315437, :b=>-1.830147818246057, :c=>0.4494699199434698, :d=>0.4766462690241007}, {:a=>-0.3650373220852564, :b=>-2.4562966526065706, :c=>-0.10154105429378207, :d=>-0.17454851871083338}, {:a=>-0.2993695276564011, :b=>-2.3742119095705014, :c=>-0.02930648042204126, :d=>-0.0891803859533215}, {:a=>0.3068995650767718, :b=>-1.6163755436540352, :c=>0.6375895215844489, :d=>0.6989694345998033}, {:a=>-0.12980413212109582, :b=>-2.16225516515137, :c=>0.15721545466679457, :d=>0.13125462824257542}, {:a=>-0.10679393060934167, :b=>-2.1334924132616773, :c=>0.18252667632972414, :d=>0.16116789020785582}, {:a=>0.6387630150706487, :b=>-1.2015462311616891, :c=>1.0026393165777137, :d=>1.1303919195918433}, {:a=>-1.3294737116936812, :b=>-3.6618421396171015, :c=>-1.1624210828630495, :d=>-1.4283158252017856}, {:a=>0.23236488182340517, :b=>-1.7095438977207436, :c=>0.5556013700057457, :d=>0.6020743463704268}, {:a=>-1.6239511206021258, :b=>-4.029938900752657, :c=>-1.4863462326623385, :d=>-1.8111364567827637}, {:a=>-0.46416478708640324, :b=>-2.5802059838580043, :c=>-0.2105812657950436, :d=>-0.3034142232123242}, {:a=>1.2452205766886806, :b=>-0.4434742791391493, :c=>1.6697426343575488, :d=>1.9187867496952848}, {:a=>0.17876320094624662, :b=>-1.7765459988171917, :c=>0.4966395210408713, :d=>0.5323921612301206}, {:a=>0.6558446945511911, :b=>-1.1801941318110112, :c=>1.0214291640063102, :d=>1.1525981029165484}, {:a=>0.7013642028636742, :b=>-1.1232947464204073, :c=>1.0715006231500417, :d=>1.2117734637227764}, {:a=>1.363366306055298, :b=>-0.2957921174308775, :c=>1.7997029366608281, :d=>2.0723761978718875}, {:a=>0.48819954478272515, :b=>-1.3897505690215937, :c=>0.8370194992609976, :d=>0.9346594082175428}, {:a=>-0.05546005571138266, :b=>-2.0693250696392282, :c=>0.23899393871747907, :d=>0.22790192757520253}, {:a=>1.4267148516430852, :b=>-0.21660643544614366, :c=>1.869386336807394, :d=>2.154729307136011}, {:a=>-1.1849291719656967, :b=>-3.481161464957121, :c=>-1.0034220891622665, :d=>-1.2404079235554057}, {:a=>-0.8292327366434392, :b=>-3.036540920804299, :c=>-0.6121560103077832, :d=>-0.7780025576364711}, {:a=>0.7924010737793376, :b=>-1.0094986577758283, :c=>1.1716411811572713, :d=>1.3301213959131388}, {:a=>0.699094690743104, :b=>-1.12613163657112, :c=>1.0690041598174145, :d=>1.2088230979660353}, {:a=>0.5361730000147726, :b=>-1.3297837499815341, :c=>0.8897903000162499, :d=>0.9970249000192044}, {:a=>2.3554919152754104, :b=>0.9443648940942628, :c=>2.8910411068029513, :d=>3.3621394898580332}, {:a=>0.15459650706565933, :b=>-1.806754366167926, :c=>0.47005615777222526, :d=>0.5009754591853571}, {:a=>0.9599746433448891, :b=>-0.8000316958188887, :c=>1.3559721076793783, :d=>1.547967036348356}, {:a=>-0.1218566655746686, :b=>-2.1523208319683356, :c=>0.16595766786786453, :d=>0.1415863347529308}, {:a=>-0.6956932700651808, :b=>-2.869616587581476, :c=>-0.465262597071699, :d=>-0.604401251084735}, {:a=>-0.5272558713173202, :b=>-2.65906983914665, :c=>-0.27998145844905226, :d=>-0.3854326327125163}, {:a=>0.7103653288395236, :b=>-1.1120433389505955, :c=>1.081401861723476, :d=>1.2234749274913808}, {:a=>-0.6568201364891751, :b=>-2.8210251706114686, :c=>-0.4225021501380927, :d=>-0.5538661774359277}, {:a=>1.280729165585475, :b=>-0.39908854301815655, :c=>1.7088020821440226, :d=>1.9649479152611176}, {:a=>0.7619957269910371, :b=>-1.0475053412612036, :c=>1.138195299690141, :d=>1.2905944450883482}, {:a=>-1.5598692365574336, :b=>-3.949836545696792, :c=>-1.415856160213177, :d=>-1.7278300075246638}, {:a=>0.5177830254715952, :b=>-1.352771218160506, :c=>0.8695613280187546, :d=>0.9731179331130737}, {:a=>-0.5016698691675591, :b=>-2.6270873364594487, :c=>-0.251836856084315, :d=>-0.35217082991782683}, {:a=>0.18671494896871768, :b=>-1.7666063137891028, :c=>0.5053864438655895, :d=>0.542729433659333}, {:a=>1.3382067528266068, :b=>-0.32724155896674145, :c=>1.7720274281092676, :d=>2.039668778674589}, {:a=>0.18094183260791677, :b=>-1.773822709240104, :c=>0.49903601586870844, :d=>0.5352243823902918}, {:a=>1.2438059405702198, :b=>-0.44524257428722547, :c=>1.668186534627242, :d=>1.9169477227412859}, {:a=>1.156780222526328, :b=>-0.5540247218420902, :c=>1.5724582447789608, :d=>1.8038142892842264}, {:a=>1.4864393211128955, :b=>-0.14195084860888074, :c=>1.935083253224185, :d=>2.232371117446764}, {:a=>-0.9260020023821864, :b=>-3.1575025029777333, :c=>-0.7186022026204051, :d=>-0.9038026030968425}, {:a=>0.489363277226223, :b=>-1.3882959034672213, :c=>0.8382996049488454, :d=>0.9361722603940899}, {:a=>-1.1234796921438814, :b=>-3.404349615179852, :c=>-0.9358276613582697, :d=>-1.1605235997870458}, {:a=>0.05892191543701853, :b=>-1.9263476057037268, :c=>0.36481410698072037, :d=>0.37659849006812407}, {:a=>-1.1644095292545849, :b=>-3.455511911568231, :c=>-0.9808504821800434, :d=>-1.2137323880309603}, {:a=>0.18586037675405084, :b=>-1.7676745290574365, :c=>0.5044464144294559, :d=>0.541618489780266}, {:a=>-0.10732392930401387, :b=>-2.1341549116300174, :c=>0.18194367776558473, :d=>0.16047889190478196}, {:a=>0.637658385188248, :b=>-1.20292701851469, :c=>1.001424223707073, :d=>1.1289559007447225}, {:a=>-0.49738404674301046, :b=>-2.621730058428763, :c=>-0.24712245141731154, :d=>-0.3465992607659136}, {:a=>-0.41305495199837794, :b=>-2.5163186899979726, :c=>-0.1543604471982158, :d=>-0.23697143759789135}, {:a=>0.2089876754724838, :b=>-1.7387654056593953, :c=>0.5298864430197322, :d=>0.5716839781142289}, {:a=>-1.9688248079950994, :b=>-4.461031009993874, :c=>-1.8657072887946093, :d=>-2.2594722503936295}, {:a=>-0.4567392863694184, :b=>-2.570924107961773, :c=>-0.20241321500636028, :d=>-0.293761072280244}, {:a=>-0.6681368949412964, :b=>-2.8351711186766204, :c=>-0.43495058443542606, :d=>-0.5685779634236854}, {:a=>0.2627681771291272, :b=>-1.671539778588591, :c=>0.58904499484204, :d=>0.6415986302678653}, {:a=>0.1227098356543554, :b=>-1.8466127054320558, :c=>0.4349808192197909, :d=>0.459522786350662}, {:a=>0.1846921722312805, :b=>-1.7691347847108994, :c=>0.5031613894544086, :d=>0.5400998239006647}, {:a=>0.12380990478606282, :b=>-1.8452376190174216, :c=>0.43619089526466914, :d=>0.46095287622188164}, {:a=>1.480970291327473, :b=>-0.14878713584065895, :c=>1.9290673204602204, :d=>2.225261378725715}, {:a=>-0.16961436928729878, :b=>-2.2120179616091233, :c=>0.11342419378397131, :d=>0.07950131992651158}, {:a=>0.6247590164508825, :b=>-1.2190512294363969, :c=>0.9872349180959707, :d=>1.1121867213861472}, {:a=>0.23305413617803475, :b=>-1.7086823297774565, :c=>0.5563595497958382, :d=>0.6029703770314452}, {:a=>-0.6444956723646387, :b=>-2.805619590455798, :c=>-0.4089452396011026, :d=>-0.5378443740740304}, {:a=>0.9698060033544418, :b=>-0.7877424958069479, :c=>1.3667866036898861, :d=>1.5607478043607743}, {:a=>1.0823515502560306, :b=>-0.6470605621799619, :c=>1.4905867052816337, :d=>1.70705701533284}, {:a=>0.3613314859332875, :b=>-1.5483356425833907, :c=>0.6974646345266162, :d=>0.7697309317132738}, {:a=>0.64365277920546, :b=>-1.1954340259931748, :c=>1.008018057126006, :d=>1.136748612967098}, {:a=>0.39536031010406275, :b=>-1.5057996123699215, :c=>0.7348963411144691, :d=>0.8139684031352816}, {:a=>-2.4684165398634375, :b=>-5.085520674829297, :c=>-2.4152581938497817, :d=>-2.908941501822469}, {:a=>0.5678098173819027, :b=>-1.2902377282726216, :c=>0.924590799120093, :d=>1.0381527625964735}, {:a=>-0.6582040646800084, :b=>-2.82275508085001, :c=>-0.4240244711480093, :d=>-0.5556652840840108}, {:a=>-0.344148213245326, :b=>-2.4301852665566575, :c=>-0.07856303456985864, :d=>-0.14739267721892385}, {:a=>-0.19726331819675205, :b=>-2.24657914774594, :c=>0.0830103499835727, :d=>0.0435576863442223}, {:a=>1.1423723611241698, :b=>-0.5720345485947878, :c=>1.556609597236587, :d=>1.785084069461421}, {:a=>-0.5600525253569704, :b=>-2.700065656696213, :c=>-0.3160577778926675, :d=>-0.42806828296406146}, {:a=>0.4738333452314702, :b=>-1.4077083184606622, :c=>0.8212166797546172, :d=>0.9159833488009113}, {:a=>-0.44536749725753233, :b=>-2.556709371571915, :c=>-0.18990424698328562, :d=>-0.27897774643479206}, {:a=>0.36806433143478084, :b=>-1.539919585706524, :c=>0.7048707645782589, :d=>0.7784836308652151}, {:a=>-1.0454754843990026, :b=>-3.306844355498753, :c=>-0.8500230328389029, :d=>-1.0591181297187033}, {:a=>1.4096329604690483, :b=>-0.2379587994136898, :c=>1.8505962565159533, :d=>2.1325228486097627}, {:a=>0.28392978530189644, :b=>-1.6450877683726295, :c=>0.6123227638320861, :d=>0.6691087208924653}, {:a=>-1.286994718056595, :b=>-3.608743397570744, :c=>-1.1156941898622545, :d=>-1.3730931334735736}, {:a=>-0.014706516521799537, :b=>-2.0183831456522494, :c=>0.28382283182602047, :d=>0.2808815285216606}, {:a=>-1.161132992011698, :b=>-3.4514162400146224, :c=>-0.9772462912128679, :d=>-1.2094728896152074}, {:a=>0.16989078915276143, :b=>-1.7876365135590482, :c=>0.48687986806803757, :d=>0.5208580258985899}, {:a=>1.3715701335616775, :b=>-0.2855373330479032, :c=>1.8087271469178454, :d=>2.0830411736301806}, {:a=>0.10013755923640597, :b=>-1.8748280509544926, :c=>0.41015131516004655, :d=>0.43017882700732774}, {:a=>-0.44303108558871274, :b=>-2.553788856985891, :c=>-0.18733419414758407, :d=>-0.2759404112653266}, {:a=>0.9243539205938175, :b=>-0.8445575992577281, :c=>1.3167893126531993, :d=>1.5016600967719629}, {:a=>0.7296814544757985, :b=>-1.087898181905252, :c=>1.1026495999233783, :d=>1.248585890818538}, {:a=>0.6392083852214365, :b=>-1.2009895184732042, :c=>1.0031292237435803, :d=>1.1309709007878674}, {:a=>0.2472080513989796, :b=>-1.6909899357512754, :c=>0.5719288565388776, :d=>0.6213704668186735}, {:a=>1.1664994317892685, :b=>-0.5418757102634144, :c=>1.5831493749681955, :d=>1.8164492613260492}, {:a=>-1.3603957296907387, :b=>-3.7004946621134236, :c=>-1.1964353026598127, :d=>-1.4685144485979604}, {:a=>-1.3478793370474125, :b=>-3.6848491713092653, :c=>-1.1826672707521537, :d=>-1.4522431381616363}, {:a=>-0.9543983085345831, :b=>-3.1929978856682286, :c=>-0.7498381393880413, :d=>-0.940717801094958}, {:a=>-0.7971347444422743, :b=>-2.996418430552843, :c=>-0.5768482188865018, :d=>-0.7362751677749566}, {:a=>0.6371757119529249, :b=>-1.2035303600588438, :c=>1.0008932831482173, :d=>1.1283284255388024}, {:a=>-0.4114015413602604, :b=>-2.5142519267003256, :c=>-0.1525416954962865, :d=>-0.23482200376833856}, {:a=>-0.5886140433710924, :b=>-2.7357675542138655, :c=>-0.34747544770820166, :d=>-0.46519825638242013}, {:a=>0.11977763042542548, :b=>-1.8502779619682181, :c=>0.43175539346796804, :d=>0.4557109195530531}, {:a=>-0.1600431463627, :b=>-2.200053932953375, :c=>0.12395253900102995, :d=>0.09194390972848998}, {:a=>0.0180229179160546, :b=>-1.9774713526049317, :c=>0.31982520970766004, :d=>0.32342979329087096}, {:a=>-0.16925624153013363, :b=>-2.211570301912667, :c=>0.11381813431685298, :d=>0.07996688601082627}, {:a=>0.38955921931578735, :b=>-1.5130509758552657, :c=>0.728515141247366, :d=>0.8064269851105235}, {:a=>0.7274104764040825, :b=>-1.090736904494897, :c=>1.1001515240444908, :d=>1.2456336193253073}, {:a=>-1.0810388946354939, :b=>-3.351298618294367, :c=>-0.8891427840990433, :d=>-1.105350563026142}, {:a=>0.2189699472928909, :b=>-1.7262875658838863, :c=>0.54086694202218, :d=>0.5846609314807582}, {:a=>-0.41526261877612225, :b=>-2.5190782734701527, :c=>-0.15678888065373453, :d=>-0.2398414044089589}, {:a=>0.06808216541659674, :b=>-1.914897293229254, :c=>0.3748903819582564, :d=>0.38850681504157575}, {:a=>-0.9131600979969977, :b=>-3.1414501224962468, :c=>-0.7044761077966974, :d=>-0.887108127396097}, {:a=>-0.8667732487557203, :b=>-3.0834665609446503, :c=>-0.6534505736312923, :d=>-0.8268052233824363}, {:a=>-0.9478007438182873, :b=>-3.184750929772859, :c=>-0.7425808182001161, :d=>-0.9321409669637735}, {:a=>0.9485578102605419, :b=>-0.8143027371743228, :c=>1.343413591286596, :d=>1.5331251533387045}, {:a=>0.9515552925827109, :b=>-0.8105558842716114, :c=>1.346710821840982, :d=>1.5370218803575242}, {:a=>-0.09347983929109285, :b=>-2.116849799113866, :c=>0.19717217677979784, :d=>0.17847620892157928}, {:a=>-0.26100265822600016, :b=>-2.3262533227825, :c=>0.012897075951399772, :d=>-0.03930345569380023}, {:a=>-0.2658867299664799, :b=>-2.3323584124581, :c=>0.007524597036872083, :d=>-0.04565274895642385}, {:a=>-0.6471858610877671, :b=>-2.808982326359709, :c=>-0.4119044471965439, :d=>-0.5413416194140972}, {:a=>-0.619972908261004, :b=>-2.774966135326255, :c=>-0.38197019908710456, :d=>-0.5059647807393053}, {:a=>-0.6784774920120128, :b=>-2.848096865015016, :c=>-0.4463252412132141, :d=>-0.5820207396156167}, {:a=>0.4032661118306998, :b=>-1.4959173602116254, :c=>0.7435927230137698, :d=>0.8242459453799098}, {:a=>-0.2637781066257848, :b=>-2.329722633282231, :c=>0.00984408271163667, :d=>-0.04291153861352032}, {:a=>-0.32806925625221584, :b=>-2.41008657031527, :c=>-0.060876181877437485, :d=>-0.1264900331278806}, {:a=>0.6352533329934307, :b=>-1.2059333337582117, :c=>0.9987786662927738, :d=>1.12582933289146}, {:a=>-0.16109041401705657, :b=>-2.2013630175213206, :c=>0.12280054458123776, :d=>0.09058246177782645}, {:a=>0.6199016410372155, :b=>-1.2251229487034807, :c=>0.9818918051409371, :d=>1.10587213334838}, {:a=>-1.2788286548576544, :b=>-3.598535818572068, :c=>-1.10671152034342, :d=>-1.3624772513149508}, {:a=>-0.9797710060546504, :b=>-3.224713757568313, :c=>-0.7777481066601155, :d=>-0.9737023078710456}, {:a=>-1.2288515917321607, :b=>-3.536064489665201, :c=>-1.0517367509053768, :d=>-1.297507069251809}, {:a=>-1.1556907734460713, :b=>-3.444613466807589, :c=>-0.9712598507906784, :d=>-1.2023980054798926}, {:a=>0.8907861668675028, :b=>-0.8865172914156216, :c=>1.2798647835542531, :d=>1.4580220169277538}, {:a=>-1.264439873043166, :b=>-3.5805498413039576, :c=>-1.0908838603474829, :d=>-1.3437718349561159}, {:a=>1.0980604109595076, :b=>-0.6274244863006155, :c=>1.5078664520554586, :d=>1.72747853424736}, {:a=>-1.0064325488474717, :b=>-3.2580406860593394, :c=>-0.807075803732219, :d=>-1.0083623135017132}, {:a=>1.0692646744079346, :b=>-0.6634191569900818, :c=>1.4761911418487281, :d=>1.690044076730315}, {:a=>-2.2093106830730544, :b=>-4.7616383538413185, :c=>-2.1302417513803604, :d=>-2.572103887994971}, {:a=>0.5967286579772503, :b=>-1.2540891775284373, :c=>0.9564015237749754, :d=>1.0757472553704255}, {:a=>-2.9611078262465265, :b=>-5.701384782808158, :c=>-2.9572186088711794, :d=>-3.549440174120485}, {:a=>-0.20852569739491658, :b=>-2.2606571217436455, :c=>0.07062173286559173, :d=>0.028916593386608402}, {:a=>-0.03031143956126317, :b=>-2.037889299451579, :c=>0.2666574164826105, :d=>0.2605951285703579}, {:a=>0.705360861251179, :b=>-1.118298923436026, :c=>1.075896947376297, :d=>1.2169691196265326}, {:a=>-0.43051815965545104, :b=>-2.538147699569314, :c=>-0.1735699756209962, :d=>-0.2596736075520864}, {:a=>1.1186282308719797, :b=>-0.6017147114100254, :c=>1.5304910539591778, :d=>1.7542167001335738}, {:a=>-1.578677837286503, :b=>-3.9733472966081287, :c=>-1.4365456210151533, :d=>-1.7522811884724538}, {:a=>0.7778164061167234, :b=>-1.0277294923540956, :c=>1.1555980467283957, :d=>1.3111613279517405}, {:a=>1.7680440029308087, :b=>0.2100550036635105, :c=>2.2448484032238896, :d=>2.5984572038100513}, {:a=>0.5963305068078673, :b=>-1.254586866490166, :c=>0.955963557488654, :d=>1.0752296588502275}, {:a=>-1.971463611279333, :b=>-4.464329514099166, :c=>-1.8686099724072662, :d=>-2.262902694663133}, {:a=>-0.4623979648689984, :b=>-2.5779974560862478, :c=>-0.20863776135589834, :d=>-0.30111735432969794}, {:a=>-1.9222482485545278, :b=>-4.40281031069316, :c=>-1.8144730734099805, :d=>-2.1989227231208863}, {:a=>0.0771824357997555, :b=>-1.9035219552503055, :c=>0.38490067937973105, :d=>0.40033716653968215}, {:a=>-0.31071000948333766, :b=>-2.388387511854172, :c=>-0.041781010431671484, :d=>-0.103923012328339}, {:a=>0.2801620058380563, :b=>-1.6497974927024297, :c=>0.6081782064218619, :d=>0.6642106075894731}, {:a=>-0.46189066163310033, :b=>-2.5773633270413754, :c=>-0.20807972779641043, :d=>-0.3004578601230305}, {:a=>-0.08916934122630261, :b=>-2.1114616765328784, :c=>0.2019137246510671, :d=>0.1840798564058066}, {:a=>0.601028908772251, :b=>-1.2487138640346864, :c=>0.9611317996494761, :d=>1.0813375814039263}, {:a=>1.681229587025286, :b=>0.10153698378160758, :c=>2.149352545727815, :d=>2.4855984631328716}, {:a=>-0.3165872087194533, :b=>-2.3957340108993166, :c=>-0.04824592959139867, :d=>-0.11156337133528932}, {:a=>0.05916589353151842, :b=>-1.926042633085602, :c=>0.36508248288467027, :d=>0.37691566159097395}, {:a=>1.2694389198709743, :b=>-0.4132013501612821, :c=>1.696382811858072, :d=>1.9502705958322668}, {:a=>1.264407131801107, :b=>-0.41949108524861645, :c=>1.6908478449812179, :d=>1.9437292713414391}, {:a=>0.11950638738084168, :b=>-1.8506170157739479, :c=>0.4314570261189259, :d=>0.4553583035950942}, {:a=>1.522387108927976, :b=>-0.09701611384003028, :c=>1.9746258198207738, :d=>2.279103241606369}, {:a=>0.651894962845696, :b=>-1.18513129644288, :c=>1.0170844591302657, :d=>1.147463451699405}, {:a=>0.6313543465273841, :b=>-1.2108070668407698, :c=>0.9944897811801225, :d=>1.1207606504855994}, {:a=>-0.5860551303682177, :b=>-2.732568912960272, :c=>-0.3446606434050395, :d=>-0.461871669478683}, {:a=>-0.22899280024294036, :b=>-2.2862410003036753, :c=>0.04810791973276557, :d=>0.0023093596841775033}, {:a=>-1.3549465817070743, :b=>-3.6936832271338425, :c=>-1.1904412398777817, :d=>-1.4614305562191965}, {:a=>-0.9356390318731197, :b=>-3.1695487898413996, :c=>-0.7292029350604317, :d=>-0.9163307414350557}, {:a=>-1.1085980551367605, :b=>-3.3857475689209506, :c=>-0.9194578606504367, :d=>-1.1411774716777887}, {:a=>-1.1776520660799348, :b=>-3.4720650825999186, :c=>-0.9954172726879282, :d=>-1.2309476859039152}, {:a=>-1.9863292051011943, :b=>-4.482911506376492, :c=>-1.8849621256113138, :d=>-2.282227966631553}, {:a=>-0.4195130243722567, :b=>-2.524391280465321, :c=>-0.16146432680948242, :d=>-0.2453669316839337}, {:a=>-0.027328482113317037, :b=>-2.0341606026416463, :c=>0.26993866967535124, :d=>0.2644729732526878}, {:a=>-1.1827751004206837, :b=>-3.478468875525855, :c=>-1.0010526104627522, :d=>-1.2376076305468888}, {:a=>-0.36921509234359356, :b=>-2.461518865429492, :c=>-0.10613660157795296, :d=>-0.17997962004667167}, {:a=>0.18176014127306842, :b=>-1.7727998234086644, :c=>0.4999361554003753, :d=>0.5362881836549889}, {:a=>-0.8040881885791317, :b=>-3.0051102357239143, :c=>-0.584497007437045, :d=>-0.7453146451528712}, {:a=>0.27855699275038087, :b=>-1.651803759062024, :c=>0.6064126920254189, :d=>0.6621240905754952}, {:a=>0.14495423682395633, :b=>-1.8188072039700547, :c=>0.45944966050635194, :d=>0.48844050787114324}, {:a=>-0.4011986672387939, :b=>-2.501498334048492, :c=>-0.1413185339626733, :d=>-0.2215582674104321}, {:a=>-0.36919513025905, :b=>-2.4614939128238125, :c=>-0.10611464328495501, :d=>-0.179953669336765}, {:a=>-1.0212105661010773, :b=>-3.276513207626347, :c=>-0.8233316227111851, :d=>-1.0275737359314006}, {:a=>0.2723529193401901, :b=>-1.6595588508247623, :c=>0.5995882112742091, :d=>0.6540587951422472}, {:a=>1.8169606426653846, :b=>0.2712008033317308, :c=>2.298656706931923, :d=>2.662048835465}, {:a=>-0.7375518742030586, :b=>-2.9219398427538232, :c=>-0.5113070616233646, :d=>-0.6588174364639763}, {:a=>0.15587973234374938, :b=>-1.8051503345703133, :c=>0.47146770557812434, :d=>0.5026436520468742}, {:a=>0.8459599585769909, :b=>-0.9425500517787615, :c=>1.23055595443469, :d=>1.3997479461500884}, {:a=>0.17679734445080456, :b=>-1.7790033194364943, :c=>0.494477078895885, :d=>0.5298365477860459}, {:a=>0.6785336727558936, :b=>-1.1518329090551331, :c=>1.046387040031483, :d=>1.1820937745826616}, {:a=>-0.03838916363664658, :b=>-2.0479864545458084, :c=>0.25777191999968874, :d=>0.25009408727235943}, {:a=>-1.4154967027362377, :b=>-3.769370878420297, :c=>-1.2570463730098616, :d=>-1.540145713557109}, {:a=>-1.0531412209476692, :b=>-3.3164265261845864, :c=>-0.8584553430424362, :d=>-1.06908358723197}, {:a=>0.22460503650720165, :b=>-1.719243704365998, :c=>0.5470655401579219, :d=>0.5919865474593622}, {:a=>1.5481138690915994, :b=>-0.06485766363550072, :c=>2.0029252560007595, :d=>2.3125480298190793}, {:a=>0.6908369667032236, :b=>-1.1364537916209705, :c=>1.059920663373546, :d=>1.1980880567141907}, {:a=>2.7169698860230698, :b=>1.396212357528837, :c=>3.2886668746253767, :d=>3.832060851829991}, {:a=>1.4098765424600845, :b=>-0.23765432192489433, :c=>1.8508641967060933, :d=>2.1328395051981097}, {:a=>0.8107491175945115, :b=>-0.9865636030068607, :c=>1.1918240293539628, :d=>1.353973852872865}, {:a=>-0.0790350426221697, :b=>-2.098793803277712, :c=>0.2130614531156133, :d=>0.19725444459117936}, {:a=>0.03187066535030841, :b=>-1.9601616683121146, :c=>0.3350577318853392, :d=>0.3414318649554009}, {:a=>0.564165420155724, :b=>-1.2947932248053449, :c=>0.9205819621712965, :d=>1.0334150462024412}, {:a=>0.6275441953796198, :b=>-1.2155697557754754, :c=>0.9902986149175819, :d=>1.1158074539935057}, {:a=>1.416203727399493, :b=>-0.2297453407506338, :c=>1.8578241001394424, :d=>2.141064845619341}, {:a=>0.9570314855692433, :b=>-0.803710643038446, :c=>1.352734634126168, :d=>1.5441409312400165}, {:a=>0.1507429377264469, :b=>-1.8115713278419414, :c=>0.4658172314990916, :d=>0.495965819044381}, {:a=>0.02582767372468828, :b=>-1.9677154078441397, :c=>0.3284104410971571, :d=>0.33357597584209475}, {:a=>0.00266359471970234, :b=>-1.996670506600372, :c=>0.30292995419167257, :d=>0.30346267313561304}, {:a=>1.9862650128227983, :b=>0.4828312660284979, :c=>2.4848915141050782, :d=>2.8821445166696376}, {:a=>-0.7755989585209407, :b=>-2.9694986981511757, :c=>-0.5531588543730348, :d=>-0.708278646077223}, {:a=>0.2691907489002513, :b=>-1.6635115638746858, :c=>0.5961098237902764, :d=>0.6499479735703266}, {:a=>-0.8991657242358051, :b=>-3.1239571552947565, :c=>-0.6890822966593857, :d=>-0.8689154415065465}, {:a=>-0.5706195838564965, :b=>-2.7132744798206208, :c=>-0.32768154224214613, :d=>-0.4418054590134454}, {:a=>-0.6716368509329389, :b=>-2.8395460636661736, :c=>-0.43880053602623287, :d=>-0.5731279062128205}, {:a=>1.297216653019937, :b=>-0.37847918372507894, :c=>1.726938318321931, :d=>1.986381648925918}, {:a=>-1.7639100523816966, :b=>-4.2048875654771205, :c=>-1.6403010576198664, :d=>-1.9930830680962057}, {:a=>2.3054088656643046, :b=>0.8817610820803807, :c=>2.835949752230735, :d=>3.297031525363596}, {:a=>1.5563256955013487, :b=>-0.054592880623314244, :c=>2.011958265051484, :d=>2.323223404151753}, {:a=>-0.5001778719737308, :b=>-2.6252223399671633, :c=>-0.2501956591711039, :d=>-0.35023123356585}, {:a=>0.6478573392888034, :b=>-1.1901783258889957, :c=>1.0126430732176839, :d=>1.1422145410754445}, {:a=>-1.3345562186695497, :b=>-3.668195273336937, :c=>-1.1680118405365048, :d=>-1.4349230842704146}, {:a=>-0.9884866036265383, :b=>-3.235608254533173, :c=>-0.7873352639891922, :d=>-0.9850325847144998}, {:a=>1.7636107289785348, :b=>0.20451341122316835, :c=>2.2399718018763886, :d=>2.592693947672095}, {:a=>-1.4806917569559095, :b=>-3.8508646961948867, :c=>-1.3287609326515004, :d=>-1.6248992840426824}, {:a=>0.2668033979490905, :b=>-1.6664957525636368, :c=>0.5934837377439997, :d=>0.6468444173338177}, {:a=>-0.3353196682110221, :b=>-2.4191495852637774, :c=>-0.06885163503212438, :d=>-0.13591556867432875}, {:a=>0.04280872553229606, :b=>-1.94648909308463, :c=>0.34708959808552564, :d=>0.3556513431919849}, {:a=>0.5210044219645841, :b=>-1.3487444725442699, :c=>0.8731048641610426, :d=>0.9773057485539594}, {:a=>0.9519259312563205, :b=>-0.8100925859295993, :c=>1.3471185243819528, :d=>1.5375037106332168}, {:a=>0.28673761026933814, :b=>-1.6415779871633274, :c=>0.615411371296272, :d=>0.6727588933501396}, {:a=>-1.4201083549257543, :b=>-3.7751354436571924, :c=>-1.2621191904183298, :d=>-1.5461408614034806}, {:a=>-0.25805880698476136, :b=>-2.322573508730952, :c=>0.016135312316762462, :d=>-0.035476449080189765}, {:a=>-0.16061091453713353, :b=>-2.200763643171417, :c=>0.12332799400915309, :d=>0.0912058111017264}, {:a=>-0.5506556529984926, :b=>-2.688319566248116, :c=>-0.3057212182983419, :d=>-0.4158523488980404}, {:a=>-0.0593312978565448, :b=>-2.074164122320681, :c=>0.2347355723578007, :d=>0.22286931278649175}, {:a=>0.36761024455349145, :b=>-1.5404871943081357, :c=>0.7043712690088406, :d=>0.7778933179195389}, {:a=>-0.5155205089927207, :b=>-2.644400636240901, :c=>-0.2670725598919929, :d=>-0.37017666169053703}, {:a=>0.3466068257307801, :b=>-1.566741467836525, :c=>0.6812675083038582, :d=>0.7505888734500141}, {:a=>-0.04941138894341402, :b=>-2.0617642361792674, :c=>0.24564747216224456, :d=>0.23576519437356175}, {:a=>-0.9644608923865924, :b=>-3.2055761154832405, :c=>-0.7609069816252516, :d=>-0.9537991601025702}, {:a=>1.2816262612394715, :b=>-0.3979671734506607, :c=>1.7097888873634188, :d=>1.966114139611313}, {:a=>2.166104712541388, :b=>0.7076308906767346, :c=>2.6827151837955268, :d=>3.1159361263038043}, {:a=>-1.121356730378156, :b=>-3.401695912972695, :c=>-0.9334924034159717, :d=>-1.1577637494916029}, {:a=>1.0613350239851818, :b=>-0.6733312200185229, :c=>1.4674685263837002, :d=>1.6797355311807365}, {:a=>-0.5016817164873288, :b=>-2.627102145609161, :c=>-0.25184988813606174, :d=>-0.3521862314335275}, {:a=>-1.0324304511372, :b=>-3.2905380639215, :c=>-0.83567349625092, :d=>-1.04215958647836}, {:a=>-1.242753480585595, :b=>-3.5534418507319936, :c=>-1.0670288286441547, :d=>-1.3155795247612736}, {:a=>-0.28310755604514126, :b=>-2.3538844450564267, :c=>-0.0114183116496554, :d=>-0.06803982285868365}, {:a=>-0.6072695222637774, :b=>-2.7590869028297216, :c=>-0.3679964744901552, :d=>-0.4894503789429106}, {:a=>0.704361319247224, :b=>-1.11954835094097, :c=>1.0747974511719465, :d=>1.2156697150213913}, {:a=>0.07383971823458871, :b=>-1.9077003522067641, :c=>0.38122369005804757, :d=>0.3959916337049653}, {:a=>0.16289703412497966, :b=>-1.7963787073437754, :c=>0.47918673753747765, :d=>0.5117661443624736}, {:a=>-0.26758117116762525, :b=>-2.3344764639595317, :c=>0.005660711715612166, :d=>-0.04785552251791286}, {:a=>0.3747507252015924, :b=>-1.5315615934980096, :c=>0.7122257977217517, :d=>0.7871759427620701}, {:a=>-0.2297589696946194, :b=>-2.287198712118274, :c=>0.04726513333591864, :d=>0.0013133393969947393}, {:a=>-0.9357232455124278, :b=>-3.1696540568905345, :c=>-0.7292955700636705, :d=>-0.916440219166156}, {:a=>-0.43306226438445855, :b=>-2.541327830480573, :c=>-0.17636849082290446, :d=>-0.26298094369979613}, {:a=>-0.3850587616313613, :b=>-2.481323452039202, :c=>-0.1235646377944975, :d=>-0.20057639012076972}, {:a=>-0.07134434110709452, :b=>-2.089180426383868, :c=>0.221521224782196, :d=>0.20725235656077712}, {:a=>0.2868425132767484, :b=>-1.6414468584040645, :c=>0.6155267646044233, :d=>0.672895267259773}, {:a=>0.49437219181669545, :b=>-1.3820347602291307, :c=>0.8438094109983649, :d=>0.942683849361704}, {:a=>0.5280660221389012, :b=>-1.3399174723263736, :c=>0.8808726243527913, :d=>0.9864858287805716}, {:a=>0.17855187069826214, :b=>-1.7768101616271723, :c=>0.49640705776808836, :d=>0.5321174319077407}, {:a=>-1.9319308975605651, :b=>-4.414913621950706, :c=>-1.8251239873166216, :d=>-2.211510166828735}, {:a=>-1.6113908744151484, :b=>-4.014238593018936, :c=>-1.4725299618566634, :d=>-1.7948081367396929}, {:a=>0.46408467366757056, :b=>-1.4198941579155369, :c=>0.8104931410343277, :d=>0.9033100757678418}, {:a=>-0.41908376736538894, :b=>-2.523854709206736, :c=>-0.16099214410192786, :d=>-0.24480889757500562}, {:a=>0.05693567221242312, :b=>-1.928830409734471, :c=>0.36262923943366543, :d=>0.37401637387615005}, {:a=>-0.3401982079311021, :b=>-2.4252477599138778, :c=>-0.07421802872421235, :d=>-0.1422576703104328}, {:a=>0.8169305148642768, :b=>-0.9788368564196541, :c=>1.1986235663507046, :d=>1.36200966932356}, {:a=>1.2288520954144622, :b=>-0.46393488073192235, :c=>1.6517373049559085, :d=>1.897507724038801}, {:a=>0.13837808929771445, :b=>-1.827027388377857, :c=>0.45221589822748587, :d=>0.47989151608702874}, {:a=>-0.7423299326191031, :b=>-2.927912415773879, :c=>-0.5165629258810134, :d=>-0.6650289124048341}, {:a=>1.8976669622555, :b=>0.3720837028193751, :c=>2.38743365848105, :d=>2.76696705093215}, {:a=>1.1736579832649447, :b=>-0.5329275209188191, :c=>1.5910237815914394, :d=>1.8257553782444282}, {:a=>0.6830944518950685, :b=>-1.1461319351311645, :c=>1.0514038970845754, :d=>1.188022787463589}, {:a=>-0.3872617354293445, :b=>-2.4840771692866808, :c=>-0.12598790897227902, :d=>-0.20344025605814792}, {:a=>0.8530007713499876, :b=>-0.9337490358125156, :c=>1.2383008484849864, :d=>1.408901002754984}, {:a=>-0.15385076516096866, :b=>-2.192313456451211, :c=>0.13076415832293445, :d=>0.09999400529074073}, {:a=>0.3534065356757537, :b=>-1.5582418304053078, :c=>0.688747189243329, :d=>0.7594284963784799}, {:a=>0.9208724901600472, :b=>-0.8489093872999409, :c=>1.3129597391760521, :d=>1.4971342372080616}, {:a=>0.09783292405071782, :b=>-1.8777088449366026, :c=>0.4076162164557896, :d=>0.42718280126593317}, {:a=>0.38232973876657184, :b=>-1.5220878265417852, :c=>0.720562712643229, :d=>0.7970286603965434}, {:a=>0.26718264578146034, :b=>-1.6660216927731746, :c=>0.5939009103596065, :d=>0.6473374395158984}, {:a=>1.5131237234326536, :b=>-0.10859534570918306, :c=>1.964436095775919, :d=>2.2670608404624497}, {:a=>0.02181026406090782, :b=>-1.9727371699238652, :c=>0.3239912904669986, :d=>0.32835334327918014}, {:a=>-1.0039703279199654, :b=>-3.2549629098999566, :c=>-0.8043673607119621, :d=>-1.0051614262959552}, {:a=>-1.9717724803308674, :b=>-4.464715600413584, :c=>-1.8689497283639545, :d=>-2.263304224430128}, {:a=>1.1158806009876476, :b=>-0.6051492487654406, :c=>1.5274686610864125, :d=>1.750644781283942}, {:a=>-0.931950759456242, :b=>-3.164938449320302, :c=>-0.7251458354018663, :d=>-0.9115359872931146}, {:a=>0.21635674378458014, :b=>-1.7295540702692749, :c=>0.5379924181630382, :d=>0.5812637669199542}, {:a=>-0.1488891230834541, :b=>-2.1861114038543175, :c=>0.1362219646082005, :d=>0.10644413999150967}, {:a=>0.8550243947258508, :b=>-0.9312195065926865, :c=>1.240526834198436, :d=>1.411531713143606}, {:a=>1.6348609503583338, :b=>0.04357618794791707, :c=>2.098347045394167, :d=>2.425319235465834}, {:a=>-0.07333628200062156, :b=>-2.091670352500777, :c=>0.21933008979931629, :d=>0.20466283339919195}, {:a=>0.9750367858649257, :b=>-0.7812040176688428, :c=>1.3725404644514183, :d=>1.5675478216244034}, {:a=>-0.6838773410665071, :b=>-2.8548466763331337, :c=>-0.4522650751731579, :d=>-0.5890405433864592}, {:a=>0.1718243716416484, :b=>-1.7852195354479394, :c=>0.48900680880581326, :d=>0.523371683134143}, {:a=>2.3809078377059585, :b=>0.9761347971324481, :c=>2.9189986214765544, :d=>3.3951801890177458}, {:a=>-1.0138572020179117, :b=>-3.26732150252239, :c=>-0.8152429222197031, :d=>-1.0180143626232854}, {:a=>1.0346431201668402, :b=>-0.7066960997914498, :c=>1.4381074321835243, :d=>1.6450360562168924}, {:a=>1.1522701014869066, :b=>-0.5596623731413668, :c=>1.5674971116355974, :d=>1.7979511319329786}, {:a=>0.15069176179878954, :b=>-1.811635297751513, :c=>0.46576093797866847, :d=>0.4958992903384264}, {:a=>1.2044868696480069, :b=>-0.49439141293999156, :c=>1.6249355566128076, :d=>1.865832930542409}, {:a=>-0.6442834726853702, :b=>-2.805354340856713, :c=>-0.4087118199539073, :d=>-0.5375685144909814}, {:a=>-1.1861938984063747, :b=>-3.4827423730079685, :c=>-1.0048132882470122, :d=>-1.2420520679282872}, {:a=>-0.21454741340854824, :b=>-2.2681842667606853, :c=>0.0639978452505969, :d=>0.021088362568887242}, {:a=>-0.35132348409251674, :b=>-2.439154355115646, :c=>-0.08645583250176847, :d=>-0.1567205293202718}, {:a=>1.53215733817489, :b=>-0.08480332728138751, :c=>1.9853730719923792, :d=>2.291804539627357}, {:a=>-0.6611624287667958, :b=>-2.8264530359584947, :c=>-0.4272786716434754, :d=>-0.5595111573968345}, {:a=>0.6158322553788451, :b=>-1.2302096807764435, :c=>0.9774154809167297, :d=>1.1005819319924988}, {:a=>0.7734695138298466, :b=>-1.0331631077126917, :c=>1.1508164652128314, :d=>1.3055103679788007}, {:a=>-0.2665172434506502, :b=>-2.3331465543133127, :c=>0.00683103220428477, :d=>-0.04647241648584527}, {:a=>-0.7841658763287824, :b=>-2.980207345410978, :c=>-0.5625824639616608, :d=>-0.7194156392274171}, {:a=>0.7910341337426644, :b=>-1.0112073328216695, :c=>1.1701375471169309, :d=>1.328344373865464}, {:a=>0.7275876034744165, :b=>-1.0905154956569794, :c=>1.1003463638218582, :d=>1.2458638845167416}, {:a=>0.4022472706276489, :b=>-1.497190911715439, :c=>0.7424719976904138, :d=>0.8229214518159436}, {:a=>0.9583281890140856, :b=>-0.8020897637323932, :c=>1.3541610079154942, :d=>1.5458266457183114}, {:a=>-0.41922202276255, :b=>-2.5240275284531872, :c=>-0.16114422503880504, :d=>-0.244988629591315}, {:a=>-0.6176693432865054, :b=>-2.772086679108132, :c=>-0.3794362776151559, :d=>-0.502970146272457}, {:a=>3.654932440327834, :b=>2.5686655504097917, :c=>4.320425684360617, :d=>5.051412172426184}, {:a=>2.8884332113982394, :b=>1.610541514247799, :c=>3.4772765325380632, :d=>4.054963174817711}, {:a=>-1.400740969451822, :b=>-3.7509262118147775, :c=>-1.2408150663970043, :d=>-1.5209632602873686}, {:a=>0.2750842411592498, :b=>-1.6561446985509378, :c=>0.6025926652751747, :d=>0.6576095135070248}, {:a=>0.7609262976420436, :b=>-1.0488421279474456, :c=>1.1370189274062479, :d=>1.2892041869346567}, {:a=>-1.4111234774075208, :b=>-3.763904346759401, :c=>-1.2522358251482728, :d=>-1.534460520629777}, {:a=>-0.8147069232009374, :b=>-3.0183836540011715, :c=>-0.5961776155210312, :d=>-0.7591190001612187}, {:a=>-0.2681854011462145, :b=>-2.335231751432768, :c=>0.004996058739164033, :d=>-0.04864102149007882}, {:a=>-0.366084189462502, :b=>-2.4576052368281274, :c=>-0.10269260840875222, :d=>-0.1759094463012526}, {:a=>-0.5214273229991231, :b=>-2.651784153748904, :c=>-0.2735700552990355, :d=>-0.37785551989886007}, {:a=>0.38081416798645024, :b=>-1.5239822900169373, :c=>0.7188955847850953, :d=>0.7950584183823853}, {:a=>-0.8571679726452188, :b=>-3.0714599658065236, :c=>-0.6428847699097409, :d=>-0.8143183644387844}, {:a=>-1.4049568011115525, :b=>-3.7561960013894407, :c=>-1.245452481222708, :d=>-1.5264438414450183}, {:a=>-1.3356938025710856, :b=>-3.6696172532138567, :c=>-1.1692631828281943, :d=>-1.4364019433424113}, {:a=>-0.9331121304909141, :b=>-3.1663901631136424, :c=>-0.7264233435400056, :d=>-0.9130457696381884}, {:a=>1.5596393803469242, :b=>-0.05045077456634495, :c=>2.0156033183816167, :d=>2.3275311944510015}, {:a=>0.31219570771385186, :b=>-1.6097553653576853, :c=>0.643415278485237, :d=>0.7058544200280075}, {:a=>-0.8026377563572625, :b=>-3.003297195446578, :c=>-0.5829015319929889, :d=>-0.7434290832644412}, {:a=>-0.1053332469286661, :b=>-2.1316665586608328, :c=>0.18413342837846727, :d=>0.16306677899273406}, {:a=>-0.8052995753211604, :b=>-3.0066244691514505, :c=>-0.5858295328532765, :d=>-0.7468894479175086}, {:a=>1.0154111105451056, :b=>-0.7307361118186182, :c=>1.4169522215996162, :d=>1.6200344437086374}, {:a=>-0.19710380255236679, :b=>-2.2463797531904586, :c=>0.08318581719239651, :d=>0.04376505668192315}, {:a=>0.9915267981960528, :b=>-0.7605915022549341, :c=>1.3906794780156582, :d=>1.5889848376548688}, {:a=>1.0800425657164765, :b=>-0.6499467928544045, :c=>1.4880468222881242, :d=>1.7040553354314196}, {:a=>-0.5379506428889408, :b=>-2.672438303611176, :c=>-0.29174570717783493, :d=>-0.3993358357556231}, {:a=>1.6910457733827668, :b=>0.11380721672845828, :c=>2.1601503507210436, :d=>2.498359505397597}, {:a=>-0.4015166211406407, :b=>-2.5018957764258007, :c=>-0.14166828325470482, :d=>-0.2219716074828329}, {:a=>-1.7813267591040534, :b=>-4.226658448880066, :c=>-1.659459435014459, :d=>-2.0157247868352695}, {:a=>0.0518167966694079, :b=>-1.93522900416324, :c=>0.3569984763363487, :d=>0.3673618356702303}, {:a=>0.24323888415771375, :b=>-1.695951394802858, :c=>0.5675627725734851, :d=>0.6162105494050278}, {:a=>-1.3073457673165605, :b=>-3.634182209145701, :c=>-1.1380803440482166, :d=>-1.3995494975115286}, {:a=>0.7824588948874633, :b=>-1.0219263813906707, :c=>1.1607047843762097, :d=>1.3171965633537024}, {:a=>-0.43178935480705977, :b=>-2.5397366935088246, :c=>-0.17496829028776578, :d=>-0.2613261612491777}, {:a=>-0.296752506219707, :b=>-2.3709406327746336, :c=>-0.026427756841677752, :d=>-0.08577825808561912}, {:a=>-1.2689196852383937, :b=>-3.586149606547992, :c=>-1.095811653762233, :d=>-1.3495955908099118}, {:a=>-0.5736702318361507, :b=>-2.7170877897951886, :c=>-0.33103725501976583, :d=>-0.445771301386996}, {:a=>-0.6777313045442638, :b=>-2.84716413068033, :c=>-0.44550443499869025, :d=>-0.581050695907543}, {:a=>1.7623954368594925, :b=>0.20299429607436537, :c=>2.238634980545442, :d=>2.5911140679173403}, {:a=>0.9624174268200967, :b=>-0.7969782164748793, :c=>1.3586591695021064, :d=>1.5511426548661258}, {:a=>-1.3231613968205154, :b=>-3.653951746025644, :c=>-1.155477536502567, :d=>-1.42010981586667}, {:a=>-0.14060586774141756, :b=>-2.175757334676772, :c=>0.14533354548444066, :d=>0.11721237193615716}, {:a=>-0.8096646525391887, :b=>-3.012080815673986, :c=>-0.5906311177931076, :d=>-0.7525640483009453}, {:a=>1.1607211968938567, :b=>-0.5490985038826792, :c=>1.5767933165832424, :d=>1.8089375559620138}, {:a=>1.3889911148982421, :b=>-0.2637611063771974, :c=>1.8278902263880665, :d=>2.105688449367715}, {:a=>1.367117737325533, :b=>-0.2911028283430839, :c=>1.8038295110580864, :d=>2.0772530585231928}, {:a=>-0.640344694600033, :b=>-2.800430868250041, :c=>-0.4043791640600363, :d=>-0.532448102980043}, {:a=>-1.3540467357580115, :b=>-3.692558419697514, :c=>-1.1894514093338127, :d=>-1.4602607564854149}, {:a=>-1.1243030050885177, :b=>-3.405378756360647, :c=>-0.9367333055973694, :d=>-1.161593906615073}, {:a=>-1.3353860189985687, :b=>-3.669232523748211, :c=>-1.1689246208984256, :d=>-1.4360018246981392}, {:a=>1.223998081564615, :b=>-0.4700023980442314, :c=>1.6463978897210767, :d=>1.8911975060339996}, {:a=>-1.3883912577850597, :b=>-3.7354890722313243, :c=>-1.2272303835635656, :d=>-1.5049086351205776}, {:a=>0.49602172290160923, :b=>-1.3799728463729886, :c=>0.8456238951917703, :d=>0.944828239772092}, {:a=>-1.4351675765291845, :b=>-3.7939594706614805, :c=>-1.278684334182103, :d=>-1.5657178494879398}, {:a=>-2.074640415336145, :b=>-4.593300519170182, :c=>-1.9821044568697597, :d=>-2.3970325399369887}, {:a=>-0.19052162495419545, :b=>-2.2381520311927443, :c=>0.090426212550385, :d=>0.05232188755954589}, {:a=>0.9921922528832741, :b=>-0.7597596838959075, :c=>1.3914114781716016, :d=>1.5898499287482564}, {:a=>-1.2421391147624357, :b=>-3.5526738934530444, :c=>-1.0663530262386793, :d=>-1.3147808491911663}, {:a=>-0.02418376332859573, :b=>-2.0302297041607447, :c=>0.2733978603385447, :d=>0.26856110767282554}, {:a=>0.41244032663094, :b=>-1.484449591711325, :c=>0.753684359294034, :d=>0.836172424620222}, {:a=>0.7222851644519059, :b=>-1.0971435444351176, :c=>1.0945136808970966, :d=>1.2389707137874777}, {:a=>0.7155660170928929, :b=>-1.1055424786338839, :c=>1.0871226188021823, :d=>1.2302358222207608}, {:a=>1.3247044878907857, :b=>-0.34411939013651804, :c=>1.7571749366798644, :d=>2.022115834258021}, {:a=>-0.8069759777099065, :b=>-3.008719972137383, :c=>-0.5876735754808973, :d=>-0.7490687710228785}, {:a=>1.5831318961222054, :b=>-0.021085129847243422, :c=>2.041445085734426, :d=>2.3580714649588668}, {:a=>1.2711594431245354, :b=>-0.41105069609433076, :c=>1.6982753874369891, :d=>1.9525072760618962}, {:a=>-1.175329395036446, :b=>-3.4691617437955573, :c=>-0.9928623345400907, :d=>-1.22792821354738}, {:a=>1.7280196656344506, :b=>0.16002458204306302, :c=>2.2008216321978957, :d=>2.546425565324786}, {:a=>-0.3159908235649474, :b=>-2.3949885294561843, :c=>-0.04758990592144219, :d=>-0.11078807063443163}, {:a=>-1.2573297199121627, :b=>-3.5716621498902033, :c=>-1.083062691903379, :d=>-1.3345286358858115}, {:a=>0.819347311555916, :b=>-0.975815860555105, :c=>1.2012820427115076, :d=>1.3651515050226908}, {:a=>-0.9272822708003237, :b=>-3.1591028385004045, :c=>-0.7200104978803561, :d=>-0.9054669520404208}, {:a=>-1.3193537215066826, :b=>-3.649192151883353, :c=>-1.151289093657351, :d=>-1.4151598379586874}, {:a=>0.11268484901368332, :b=>-1.8591439387328959, :c=>0.42395333391505163, :d=>0.4464903037177883}, {:a=>-0.3254971944906131, :b=>-2.4068714931132664, :c=>-0.05804691393967443, :d=>-0.12314635283779707}, {:a=>-0.2740062278278872, :b=>-2.3425077847848588, :c=>-0.0014068506106759693, :d=>-0.056208096176253386}, {:a=>-1.579474907292559, :b=>-3.974343634115699, :c=>-1.4374223980218148, :d=>-1.7533173794803265}, {:a=>-0.13996361354202935, :b=>-2.174954516927537, :c=>0.14604002510376768, :d=>0.11804730239536182}, {:a=>0.8698321914265678, :b=>-0.9127097607167904, :c=>1.2568154105692246, :d=>1.430781848854538}, {:a=>-0.5049094921637745, :b=>-2.6311368652047182, :c=>-0.255400441380152, :d=>-0.35638233981290685}, {:a=>0.35448585658083986, :b=>-1.5568926792739501, :c=>0.6899344422389239, :d=>0.7608316135550919}, {:a=>1.9005240099211875, :b=>0.37565501240148436, :c=>2.3905764109133063, :d=>2.7706812128975438}, {:a=>0.3317804533903515, :b=>-1.5852744332620605, :c=>0.6649584987293866, :d=>0.731314589407457}, {:a=>0.4117999743383484, :b=>-1.4852500320770645, :c=>0.7529799717721832, :d=>0.8353399666398529}, {:a=>1.7327558796367715, :b=>0.16594484954596433, :c=>2.206031467600449, :d=>2.5525826435278027}, {:a=>-0.4275937773582172, :b=>-2.5344922216977714, :c=>-0.17035315509403898, :d=>-0.2558719105656824}, {:a=>0.3320871128360095, :b=>-1.5848911089549882, :c=>0.6652958241196105, :d=>0.7317132466868124}, {:a=>0.5408035291111588, :b=>-1.3239955886110515, :c=>0.8948838820222746, :d=>1.0030445878445065}, {:a=>-1.3830355519516433, :b=>-3.728794439939554, :c=>-1.2213391071468076, :d=>-1.4979462175371363}, {:a=>0.7966780390633631, :b=>-1.0041524511707962, :c=>1.1763458429696996, :d=>1.3356814507823722}, {:a=>-1.4958589846662154, :b=>-3.869823730832769, :c=>-1.345444883132837, :d=>-1.64461668006608}, {:a=>1.173985193967034, :b=>-0.5325185075412076, :c=>1.5913837133637376, :d=>1.8261807521571443}, {:a=>-0.9986851001870113, :b=>-3.2483563752337643, :c=>-0.7985536102057125, :d=>-0.9982906302431147}, {:a=>-0.5265904468525561, :b=>-2.6582380585656953, :c=>-0.2792494915378117, :d=>-0.38456758090832294}, {:a=>1.469211093130003, :b=>-0.1634861335874962, :c=>1.9161322024430036, :d=>2.209974421069004}, {:a=>-0.6003245770305069, :b=>-2.7504057212881334, :c=>-0.3603570347335577, :d=>-0.480421950139659}, {:a=>0.16831333682280228, :b=>-1.7896083289714972, :c=>0.4851446705050825, :d=>0.518807337869643}, {:a=>0.7218268539896585, :b=>-1.097716432512927, :c=>1.0940095393886244, :d=>1.238374910186556}, {:a=>-1.1499094953944446, :b=>-3.437386869243056, :c=>-0.9649004449338892, :d=>-1.194882344012778}, {:a=>0.3107409105259948, :b=>-1.6115738618425066, :c=>0.6418150015785943, :d=>0.7039631836837932}, {:a=>-1.9530489917063958, :b=>-4.441311239632995, :c=>-1.8483538908770354, :d=>-2.238963689218315}, {:a=>1.796666095311981, :b=>0.24583261913997623, :c=>2.2763327048431794, :d=>2.635665923905575}, {:a=>1.3851975501450748, :b=>-0.2685030623186566, :c=>1.8237173051595825, :d=>2.100756815188597}, {:a=>1.1689376151797481, :b=>-0.5388279810253149, :c=>1.585831376697723, :d=>1.8196188997336726}, {:a=>-0.8328379410555137, :b=>-3.041047426319392, :c=>-0.616121735161065, :d=>-0.7826893233721677}, {:a=>-1.2595919462099665, :b=>-3.574489932762458, :c=>-1.0855511408309633, :d=>-1.3374695300729564}, {:a=>-0.7875776754887724, :b=>-2.9844720943609655, :c=>-0.5663354430376497, :d=>-0.7238509781354041}, {:a=>-1.44269666549759, :b=>-3.8033708318719874, :c=>-1.286966332047349, :d=>-1.5755056651468669}, {:a=>-0.17886215230414396, :b=>-2.22357769038018, :c=>0.10325163246544161, :d=>0.06747920200461283}, {:a=>-0.6943079627944813, :b=>-2.8678849534931015, :c=>-0.4637387590739294, :d=>-0.6026003516328258}, {:a=>0.8305798248465973, :b=>-0.9617752189417534, :c=>1.213637807331257, :d=>1.3797537723005766}, {:a=>0.3909564206734708, :b=>-1.5113044741581616, :c=>0.7300520627408179, :d=>0.8082433468755121}, {:a=>1.5972326284798524, :b=>-0.003459214400184596, :c=>2.0569558913278376, :d=>2.376402417023808}, {:a=>0.08307208638977069, :b=>-1.8961598920127867, :c=>0.39137929502874774, :d=>0.4079937123067019}, {:a=>0.4481845285024872, :b=>-1.439769339371891, :c=>0.793002981352736, :d=>0.8826398870532333}, {:a=>-0.6825804772192551, :b=>-2.853225596524069, :c=>-0.45083852494118065, :d=>-0.5873546203850317}, {:a=>0.6447658239641486, :b=>-1.1940427200448143, :c=>1.0092424063605636, :d=>1.1381955711533933}, {:a=>-1.2522913295984854, :b=>-3.5653641619981067, :c=>-1.0775204625583341, :d=>-1.3279787284780311}, {:a=>0.9888178393084969, :b=>-0.7639777008643789, :c=>1.3876996232393466, :d=>1.585463191101046}, {:a=>0.14263885159515263, :b=>-1.8217014355060592, :c=>0.45690273675466786, :d=>0.4854305070736984}, {:a=>0.4575229392994926, :b=>-1.4280963258756343, :c=>0.8032752332294419, :d=>0.8947798210893405}, {:a=>1.5527683791498765, :b=>-0.05903952606265439, :c=>2.0080452170648644, :d=>2.3185988928948396}, {:a=>-0.5360909532759262, :b=>-2.6701136915949077, :c=>-0.2897000486035188, :d=>-0.396918239258704}, {:a=>0.3638848863234813, :b=>-1.5451438920956484, :c=>0.7002733749558294, :d=>0.7730503522205256}, {:a=>0.47552896835842395, :b=>-1.40558878955197, :c=>0.8230818651942664, :d=>0.9181876588659512}, {:a=>0.325344927637218, :b=>-1.5933188404534775, :c=>0.6578794204009398, :d=>0.7229484059283834}, {:a=>-0.9917267611024784, :b=>-3.239658451378098, :c=>-0.7908994372127263, :d=>-0.9892447894332219}, {:a=>-0.6621150912378856, :b=>-2.827643864047357, :c=>-0.4283266003616742, :d=>-0.5607496186092513}, {:a=>-1.6076001640594728, :b=>-4.009500205074341, :c=>-1.4683601804654203, :d=>-1.7898802132773148}, {:a=>-0.9909928577770309, :b=>-3.2387410722212886, :c=>-0.7900921435547341, :d=>-0.9882907151101403}, {:a=>-0.09172529143129192, :b=>-2.1146566142891148, :c=>0.19910217942557887, :d=>0.1807571211393205}, {:a=>-0.4524071814131848, :b=>-2.565508976766481, :c=>-0.19764789955450335, :d=>-0.28812933583714023}, {:a=>-0.2976483887079956, :b=>-2.3720604858849943, :c=>-0.027413227578795163, :d=>-0.08694290532039428}, {:a=>-0.5794176193773459, :b=>-2.7242720242216825, :c=>-0.33735938131508053, :d=>-0.4532429051905497}, {:a=>-0.43652428789033837, :b=>-2.545655359862923, :c=>-0.18017671667937224, :d=>-0.26748157425743996}, {:a=>0.02047126304168448, :b=>-1.9744109211978944, :c=>0.3225183893458529, :d=>0.3266126419541898}, {:a=>0.8010089678814037, :b=>-0.9987387901482454, :c=>1.1811098646695442, :d=>1.3413116582458249}, {:a=>0.09207508141424674, :b=>-1.8849061482321916, :c=>0.4012825895556714, :d=>0.4196976058385208}, {:a=>-0.4040907714443242, :b=>-2.5051134643054054, :c=>-0.1444998485887567, :d=>-0.22531800287762155}, {:a=>-0.3404263871793504, :b=>-2.425532983974188, :c=>-0.07446902589728549, :d=>-0.14255430333315555}, {:a=>-0.06922032408537589, :b=>-2.0865254051067197, :c=>0.2238576435060865, :d=>0.21001357868901133}, {:a=>1.0991686429891794, :b=>-0.6260391962635259, :c=>1.5090855072880975, :d=>1.7289192358859333}, {:a=>-1.1063544811246118, :b=>-3.3829431014057647, :c=>-0.9169899292370729, :d=>-1.1382608254619953}, {:a=>0.5446977365042883, :b=>-1.3191278293696396, :c=>0.8991675101547172, :d=>1.0081070574555748}, {:a=>0.7219008567876546, :b=>-1.0976239290154317, :c=>1.09409094246642, :d=>1.238471113823951}, {:a=>-0.9564116562400033, :b=>-3.195514570300004, :c=>-0.7520528218640037, :d=>-0.9433351531120044}, {:a=>-1.143894493950742, :b=>-3.429868117438428, :c=>-0.9582839433458163, :d=>-1.1870628421359646}, {:a=>0.6791216238254079, :b=>-1.1510979702182402, :c=>1.0470337862079486, :d=>1.1828581109730303}, {:a=>-1.7303237776500688, :b=>-4.162904722062586, :c=>-1.603356155415076, :d=>-1.9494209109450897}, {:a=>-0.6185996917205173, :b=>-2.7732496146506467, :c=>-0.38045966089256916, :d=>-0.5041795992366727}, {:a=>0.48093553150883867, :b=>-1.3988305856139518, :c=>0.8290290846597226, :d=>0.9252161909614902}, {:a=>-1.2712206658177456, :b=>-3.589025832272182, :c=>-1.0983427323995203, :d=>-1.3525868655630693}, {:a=>-0.37076681884211116, :b=>-2.4634585235526387, :c=>-0.10784350072632232, :d=>-0.1819968644947445}, {:a=>0.8658428693030569, :b=>-0.9176964133711789, :c=>1.2524271562333626, :d=>1.4255957300939741}, {:a=>-0.6456096453484833, :b=>-2.807012056685604, :c=>-0.4101706098833317, :d=>-0.5392925389530283}, {:a=>-1.2925995068971947, :b=>-3.6157493836214933, :c=>-1.1218594575869143, :d=>-1.380379358966353}, {:a=>1.9700531765114255, :b=>0.4625664706392816, :c=>2.467058494162568, :d=>2.861069129464853}, {:a=>0.2694360327342493, :b=>-1.6632049590821882, :c=>0.5963796360076743, :d=>0.6502668425545242}, {:a=>0.3694399626132976, :b=>-1.538200046733378, :c=>0.7063839588746273, :d=>0.7802719513972869}, {:a=>0.4511416741300198, :b=>-1.4360729073374752, :c=>0.7962558415430219, :d=>0.8864841763690259}, {:a=>-0.4569412597902518, :b=>-2.5711765747378146, :c=>-0.20263538576927703, :d=>-0.29402363772732737}, {:a=>0.03662946374978034, :b=>-1.9542131703127745, :c=>0.34029241012475836, :d=>0.34761830287471446}, {:a=>0.047336715631473354, :b=>-1.9408291054606583, :c=>0.3520703871946207, :d=>0.36153773032091535}, {:a=>0.47928390774233653, :b=>-1.4008951153220792, :c=>0.8272122985165702, :d=>0.9230690800650374}, {:a=>-1.3873642662092878, :b=>-3.7342053327616096, :c=>-1.2261006928302167, :d=>-1.503573546072074}, {:a=>-0.50715604018703, :b=>-2.6339450502337876, :c=>-0.257871644205733, :d=>-0.359302852243139}, {:a=>-0.26194854528725103, :b=>-2.3274356816090638, :c=>0.011856600184023847, :d=>-0.04053310887342637}, {:a=>2.243117505994195, :b=>0.8038968824927433, :c=>2.7674292565936143, :d=>3.216052757792453}, {:a=>0.6319164128453916, :b=>-1.2101044839432604, :c=>0.9951080541299309, :d=>1.1214913366990091}, {:a=>-0.20509378406619197, :b=>-2.25636723008274, :c=>0.07439683752718881, :d=>0.03337808071395043}, {:a=>-0.36751759633587283, :b=>-2.459396995419841, :c=>-0.10426935596946013, :d=>-0.1777728752366347}, {:a=>-0.25375169441454987, :b=>-2.3171896180181872, :c=>0.020873136143995108, :d=>-0.029877202738914865}, {:a=>0.14363143764539116, :b=>-1.8204607029432611, :c=>0.45799458140993027, :d=>0.4867208689390085}, {:a=>-0.35174362864684605, :b=>-2.4396795358085575, :c=>-0.08691799151153068, :d=>-0.1572667172408999}, {:a=>-0.364531724098874, :b=>-2.4556646551235923, :c=>-0.10098489650876147, :d=>-0.17389124132853623}, {:a=>0.15353944460160682, :b=>-1.8080756942479914, :c=>0.4688933890617675, :d=>0.49960127798208886}, {:a=>0.865402417707728, :b=>-0.9182469778653402, :c=>1.2519426594785008, :d=>1.4250231430200464}, {:a=>-0.7646042942282445, :b=>-2.9557553677853057, :c=>-0.5410647236510691, :d=>-0.6939855824967178}, {:a=>2.2112409983821886, :b=>0.7640512479777355, :c=>2.7323650982204075, :d=>3.174613297896845}, {:a=>1.066226270306952, :b=>-0.6672171621163101, :c=>1.4728488973376475, :d=>1.6860941513990377}, {:a=>0.3076617176685038, :b=>-1.6154228529143704, :c=>0.6384278894353542, :d=>0.699960232969055}, {:a=>1.1279156921575555, :b=>-0.5901053848030557, :c=>1.5407072613733113, :d=>1.7662903998048223}, {:a=>-0.48979574921494246, :b=>-2.612244686518678, :c=>-0.2387753241364367, :d=>-0.3367344739794252}, {:a=>-0.7930955352142798, :b=>-2.9913694190178495, :c=>-0.572405088735708, :d=>-0.7310241957785637}, {:a=>-0.6843068075962181, :b=>-2.8553835094952724, :c=>-0.45273748835584, :d=>-0.5895988498750835}, {:a=>-0.7664093686736974, :b=>-2.9580117108421216, :c=>-0.5430503055410671, :d=>-0.6963321792758066}, {:a=>0.782170474380642, :b=>-1.0222869070241976, :c=>1.1603875218187063, :d=>1.3168216166948348}, {:a=>0.23657461301731494, :b=>-1.7042817337283562, :c=>0.5602320743190464, :d=>0.6075469969225094}, {:a=>-0.006754599063711235, :b=>-2.008443248829639, :c=>0.2925699410299176, :d=>0.29121902121717536}, {:a=>-0.5758001927743291, :b=>-2.7197502409679113, :c=>-0.3333802120517621, :d=>-0.4485402506066279}, {:a=>-0.5246592355908738, :b=>-2.6558240444885923, :c=>-0.2771251591499612, :d=>-0.38205700626813593}, {:a=>0.36843500611449465, :b=>-1.5394562423568816, :c=>0.7052785067259442, :d=>0.7789655079488431}, {:a=>-0.461377697564895, :b=>-2.5767221219561187, :c=>-0.20751546732138454, :d=>-0.2997910068343635}, {:a=>0.09545011192106811, :b=>-1.8806873600986649, :c=>0.4049951231131749, :d=>0.4240851454973885}, {:a=>1.324295890762943, :b=>-0.34463013654632135, :c=>1.7567254798392373, :d=>2.0215846579918257}, {:a=>1.0767646603148988, :b=>-0.6540441746063765, :c=>1.4844411263463888, :d=>1.6997940584093685}, {:a=>1.9965946387187008, :b=>0.49574329839837583, :c=>2.4962541025905707, :d=>2.895573030334311}, {:a=>0.14030304281911268, :b=>-1.8246211964761092, :c=>0.45433334710102397, :d=>0.4823939556648465}, {:a=>-0.5326352899844796, :b=>-2.6657941124805995, :c=>-0.2858988189829276, :d=>-0.3924258769798235}, {:a=>1.2507481958627826, :b=>-0.4365647551715217, :c=>1.675823015449061, :d=>1.9259726546216176}, {:a=>0.8337458827899608, :b=>-0.9578176465125492, :c=>1.217120471068957, :d=>1.383869647626949}, {:a=>-1.2640287587422687, :b=>-3.580035948427836, :c=>-1.0904316346164957, :d=>-1.3432373863649494}, {:a=>-0.40939686216833254, :b=>-2.5117460777104155, :c=>-0.15033654838516586, :d=>-0.2322159208188323}, {:a=>0.20027211467662662, :b=>-1.7496598566542167, :c=>0.5202993261442893, :d=>0.5603537490796147}, {:a=>-0.6759828384038439, :b=>-2.844978548004805, :c=>-0.44358112224422835, :d=>-0.578777689924997}, {:a=>0.09011500696108908, :b=>-1.8873562412986387, :c=>0.399126507657198, :d=>0.4171495090494158}, {:a=>1.117408061838154, :b=>-0.6032399227023075, :c=>1.5291488680219696, :d=>1.7526304803896005}, {:a=>1.5318531720093118, :b=>-0.08518353498836029, :c=>1.9850384892102433, :d=>2.2914091236121052}, {:a=>0.9497187740260271, :b=>-0.8128515324674661, :c=>1.3446906514286299, :d=>1.5346344062338353}, {:a=>-0.7623591913280592, :b=>-2.952948989160074, :c=>-0.5385951104608653, :d=>-0.6910669487264769}, {:a=>-1.0952873138628496, :b=>-3.369109142328562, :c=>-0.9048160452491347, :d=>-1.1238735080217046}, {:a=>-3.0641005646997366, :b=>-5.8301257058746705, :c=>-3.070510621169711, :d=>-3.6833307341096577}, {:a=>0.7101409119092067, :b=>-1.1123238601134917, :c=>1.0811550031001274, :d=>1.2231831854819688}, {:a=>-0.4477987061234718, :b=>-2.5597483826543397, :c=>-0.19257857673581902, :d=>-0.2821383179605133}, {:a=>-1.5163045140759157, :b=>-3.8953806425948945, :c=>-1.3679349654835073, :d=>-1.6711958682986905}, {:a=>-0.6765192071075451, :b=>-2.8456490088844313, :c=>-0.44417112781829965, :d=>-0.5794749692398087}, {:a=>-0.2895640100165578, :b=>-2.3619550125206974, :c=>-0.01852041101821361, :d=>-0.07643321302152517}, {:a=>0.18799502669989018, :b=>-1.7650062166251372, :c=>0.5067945293698792, :d=>0.5443935347098572}, {:a=>0.19227502314285963, :b=>-1.7596562210714255, :c=>0.5115025254571456, :d=>0.5499575300857176}, {:a=>0.17450706221350357, :b=>-1.7818661722331206, :c=>0.49195776843485395, :d=>0.5268591808775547}, {:a=>-1.2048466502411745, :b=>-3.506058312801468, :c=>-1.025331315265292, :d=>-1.2663006453135268}, {:a=>-0.4373939507829961, :b=>-2.546742438478745, :c=>-0.18113334586129576, :d=>-0.26861213601789496}, {:a=>-0.9049316937377756, :b=>-3.131164617172219, :c=>-0.6954248631115532, :d=>-0.8764112018591084}, {:a=>-0.24020464296512953, :b=>-2.300255803706412, :c=>0.03577489273835749, :d=>-0.0122660358546684}, {:a=>2.031215660848962, :b=>0.5390195760612024, :c=>2.5343372269338587, :d=>2.940580359103651}, {:a=>-1.7279286568348116, :b=>-4.159910821043514, :c=>-1.600721522518293, :d=>-1.9463072538852553}, {:a=>-1.297369129484828, :b=>-3.621711411856035, :c=>-1.1271060424333108, :d=>-1.3865798683302764}, {:a=>0.1020930489863332, :b=>-1.8723836887670835, :c=>0.4123023538849665, :d=>0.4327209636822331}, {:a=>0.18378661206329977, :b=>-1.7702667349208754, :c=>0.5021652732696298, :d=>0.5389225956822897}, {:a=>1.4268852458341663, :b=>-0.21639344270729222, :c=>1.8695737704175832, :d=>2.1549508195844163}, {:a=>0.35471997971134595, :b=>-1.5566000253608177, :c=>0.6901919776824805, :d=>0.7611359736247497}, {:a=>-0.05079401512947009, :b=>-2.0634925189118376, :c=>0.2441265833575829, :d=>0.23396778033168886}, {:a=>-1.829871632086847, :b=>-4.287339540108558, :c=>-1.712858795295532, :d=>-2.0788331217129015}, {:a=>-0.02277506891450309, :b=>-2.0284688361431287, :c=>0.2749474241940466, :d=>0.270392410411146}, {:a=>1.3078053819536382, :b=>-0.3652432725579524, :c=>1.7385859201490022, :d=>2.0001469965397294}, {:a=>-0.24083339939898094, :b=>-2.3010417492487263, :c=>0.03508326066112094, :d=>-0.01308341921867523}, {:a=>0.08175679830002945, :b=>-1.8978040021249631, :c=>0.3899324781300324, :d=>0.4062838377900383}, {:a=>0.2519502326256892, :b=>-1.6850622092178886, :c=>0.5771452558882582, :d=>0.6275353024133961}, {:a=>-0.36787568388977, :b=>-2.4598446048622122, :c=>-0.10466325227874701, :d=>-0.17823838905670103}, {:a=>-0.7757779526606022, :b=>-2.9697224408257528, :c=>-0.5533557479266626, :d=>-0.7085113384587829}, {:a=>1.2851307674371406, :b=>-0.39358654070357435, :c=>1.7136438441808548, :d=>1.9706699976682829}, {:a=>0.3263423645786811, :b=>-1.5920720442766487, :c=>0.6589766010365492, :d=>0.7242450739522854}, {:a=>-1.2020069698394404, :b=>-3.5025087122993, :c=>-1.0222076668233846, :d=>-1.2626090607912726}, {:a=>0.5414075373670321, :b=>-1.32324057829121, :c=>0.8955482911037353, :d=>1.0038297985771416}, {:a=>-1.1248302992402561, :b=>-3.40603787405032, :c=>-0.9373133291642819, :d=>-1.162279389012333}, {:a=>-0.9166782363436595, :b=>-3.1458477954295745, :c=>-0.7083460599780256, :d=>-0.8916817072467573}, {:a=>-0.002369628677216423, :b=>-2.0029620358465205, :c=>0.2973934084550619, :d=>0.29691948271961865}, {:a=>0.024249746134461486, :b=>-1.9696878173319232, :c=>0.3266747207479076, :d=>0.3315246699747999}, {:a=>-0.791747444295722, :b=>-2.9896843053696527, :c=>-0.5709221887252942, :d=>-0.7292716775844386}, {:a=>-0.15614086839603558, :b=>-2.1951760854950444, :c=>0.12824504476436083, :d=>0.09701687108515372}, {:a=>-0.07353717336868126, :b=>-2.0919214667108514, :c=>0.2191091092944506, :d=>0.20440167462071435}, {:a=>-0.7694771127138351, :b=>-2.961846390892294, :c=>-0.5464248239852187, :d=>-0.7003202465279856}, {:a=>-0.07324154109595149, :b=>-2.0915519263699394, :c=>0.21943430479445336, :d=>0.20478599657526303}, {:a=>0.9549558622863403, :b=>-0.8063051721420746, :c=>1.3504514485149746, :d=>1.5414426209722425}, {:a=>-1.352043346276218, :b=>-3.690054182845272, :c=>-1.18724768090384, :d=>-1.4576563501590833}, {:a=>1.6240352537129936, :b=>0.03004406714124208, :c=>2.086438779084293, :d=>2.4112458298268917}, {:a=>-0.34112509878484565, :b=>-2.426406373481057, :c=>-0.07523760866333024, :d=>-0.1434626284202994}, {:a=>0.48655493118904614, :b=>-1.3918063360136923, :c=>0.8352104243079508, :d=>0.93252141054576}, {:a=>1.6135305354221716, :b=>0.016913169277714246, :c=>2.074883588964389, :d=>2.397589696048823}, {:a=>0.008184556192235322, :b=>-1.9897693047597058, :c=>0.30900301181145884, :d=>0.3106399230499059}, {:a=>0.6659854004814021, :b=>-1.1675182493982474, :c=>1.0325839405295423, :d=>1.1657810206258228}, {:a=>1.2096822845301587, :b=>-0.4878971443373017, :c=>1.6306505129831748, :d=>1.8725869698892064}, {:a=>0.20976894808180585, :b=>-1.7377888148977427, :c=>0.5307458428899865, :d=>0.5726996325063476}, {:a=>-1.2033139772156578, :b=>-3.504142471519572, :c=>-1.0236453749372236, :d=>-1.2643081703803551}, {:a=>0.7629358087744337, :b=>-1.046330239031958, :c=>1.139229389651877, :d=>1.2918165514067639}, {:a=>-2.218403695497223, :b=>-4.7730046193715285, :c=>-2.1402440650469456, :d=>-2.58392480414639}, {:a=>1.0231322056373948, :b=>-0.7210847429532565, :c=>1.4254454262011345, :d=>1.6300718673286134}, {:a=>1.1980691927462472, :b=>-0.5024135090671911, :c=>1.617876112020872, :d=>1.8574899505701215}, {:a=>-1.7053780930757225, :b=>-4.131722616344653, :c=>-1.575915902383295, :d=>-1.9169915209984392}, {:a=>0.8320867785007263, :b=>-0.9598915268740922, :c=>1.215295456350799, :d=>1.3817128120509443}, {:a=>0.1473255344779393, :b=>-1.815843081902576, :c=>0.4620580879257332, :d=>0.4915231948213211}, {:a=>1.3153497061404558, :b=>-0.3558128673244303, :c=>1.7468846767545014, :d=>2.0099546179825927}, {:a=>1.009515595969554, :b=>-0.7381055050380574, :c=>1.4104671555665096, :d=>1.6123702747604205}, {:a=>1.20458853737507, :b=>-0.4942643282811625, :c=>1.6250473911125771, :d=>1.865965098587591}, {:a=>-0.8736660536693036, :b=>-3.0920825670866297, :c=>-0.6610326590362341, :d=>-0.8357658697700947}, {:a=>1.275898844838043, :b=>-0.40512644395244624, :c=>1.7034887293218475, :d=>1.958668498289456}, {:a=>-1.0752530744653523, :b=>-3.3440663430816904, :c=>-0.8827783819118877, :d=>-1.0978289968049582}, {:a=>-1.2558244593712853, :b=>-3.569780574214106, :c=>-1.0814069053084139, :d=>-1.332571797182671}, {:a=>0.8942869610583727, :b=>-0.8821412986770343, :c=>1.28371565716421, :d=>1.4625730493758846}, {:a=>-0.07399465561594201, :b=>-2.0924933195199276, :c=>0.21860587882246377, :d=>0.20380694769927538}, {:a=>-0.16728103088177884, :b=>-2.2091012886022234, :c=>0.11599086603004324, :d=>0.08253465985368749}, {:a=>0.2635547777209809, :b=>-1.670556527848774, :c=>0.5899102554930791, :d=>0.6426212110372751}, {:a=>0.37420100047490246, :b=>-1.532248749406372, :c=>0.7116211005223927, :d=>0.7864613006173732}, {:a=>0.9332472341740787, :b=>-0.8334409572824018, :c=>1.3265719575914867, :d=>1.5132214044263024}, {:a=>-1.1576015241668725, :b=>-3.4470019052085905, :c=>-0.9733616765835598, :d=>-1.2048819814169343}, {:a=>-0.011644357209245372, :b=>-2.0145554465115567, :c=>0.2871912070698301, :d=>0.284862335627981}, {:a=>1.1201966344643162, :b=>-0.5997542069196049, :c=>1.5322162979107479, :d=>1.7562556248036112}, {:a=>0.14387289757935104, :b=>-1.8201588780258113, :c=>0.45826018733728613, :d=>0.4870347668531564}, {:a=>0.1371338420003529, :b=>-1.828582697499559, :c=>0.4508472262003882, :d=>0.4782739946004587}, {:a=>1.7791432442258692, :b=>0.22392905528233653, :c=>2.2570575686484564, :d=>2.61288621749363}, {:a=>1.5673177888126242, :b=>-0.040852763984219775, :c=>2.0240495676938868, :d=>2.3375131254564114}, {:a=>0.8768692763481866, :b=>-0.9039134045647668, :c=>1.2645562039830054, :d=>1.4399300592526427}, {:a=>0.42602246798580606, :b=>-1.4674719150177424, :c=>0.7686247147843868, :d=>0.853829208381548}, {:a=>0.5083982025899583, :b=>-1.364502246762552, :c=>0.8592380228489542, :d=>0.9609176633669458}, {:a=>-0.3027896641979366, :b=>-2.378487080247421, :c=>-0.0330686306177303, :d=>-0.09362656345731762}, {:a=>0.26291003808696783, :b=>-1.6713624523912902, :c=>0.5892010418956646, :d=>0.6417830495130582}, {:a=>1.2139747106470944, :b=>-0.482531611691132, :c=>1.6353721817118039, :d=>1.8781671238412228}, {:a=>0.5511627435497571, :b=>-1.3110465705628036, :c=>0.9062790179047329, :d=>1.0165115666146842}, {:a=>0.25069559629529314, :b=>-1.6866305046308836, :c=>0.5757651559248225, :d=>0.625904275183881}, {:a=>-0.9620837470027003, :b=>-3.2026046837533753, :c=>-0.7582921217029703, :d=>-0.9507088711035103}, {:a=>-1.587695316201756, :b=>-3.9846191452521946, :c=>-1.4464648478219317, :d=>-1.764003911062283}, {:a=>0.06709133193161862, :b=>-1.9161358350854767, :c=>0.3738004651247805, :d=>0.3872187315111042}, {:a=>-0.19433594401506232, :b=>-2.242919930018828, :c=>0.08623046158343142, :d=>0.047363272780418963}, {:a=>-1.872765017458103, :b=>-4.340956271822629, :c=>-1.7600415192039136, :d=>-2.1345945226955343}, {:a=>-0.3440393853373539, :b=>-2.4300492316716924, :c=>-0.07844332387108932, :d=>-0.1472512009385601}, {:a=>1.1574329994528743, :b=>-0.5532087506839072, :c=>1.5731762993981617, :d=>1.8046628992887366}, {:a=>-0.38743419891470265, :b=>-2.4842927486433783, :c=>-0.12617761880617295, :d=>-0.20366445858911347}, {:a=>-0.9970979168302948, :b=>-3.2463723960378683, :c=>-0.7968077085133243, :d=>-0.9962272918793833}, {:a=>-0.012107520287386387, :b=>-2.015134400359233, :c=>0.28668172768387495, :d=>0.2842602236263977}, {:a=>-1.18330366054726, :b=>-3.479129575684075, :c=>-1.001634026601986, :d=>-1.238294758711438}, {:a=>-1.7436085861278037, :b=>-4.179510732659754, :c=>-1.6179694447405841, :d=>-1.9666911619661447}, {:a=>-1.281626447967425, :b=>-3.6020330599592816, :c=>-1.1097890927641676, :d=>-1.3661143823576527}, {:a=>1.7674208350292244, :b=>0.20927604378653042, :c=>2.244162918532147, :d=>2.5976470855379916}, {:a=>0.2780958704939477, :b=>-1.6523801618825655, :c=>0.6059054575433425, :d=>0.6615246316421319}, {:a=>-0.41439394122830886, :b=>-2.517992426535386, :c=>-0.1558333353511398, :d=>-0.23871212359680155}, {:a=>0.8612096294235577, :b=>-0.9234879632205528, :c=>1.2473305923659135, :d=>1.4195725182506251}, {:a=>-1.077482477994474, :b=>-3.3468530974930926, :c=>-0.8852307257939216, :d=>-1.1007272213928163}, {:a=>0.10477291897164118, :b=>-1.8690338512854485, :c=>0.4152502108688053, :d=>0.43620479466313355}, {:a=>0.3864881662572477, :b=>-1.5168897921784403, :c=>0.7251369828829725, :d=>0.802434616134422}, {:a=>1.1307430807170054, :b=>-0.5865711491037433, :c=>1.5438173887887061, :d=>1.769966004932107}, {:a=>1.8567614217677908, :b=>0.32095177720973833, :c=>2.34243756394457, :d=>2.713789848298128}, {:a=>-0.338719660686667, :b=>-2.4233995758583338, :c=>-0.0725916267553337, :d=>-0.14033555889266708}, {:a=>-0.17575024277443582, :b=>-2.219687803468045, :c=>0.10667473294812058, :d=>0.07152468439323342}, {:a=>1.4248546830311835, :b=>-0.21893164621102068, :c=>1.867340151334302, :d=>2.1523110879405385}, {:a=>-0.9382059448395696, :b=>-3.1727574310494617, :c=>-0.7320265393235266, :d=>-0.9196677282914405}, {:a=>1.4583851885983439, :b=>-0.17701851425207016, :c=>1.9042237074581785, :d=>2.195900745177847}, {:a=>-0.23733341056498145, :b=>-2.2966667632062268, :c=>0.03893324837852036, :d=>-0.008533433734475904}, {:a=>-1.3676372828722818, :b=>-3.7095466035903524, :c=>-1.20440101115951, :d=>-1.4779284677339664}, {:a=>0.02201946605296003, :b=>-1.9724756674338, :c=>0.32422141265825605, :d=>0.328625305868848}, {:a=>-1.4219138657427166, :b=>-3.7773923321783958, :c=>-1.2641052523169884, :d=>-1.5484880254655315}, {:a=>-2.3263309630201685, :b=>-4.90791370377521, :c=>-2.2589640593221856, :d=>-2.7242302519262194}, {:a=>-0.8048851043828615, :b=>-3.0061063804785766, :c=>-0.5853736148211477, :d=>-0.7463506356977201}, {:a=>1.7325160273042814, :b=>0.16564503413035148, :c=>2.2057676300347095, :d=>2.5522708354955657}, {:a=>1.5202935291829258, :b=>-0.09963308852134278, :c=>1.9723228821012186, :d=>2.2763815879378035}, {:a=>0.9451327453124793, :b=>-0.818584068359401, :c=>1.3396460198437272, :d=>1.528672568906223}, {:a=>0.4548540156656507, :b=>-1.4314324804179366, :c=>0.8003394172322158, :d=>0.891310220365346}, {:a=>0.2303221711620284, :b=>-1.7120972860474646, :c=>0.5533543882782312, :d=>0.5994188225106369}, {:a=>0.48680664157776615, :b=>-1.3914916980277923, :c=>0.8354873057355428, :d=>0.932848634051096}, {:a=>-0.5089697966906414, :b=>-2.6362122458633017, :c=>-0.2598667763597055, :d=>-0.3616607356978338}, {:a=>-2.072539304876264, :b=>-4.59067413109533, :c=>-1.9797932353638907, :d=>-2.394301096339144}, {:a=>-0.08712939336032305, :b=>-2.1089117417004037, :c=>0.20415766730364462, :d=>0.18673178863158002}, {:a=>-0.21786902752003162, :b=>-2.2723362844000397, :c=>0.06034406972796519, :d=>0.016770264223958886}, {:a=>1.0243655762136996, :b=>-0.7195430297328755, :c=>1.4268021338350698, :d=>1.6316752490778097}, {:a=>0.3895329571609931, :b=>-1.5130838035487586, :c=>0.7284862528770925, :d=>0.8063928443092911}, {:a=>-0.9063277262443613, :b=>-3.1329096578054516, :c=>-0.6969604988687976, :d=>-0.8782260441176697}, {:a=>-0.8474120601488777, :b=>-3.0592650751860972, :c=>-0.6321532661637657, :d=>-0.801635678193541}, {:a=>-0.021180473975689274, :b=>-2.0264755924696116, :c=>0.27670147862674177, :d=>0.2724653838316039}, {:a=>0.28917117648029633, :b=>-1.6385360293996296, :c=>0.618088294128326, :d=>0.6759225294243852}, {:a=>-1.4700224364649002, :b=>-3.8375280455811254, :c=>-1.3170246801113903, :d=>-1.6110291674043702}, {:a=>1.4300218766100246, :b=>-0.2124726542374693, :c=>1.8730240642710272, :d=>2.159028439593032}, {:a=>-1.729920055483093, :b=>-4.1624000693538665, :c=>-1.6029120610314023, :d=>-1.9488960721280206}, {:a=>0.2392245771399995, :b=>-1.7009692785750006, :c=>0.5631470348539995, :d=>0.6109919502819994}, {:a=>-0.5874072907553093, :b=>-2.7342591134441365, :c=>-0.34614801983084026, :d=>-0.46362947798190207}, {:a=>-1.6036981444518144, :b=>-4.0046226805647684, :c=>-1.4640679588969958, :d=>-1.7848075877873588}, {:a=>-0.9759113837763914, :b=>-3.219889229720489, :c=>-0.7735025221540306, :d=>-0.9686847989093088}, {:a=>-0.227471906344461, :b=>-2.2843398829305763, :c=>0.04978090302109289, :d=>0.004286521752200678}, {:a=>0.8078142449882908, :b=>-0.9902321937646366, :c=>1.18859566948712, :d=>1.3501585184847782}, {:a=>0.13338642174630805, :b=>-1.833266972817115, :c=>0.44672506392093886, :d=>0.47340234827020045}, {:a=>1.7976754367846506, :b=>0.2470942959808129, :c=>2.2774429804631158, :d=>2.6369780678200456}, {:a=>0.11452501791744417, :b=>-1.8568437276031948, :c=>0.4259775197091886, :d=>0.4488825232926774}, {:a=>0.507342549058924, :b=>-1.3658218136763451, :c=>0.8580768039648163, :d=>0.9595453137766012}, {:a=>1.2735160748473628, :b=>-0.40810490644079644, :c=>1.7008676823320994, :d=>1.9555708973015717}, {:a=>0.6768682472029346, :b=>-1.1539146909963318, :c=>1.0445550719232282, :d=>1.179928721363815}, {:a=>1.2536908060966587, :b=>-0.43288649237917665, :c=>1.6790598867063247, :d=>1.9297980479256565}, {:a=>0.047083118983100095, :b=>-1.9411461012711249, :c=>0.35179143088141007, :d=>0.36120805467803013}, {:a=>0.23791957541571537, :b=>-1.7026005307303558, :c=>0.5617115329572869, :d=>0.60929544804043}, {:a=>0.36387905587342084, :b=>-1.545151180158224, :c=>0.700266961460763, :d=>0.7730427726354471}, {:a=>-0.6859077766834085, :b=>-2.8573847208542604, :c=>-0.4544985543517494, :d=>-0.5916801096884312}, {:a=>0.6068977265972413, :b=>-1.2413778417534485, :c=>0.9675874992569655, :d=>1.0889670445764137}, {:a=>-0.5079321333290296, :b=>-2.634915166661287, :c=>-0.25872534666193264, :d=>-0.3603117733277386}, {:a=>0.0683809019466952, :b=>-1.914523872566631, :c=>0.3752189921413647, :d=>0.38889517253070377}, {:a=>0.5493791971309376, :b=>-1.313276003586328, :c=>0.9043171168440314, :d=>1.014192956270219}, {:a=>1.845526175332003, :b=>0.30690771916500337, :c=>2.330078792865203, :d=>2.6991840279316035}, {:a=>0.6064244355928975, :b=>-1.2419694555088783, :c=>0.9670668791521873, :d=>1.0883517662707667}, {:a=>-0.9924976841478153, :b=>-3.240622105184769, :c=>-0.7917474525625967, :d=>-0.9902469893921597}, {:a=>-2.260355069548297, :b=>-4.825443836935371, :c=>-2.1863905765031273, :d=>-2.6384615904127866}, {:a=>1.160939678984524, :b=>-0.548825401269345, :c=>1.5770336468829766, :d=>1.8092215826798814}, {:a=>0.5350906442442421, :b=>-1.3311366946946974, :c=>0.8885997086686663, :d=>0.9956178375175149}, {:a=>-0.9774481526586359, :b=>-3.2218101908232946, :c=>-0.7751929679244995, :d=>-0.9706825984562266}, {:a=>-0.1874243309266653, :b=>-2.2342804136583316, :c=>0.09383323598066814, :d=>0.056348369795335085}, {:a=>0.5199193641343601, :b=>-1.3501007948320498, :c=>0.8719113005477961, :d=>0.9758951733746681}, {:a=>1.908633632712568, :b=>0.38579204089070984, :c=>2.399496995983825, :d=>2.781223722526338}, {:a=>0.8238893888282921, :b=>-0.970138263964635, :c=>1.2062783277111213, :d=>1.3710562054767799}, {:a=>0.9727082169776948, :b=>-0.7841147287778816, :c=>1.3699790386754644, :d=>1.5645206820710034}, {:a=>-0.04959413713299983, :b=>-2.0619926714162498, :c=>0.24544644915370017, :d=>0.2355276217271002}, {:a=>-1.628572712559911, :b=>-4.035715890699889, :c=>-1.4914299838159022, :d=>-1.8171445263278845}, {:a=>-0.5983416756964202, :b=>-2.7479270946205254, :c=>-0.3581758432660623, :d=>-0.47784417840534626}, {:a=>-0.44297175132629885, :b=>-2.5537146891578733, :c=>-0.18726892645892879, :d=>-0.2758632767241885}, {:a=>0.1842527659564425, :b=>-1.769684042554447, :c=>0.5026780425520867, :d=>0.5395285957433753}, {:a=>0.6822133171581205, :b=>-1.1472333535523496, :c=>1.0504346488739327, :d=>1.1868773123055567}, {:a=>-1.1508641905214112, :b=>-3.438580238151764, :c=>-0.9659506095735524, :d=>-1.1961234476778346}, {:a=>-0.7348452471578211, :b=>-2.918556558947276, :c=>-0.5083297718736033, :d=>-0.6552988213051674}, {:a=>-0.34120637307912993, :b=>-2.4265079663489124, :c=>-0.07532701038704298, :d=>-0.14356828500286895}, {:a=>-0.17180179145207508, :b=>-2.214752239315094, :c=>0.11101802940271738, :d=>0.07665767111230237}, {:a=>-0.2270483788713045, :b=>-2.2838104735891305, :c=>0.050246783241565035, :d=>0.004837107467304147}, {:a=>0.43814324607954824, :b=>-1.4523209424005648, :c=>0.781957570687503, :d=>0.8695862199034128}, {:a=>1.1614151626221094, :b=>-0.5482310467223632, :c=>1.5775566788843205, :d=>1.8098397114087423}, {:a=>-0.26468005792763843, :b=>-2.330850072409548, :c=>0.008851936279597683, :d=>-0.044084075305930004}, {:a=>0.05345489331933437, :b=>-1.933181383350832, :c=>0.3588003826512678, :d=>0.36949136131513466}, {:a=>-0.6621733211461439, :b=>-2.82771665143268, :c=>-0.42839065326075837, :d=>-0.5608253174899871}, {:a=>-1.386536663293917, :b=>-3.733170829117396, :c=>-1.2251903296233086, :d=>-1.502497662282092}, {:a=>1.6424087242563237, :b=>0.05301090532040442, :c=>2.1066495966819563, :d=>2.4351313415332205}, {:a=>0.6020253388837151, :b=>-1.247468326395356, :c=>0.9622278727720868, :d=>1.0826329405488297}, {:a=>0.09380418750228708, :b=>-1.8827447656221412, :c=>0.4031846062525158, :d=>0.4219454437529732}, {:a=>0.405999095937451, :b=>-1.4925011300781863, :c=>0.7465990055311962, :d=>0.8277988247186863}, {:a=>2.034758337414128, :b=>0.5434479217676595, :c=>2.5382341711555405, :d=>2.9451858386383662}, {:a=>1.1965675777713047, :b=>-0.5042905277858691, :c=>1.6162243355484354, :d=>1.8555378511026963}, {:a=>0.3539423615173434, :b=>-1.5575720481033208, :c=>0.6893365976690777, :d=>0.7601250699725464}, {:a=>1.7708630827736445, :b=>0.2135788534670553, :c=>2.247949391051009, :d=>2.602122007605738}, {:a=>-0.9789094857888373, :b=>-3.2236368572360465, :c=>-0.7768004343677211, :d=>-0.9725823315254885}, {:a=>-0.15912169901270515, :b=>-2.1989021237658815, :c=>0.1249661310860243, :d=>0.0931417912834833}, {:a=>1.5237463763332033, :b=>-0.09531702958349597, :c=>1.9761210139665237, :d=>2.2808702892331643}, {:a=>-0.5492137278598075, :b=>-2.6865171598247595, :c=>-0.30413510064578825, :d=>-0.41397784621774975}, {:a=>1.5805750910968728, :b=>-0.02428113612890903, :c=>2.0386326002065602, :d=>2.3547476184259346}, {:a=>1.5551137072038363, :b=>-0.056107865995204564, :c=>2.01062507792422, :d=>2.321647819364987}, {:a=>-0.7604238382836154, :b=>-2.9505297978545193, :c=>-0.5364662221119769, :d=>-0.6885509897687001}, {:a=>-0.14564500555482177, :b=>-2.182056256943527, :c=>0.13979049388969603, :d=>0.11066149277873169}, {:a=>1.7402469117434574, :b=>0.17530863967932175, :c=>2.2142716029178033, :d=>2.5623209852664943}, {:a=>-0.3317345611710612, :b=>-2.4146682014638263, :c=>-0.06490801728816736, :d=>-0.1312549295223796}, {:a=>0.31183644006754996, :b=>-1.6102044499155626, :c=>0.643020084074305, :d=>0.705387372087815}, {:a=>0.529240923611812, :b=>-1.3384488454852352, :c=>0.8821650159729932, :d=>0.9880132006953555}, {:a=>0.0007756477174916353, :b=>-1.9990304403531354, :c=>0.3008532124892408, :d=>0.30100834203273913}, {:a=>-0.5429826812249461, :b=>-2.6787283515311824, :c=>-0.2972809493474407, :d=>-0.4058774855924299}, {:a=>-1.0340526438732371, :b=>-3.292565804841546, :c=>-0.8374579082605609, :d=>-1.0442684370352082}, {:a=>-0.718023061331236, :b=>-2.897528826664045, :c=>-0.4898253674643596, :d=>-0.6334299797306067}, {:a=>0.28714190302050935, :b=>-1.6410726212243634, :c=>0.6158560933225603, :d=>0.6732844739266621}, {:a=>-0.6088551834292831, :b=>-2.7610689792866037, :c=>-0.36974070177221147, :d=>-0.4915117384580681}, {:a=>0.1958048485105552, :b=>-1.755243939361806, :c=>0.5153853333616107, :d=>0.5545463030637218}, {:a=>-0.4112618278447093, :b=>-2.5140772848058868, :c=>-0.15238801062918028, :d=>-0.2346403761981221}, {:a=>0.5047584127478423, :b=>-1.3690519840651971, :c=>0.8552342540226265, :d=>0.956185936572195}, {:a=>1.9163898591959334, :b=>0.3954873239949168, :c=>2.4080288451155267, :d=>2.7913068169547133}, {:a=>-0.1891868882640506, :b=>-2.236483610330063, :c=>0.0918944229095443, :d=>0.05405704525673419}, {:a=>-0.4783473214841646, :b=>-2.5979341518552057, :c=>-0.2261820536325811, :d=>-0.32185151792941397}, {:a=>0.6520159288343966, :b=>-1.1849800889570044, :c=>1.0172175217178363, :d=>1.1476207074847156}, {:a=>-2.0625467174969208, :b=>-4.57818339687115, :c=>-1.968801389246613, :d=>-2.3813107327459972}, {:a=>0.9545586527572805, :b=>-0.8068016840533996, :c=>1.3500145180330085, :d=>1.5409262485844646}, {:a=>0.1365738081117762, :b=>-1.8292827398602798, :c=>0.4502311889229538, :d=>0.477545950545309}, {:a=>0.29302442219860053, :b=>-1.6337194722517494, :c=>0.6223268644184605, :d=>0.6809317488581808}, {:a=>2.49709823857165, :b=>1.121372798214562, :c=>3.046808062428815, :d=>3.5462277101431448}, {:a=>1.5296640015351308, :b=>-0.08791999808108653, :c=>1.982630401688644, :d=>2.28856320199567}, {:a=>2.495300247407217, :b=>1.119125309259021, :c=>3.0448302721479386, :d=>3.5438903216293816}, {:a=>-0.20328002082537178, :b=>-2.2541000260317148, :c=>0.07639197709209103, :d=>0.03573597292701669}, {:a=>1.4678984357738163, :b=>-0.1651269552827297, :c=>1.9146882793511981, :d=>2.2082679665059612}, {:a=>-0.09740803929040678, :b=>-2.1217600491130084, :c=>0.19285115678055254, :d=>0.17336954892247117}, {:a=>0.433456968696407, :b=>-1.4581787891294913, :c=>0.7768026655660477, :d=>0.8634940593053291}, {:a=>0.9341007968451315, :b=>-0.8323740039435856, :c=>1.3275108765296448, :d=>1.514331035898671}, {:a=>1.292014003278454, :b=>-0.38498249590193256, :c=>1.7212154036062994, :d=>1.9796182042619903}, {:a=>1.1709894722388878, :b=>-0.5362631597013903, :c=>1.5880884194627767, :d=>1.8222863139105543}, {:a=>-1.5176087653555033, :b=>-3.8970109566943787, :c=>-1.3693696418910537, :d=>-1.6728913949621542}, {:a=>-1.3278890270419599, :b=>-3.65986128380245, :c=>-1.160677929746156, :d=>-1.426255735154548}, {:a=>0.41613648205562154, :b=>-1.479829397430473, :c=>0.7577501302611838, :d=>0.840977426672308}, {:a=>0.22475219668857135, :b=>-1.7190597541392858, :c=>0.5472274163574284, :d=>0.5921778556951427}, {:a=>-0.3373706410517336, :b=>-2.421713301314667, :c=>-0.07110770515690701, :d=>-0.13858183336725372}, {:a=>-0.15687607623001276, :b=>-2.196095095287516, :c=>0.12743631614698595, :d=>0.09606110090098338}, {:a=>-0.0840313356469574, :b=>-2.1050391695586965, :c=>0.20756553078834683, :d=>0.19075926365895535}, {:a=>-1.2734446440041274, :b=>-3.5918058050051593, :c=>-1.1007891084045403, :d=>-1.3554780372053656}, {:a=>-0.10271377129222842, :b=>-2.1283922141152853, :c=>0.18701485157854872, :d=>0.16647209732010304}, {:a=>-1.5277316529449056, :b=>-3.909664566181132, :c=>-1.3805048182393964, :d=>-1.6860511488283774}, {:a=>0.3069721917503039, :b=>-1.6162847603121202, :c=>0.6376694109253342, :d=>0.6990638492753951}, {:a=>0.03078294893036911, :b=>-1.9615213138370386, :c=>0.333861243823406, :d=>0.34001783360947985}, {:a=>0.3613315955855305, :b=>-1.5483355055180867, :c=>0.6974647551440836, :d=>0.7697310742611897}, {:a=>-0.19872197696957747, :b=>-2.2484024712119717, :c=>0.08140582533346474, :d=>0.041661429939549244}, {:a=>0.7935924759313481, :b=>-1.008009405085815, :c=>1.1729517235244828, :d=>1.3316702187107525}, {:a=>-1.213389532049055, :b=>-3.516736915061319, :c=>-1.0347284852539607, :d=>-1.2774063916637717}, {:a=>2.5471184812706484, :b=>1.1838981015883103, :c=>3.101830329397713, :d=>3.611254025651843}, {:a=>-0.6810734409498499, :b=>-2.851341801187312, :c=>-0.449180785044835, :d=>-0.585395473234805}, {:a=>0.4586608215783853, :b=>-1.4266739730270186, :c=>0.8045269037362239, :d=>0.8962590680519009}, {:a=>1.459556490787557, :b=>-0.175554386515554, :c=>1.9055121398663128, :d=>2.197423438023824}, {:a=>-0.22960680109573994, :b=>-2.287008501369675, :c=>0.04743251879468602, :d=>0.001511158575538074}, {:a=>0.48405428433476505, :b=>-1.3949321445815437, :c=>0.8324597127682416, :d=>0.9292705696351946}, {:a=>-0.4398352936400423, :b=>-2.5497941170500527, :c=>-0.18381882300404662, :d=>-0.27178588173205503}, {:a=>0.748280996985092, :b=>-1.064648753768635, :c=>1.1231090966836013, :d=>1.2727652960806195}, {:a=>-0.42742276076652685, :b=>-2.5342784509581584, :c=>-0.17016503684317957, :d=>-0.255649588996485}, {:a=>1.0225923328068176, :b=>-0.7217595839914781, :c=>1.4248515660874994, :d=>1.629370032648863}, {:a=>0.6649958390230797, :b=>-1.1687552012211504, :c=>1.0314954229253877, :d=>1.1644945907300035}, {:a=>0.6087424438243699, :b=>-1.2390719452195378, :c=>0.9696166882068069, :d=>1.091365176971681}, {:a=>0.9073672709126351, :b=>-0.8657909113592062, :c=>1.2981039980038986, :d=>1.4795774521864258}, {:a=>1.4593872856359908, :b=>-0.17576589295501144, :c=>1.90532601419959, :d=>2.1972034713267883}, {:a=>-1.2949406107299404, :b=>-3.6186757634124254, :c=>-1.1244346718029345, :d=>-1.3834227939489225}, {:a=>0.8491276202870698, :b=>-0.9385904746411629, :c=>1.2340403823157768, :d=>1.4038659063731909}, {:a=>-1.0975469904656685, :b=>-3.3719337380820855, :c=>-0.9073016895122354, :d=>-1.126811087605369}, {:a=>-0.9556475183750236, :b=>-3.1945593979687796, :c=>-0.7512122702125259, :d=>-0.9423417738875306}, {:a=>-0.3642660671869146, :b=>-2.455332583983643, :c=>-0.1006926739056061, :d=>-0.17354588734298904}, {:a=>-0.5208523376118509, :b=>-2.6510654220148133, :c=>-0.27293757137303604, :d=>-0.3771080388954062}, {:a=>-0.9343307745080898, :b=>-3.1679134681351124, :c=>-0.7277638519588987, :d=>-0.9146300068605167}, {:a=>-0.05816284341490842, :b=>-2.0727035542686356, :c=>0.23602087224360074, :d=>0.22438830356061906}, {:a=>-0.28989192920489304, :b=>-2.3623649115061163, :c=>-0.0188811221253824, :d=>-0.07685950796636098}, {:a=>-0.272827316702681, :b=>-2.3410341458783512, :c=>-0.00011004837294914527, :d=>-0.054675511713485336}, {:a=>1.7487448146407116, :b=>0.18593101830088932, :c=>2.2236192961047827, :d=>2.573368259032925}, {:a=>1.072577319347545, :b=>-0.6592783508155688, :c=>1.4798350512822995, :d=>1.6943505151518086}, {:a=>-1.079588223108942, :b=>-3.3494852788861773, :c=>-0.8875470454198362, :d=>-1.1034646900416245}, {:a=>-0.9973432417077479, :b=>-3.246679052134685, :c=>-0.7970775658785227, :d=>-0.9965462142200723}, {:a=>0.8633587935456531, :b=>-0.9208015080679337, :c=>1.2496946729002185, :d=>1.4223664316093492}, {:a=>-0.5779514074390211, :b=>-2.7224392592987763, :c=>-0.3357465481829232, :d=>-0.45133682967072747}, {:a=>-0.16569497810887587, :b=>-2.207118722636095, :c=>0.11773552408023652, :d=>0.08459652845846136}, {:a=>2.038333916812611, :b=>0.5479173960157633, :c=>2.542167308493872, :d=>2.949834091856394}, {:a=>0.16988795250648886, :b=>-1.7876400593668889, :c=>0.48687674775713774, :d=>0.5208543382584355}, {:a=>0.4188424196472438, :b=>-1.4764469754409453, :c=>0.7607266616119681, :d=>0.8444951455414169}, {:a=>-1.5141491930524011, :b=>-3.8926864913155015, :c=>-1.3655641123576414, :d=>-1.6683939509681216}, {:a=>-0.540852739621689, :b=>-2.6760659245271112, :c=>-0.294938013583858, :d=>-0.4031085615081958}, {:a=>0.2601967738656376, :b=>-1.674754032667953, :c=>0.5862164512522015, :d=>0.6382558060253289}, {:a=>0.7380370387602315, :b=>-1.0774537015497105, :c=>1.1118407426362547, :d=>1.259448150388301}, {:a=>-0.3150037856305791, :b=>-2.3937547320382238, :c=>-0.046504164193637065, :d=>-0.10950492131975287}, {:a=>0.5383644066901913, :b=>-1.327044491637261, :c=>0.8922008473592105, :d=>0.9998737286972486}, {:a=>-1.7695441337206452, :b=>-4.211930167150806, :c=>-1.6464985470927098, :d=>-2.000407373836839}, {:a=>-0.6572626958583017, :b=>-2.821578369822877, :c=>-0.42298896544413195, :d=>-0.5544415046157922}, {:a=>0.9095002527827144, :b=>-0.8631246840216071, :c=>1.300450278060986, :d=>1.4823503286175288}, {:a=>-0.3421678822843156, :b=>-2.4277098528553944, :c=>-0.07638467051274722, :d=>-0.14481824696961032}, {:a=>-2.0832265430988572, :b=>-4.604033178873571, :c=>-1.991549197408743, :d=>-2.4081945060285146}, {:a=>1.352607068407005, :b=>-0.30924116449124384, :c=>1.7878677752477057, :d=>2.0583891889291066}, {:a=>-0.5768538933644518, :b=>-2.7210673667055647, :c=>-0.334539282700897, :d=>-0.44991006137378736}, {:a=>0.015577886363915517, :b=>-1.9805276420451057, :c=>0.31713567500030704, :d=>0.32025125227309015}, {:a=>0.30757127852171323, :b=>-1.6155359018478586, :c=>0.6383284063738845, :d=>0.6998426620782272}, {:a=>1.4549206104402035, :b=>-0.1813492369497458, :c=>1.900412671484224, :d=>2.1913967935722645}, {:a=>-1.9127166229516637, :b=>-4.390895778689579, :c=>-1.8039882852468303, :d=>-2.186531609837163}, {:a=>0.25951450979457347, :b=>-1.675606862756783, :c=>0.5854659607740309, :d=>0.6373688627329455}, {:a=>-1.7455510478267275, :b=>-4.181938809783409, :c=>-1.6201061526094005, :d=>-1.9692163621747458}, {:a=>-0.2970436881813889, :b=>-2.371304610226736, :c=>-0.026748056999527814, :d=>-0.08615679463580556}, {:a=>-0.38141259377849623, :b=>-2.47676574222312, :c=>-0.11955385315634592, :d=>-0.19583637191204512}, {:a=>-0.19828360396072064, :b=>-2.247854504950901, :c=>0.08188803564320726, :d=>0.04223131485106313}, {:a=>0.2946392067035758, :b=>-1.6317009916205303, :c=>0.6241031273739334, :d=>0.6830309687146485}, {:a=>-1.5663966453470186, :b=>-3.9579958066837735, :c=>-1.4230363098817205, :d=>-1.736315638951124}, {:a=>-0.8456149821711296, :b=>-3.057018727713912, :c=>-0.6301764803882426, :d=>-0.7992994768224686}, {:a=>1.388835543270869, :b=>-0.26395557091141386, :c=>1.827719097597956, :d=>2.1054862062521296}, {:a=>1.239828049660714, :b=>-0.4502149379241076, :c=>1.6638108546267854, :d=>1.9117764645589281}, {:a=>-0.8852754171219442, :b=>-3.10659427140243, :c=>-0.6738029588341388, :d=>-0.8508580422585275}, {:a=>0.6042329945602313, :b=>-1.244708756799711, :c=>0.9646562940162544, :d=>1.0855028929283006}, {:a=>-0.25739604732644666, :b=>-2.3217450591580584, :c=>0.01686434794090863, :d=>-0.0346148615243807}, {:a=>-0.17308778840276653, :b=>-2.2163597355034583, :c=>0.10960343275695678, :d=>0.07498587507640347}, {:a=>-2.287835609591322, :b=>-4.859794511989152, :c=>-2.2166191705504548, :d=>-2.674186292468719}, {:a=>0.3088528703391402, :b=>-1.6139339120760747, :c=>0.6397381573730543, :d=>0.7015087314408823}, {:a=>-0.7999947961641563, :b=>-2.9999934952051954, :c=>-0.579994275780572, :d=>-0.7399932350134031}, {:a=>-1.2601269579923724, :b=>-3.5751586974904654, :c=>-1.0861396537916097, :d=>-1.3381650453900842}, {:a=>-0.5347880140941302, :b=>-2.668485017617663, :c=>-0.2882668155035433, :d=>-0.3952244183223694}, {:a=>-1.195748115004805, :b=>-3.4946851437560063, :c=>-1.0153229265052857, :d=>-1.2544725495062465}, {:a=>-0.1022646373437528, :b=>-2.127830796679691, :c=>0.1875088989218719, :d=>0.16705597145312134}, {:a=>1.3630645226268303, :b=>-0.2961693467164621, :c=>1.7993709748895135, :d=>2.0719838794148795}, {:a=>-0.471306401316501, :b=>-2.589133001645626, :c=>-0.21843704144815118, :d=>-0.31269832171145134}, {:a=>-0.2276523451588585, :b=>-2.284565431448573, :c=>0.049582420325255616, :d=>0.0040519512934839574}, {:a=>-0.6490732921286281, :b=>-2.811341615160785, :c=>-0.413980621341491, :d=>-0.5437952797672165}, {:a=>0.5631446045342479, :b=>-1.2960692443321902, :c=>0.9194590649876726, :d=>1.0320879858945222}, {:a=>1.217027678868405, :b=>-0.47871540141449387, :c=>1.6387304467552455, :d=>1.8821359825289266}, {:a=>-1.2730021678483323, :b=>-3.5912527098104152, :c=>-1.1003023846331657, :d=>-1.354902818202832}, {:a=>-1.180973504890132, :b=>-3.4762168811126646, :c=>-0.9990708553791452, :d=>-1.2352655563571715}, {:a=>-0.3457442042465991, :b=>-2.432180255308249, :c=>-0.080318624671259, :d=>-0.14946746552057882}, {:a=>-2.1176843619727013, :b=>-4.647105452465876, :c=>-2.029452798169972, :d=>-2.452989670564512}, {:a=>-0.5791878704669452, :b=>-2.7239848380836813, :c=>-0.33710665751363983, :d=>-0.45294423160702885}, {:a=>0.9153441631309828, :b=>-0.8558197960862717, :c=>1.3068785794440811, :d=>1.4899474120702776}, {:a=>0.3792559880565157, :b=>-1.5259300149293553, :c=>0.7171815868621674, :d=>0.7930327844734705}, {:a=>0.5070843935058668, :b=>-1.3661445081176666, :c=>0.8577928328564535, :d=>0.9592097115576268}, {:a=>0.3913489699433878, :b=>-1.5108137875707652, :c=>0.7304838669377266, :d=>0.8087536609264041}, {:a=>-0.8437315444191116, :b=>-3.0546644305238893, :c=>-0.6281046988610228, :d=>-0.796851007744845}, {:a=>0.28972606376135207, :b=>-1.63784242029831, :c=>0.6186986701374872, :d=>0.6766438828897576}, {:a=>-0.8161538352944646, :b=>-3.0201922941180808, :c=>-0.5977692188239112, :d=>-0.760999985882804}, {:a=>-0.28776571432259346, :b=>-2.359707142903242, :c=>-0.016542285754852837, :d=>-0.07409542861937152}, {:a=>0.7753450614797422, :b=>-1.0308186731503222, :c=>1.1528795676277166, :d=>1.307948579923665}, {:a=>0.13808197535962796, :b=>-1.827397530800465, :c=>0.45189017289559075, :d=>0.47950656796751634}, {:a=>-1.9868000829882673, :b=>-4.483500103735334, :c=>-1.885480091287094, :d=>-2.2828401078847476}, {:a=>0.7670612852525955, :b=>-1.0411733934342555, :c=>1.143767413777855, :d=>1.2971796708283743}, {:a=>0.6085529393219041, :b=>-1.23930882584762, :c=>0.9694082332540945, :d=>1.0911188211184755}, {:a=>2.2987737886287882, :b=>0.8734672357859852, :c=>2.828651167491667, :d=>3.2884059252174245}, {:a=>-0.5280295325262564, :b=>-2.6600369156578205, :c=>-0.28083248577888215, :d=>-0.3864383922841334}, {:a=>-0.5539758747257717, :b=>-2.6924698434072147, :c=>-0.3093734621983489, :d=>-0.4201686371435032}, {:a=>-0.9864897217913969, :b=>-3.2331121522392463, :c=>-0.7851386939705367, :d=>-0.9824366383288161}, {:a=>-1.6715377346787024, :b=>-4.089422168348378, :c=>-1.5386915081465726, :d=>-1.8729990550823132}, {:a=>-1.7763935721618556, :b=>-4.220491965202319, :c=>-1.6540329293780411, :d=>-2.0093116438104124}, {:a=>0.4616286994905125, :b=>-1.4229641256368595, :c=>0.8077915694395639, :d=>0.9001173093376662}, {:a=>-1.1952233138310726, :b=>-3.4940291422888405, :c=>-1.0147456452141799, :d=>-1.2537903079803945}, {:a=>-1.7101738825286628, :b=>-4.137717353160829, :c=>-1.5811912707815292, :d=>-1.9232260472872615}, {:a=>2.033632282353548, :b=>0.5420403529419349, :c=>2.536995510588903, :d=>2.9437219670596124}, {:a=>0.6267000233457624, :b=>-1.2166249708177972, :c=>0.9893700256803386, :d=>1.114710030349491}, {:a=>0.44674147943938713, :b=>-1.441573150700766, :c=>0.7914156273833259, :d=>0.8807639232712032}, {:a=>2.455856368041659, :b=>1.0698204600520738, :c=>3.001442004845825, :d=>3.492613278454157}, {:a=>-0.011177644079675005, :b=>-2.0139720550995936, :c=>0.2877045915123575, :d=>0.28546906269642247}, {:a=>1.1577952481295255, :b=>-0.5527559398380932, :c=>1.5735747729424783, :d=>1.8051338225683833}, {:a=>0.0021045770784880726, :b=>-1.99736927865189, :c=>0.30231503478633687, :d=>0.3027359502020345}, {:a=>0.8965266230205666, :b=>-0.8793417212242918, :c=>1.2861792853226233, :d=>1.4654846099267367}, {:a=>-0.36352222848073, :b=>-2.4544027856009123, :c=>-0.09987445132880307, :d=>-0.17257889702494905}, {:a=>-0.09267471187535137, :b=>-2.1158433898441893, :c=>0.1980578169371135, :d=>0.1795228745620432}, {:a=>0.7415519795848307, :b=>-1.0730600255189617, :c=>1.1157071775433138, :d=>1.2640175734602799}, {:a=>1.2983648537582548, :b=>-0.3770439328021815, :c=>1.7282013391340805, :d=>1.9878743098857314}, {:a=>-0.06000531208761518, :b=>-2.075006640109519, :c=>0.23399415670362328, :d=>0.22199309428610026}, {:a=>-0.9552714033251711, :b=>-3.194089254156464, :c=>-0.7507985436576883, :d=>-0.9418528243227224}, {:a=>0.5560520901837497, :b=>-1.304934887270313, :c=>0.9116572992021248, :d=>1.0228677172388747}, {:a=>-0.5170867111586753, :b=>-2.646358388948344, :c=>-0.26879538227454297, :d=>-0.372212724506278}, {:a=>0.8852808520911816, :b=>-0.8933989348860232, :c=>1.2738089373002999, :d=>1.4508651077185362}, {:a=>0.15490795557573403, :b=>-1.8063650555303326, :c=>0.4703987511333074, :d=>0.5013803422484542}, {:a=>0.9128201138187506, :b=>-0.8589748577265619, :c=>1.3041021252006257, :d=>1.486666147964376}, {:a=>0.09474418888814697, :b=>-1.8815697638898163, :c=>0.40421860777696167, :d=>0.42316744555459107}, {:a=>0.09766187763658879, :b=>-1.877922652954264, :c=>0.4074280654002477, :d=>0.4269604409275654}, {:a=>0.35215833952066805, :b=>-1.559802075599165, :c=>0.6873741734727349, :d=>0.7578058413768685}, {:a=>0.4072171185998844, :b=>-1.4909786017501445, :c=>0.7479388304598729, :d=>0.8293822541798497}, {:a=>0.9960750122822425, :b=>-0.7549062346471969, :c=>1.395682513510467, :d=>1.5948975159669154}, {:a=>0.16327878742184274, :b=>-1.7959015157226965, :c=>0.47960666616402703, :d=>0.5122624236483956}, {:a=>-1.9597988126035717, :b=>-4.4497485157544645, :c=>-1.8557786938639291, :d=>-2.2477384563846434}, {:a=>0.3554630879295141, :b=>-1.5556711400881074, :c=>0.6910093967224655, :d=>0.7621020143083683}, {:a=>1.7383738573220167, :b=>0.1729673216525205, :c=>2.2122112430542185, :d=>2.5598860145186215}, {:a=>-1.6762508298137229, :b=>-4.095313537267153, :c=>-1.5438759127950952, :d=>-1.8791260787578399}, {:a=>-0.4507651866485352, :b=>-2.563456483310669, :c=>-0.1958417053133888, :d=>-0.2859947426430958}, {:a=>-0.27378179212839104, :b=>-2.3422272401604887, :c=>-0.0011599713412301926, :d=>-0.05591632976690836}, {:a=>1.4836905219863676, :b=>-0.14538684751704056, :c=>1.9320595741850046, :d=>2.228797678582278}, {:a=>0.08455259495689559, :b=>-1.8943092563038806, :c=>0.3930078544525851, :d=>0.40991837344396426}, {:a=>2.012739445006415, :b=>0.5159243062580186, :c=>2.5140133895070567, :d=>2.9165612785083397}, {:a=>0.33990535521951404, :b=>-1.5751183059756075, :c=>0.6738958907414654, :d=>0.7418769617853682}, {:a=>-0.3059791991995643, :b=>-2.3824739989994552, :c=>-0.03657711911952077, :d=>-0.09777295895943361}, {:a=>0.5605096186983614, :b=>-1.2993629766270485, :c=>0.9165605805681976, :d=>1.0286625043078699}, {:a=>0.7867133554947525, :b=>-1.0166083056315594, :c=>1.1653846910442278, :d=>1.3227273621431783}, {:a=>0.5269678492067797, :b=>-1.3412901884915254, :c=>0.8796646341274577, :d=>0.9850582039688136}, {:a=>0.26448389642208237, :b=>-1.669395129472397, :c=>0.5909322860642906, :d=>0.6438290653487071}, {:a=>0.8299807939233936, :b=>-0.962524007595758, :c=>1.212978873315733, :d=>1.3789750321004117}, {:a=>1.538258806040881, :b=>-0.07717649244889868, :c=>1.9920846866449693, :d=>2.2997364478531455}, {:a=>-1.1929748166857197, :b=>-3.4912185208571493, :c=>-1.0122722983542918, :d=>-1.2508672616914356}, {:a=>0.7130575015766936, :b=>-1.108678123029133, :c=>1.0843632517343629, :d=>1.2269747520497016}, {:a=>-0.5461944966164978, :b=>-2.6827431207706223, :c=>-0.30081394627814756, :d=>-0.4100528456014471}, {:a=>0.83976762747708, :b=>-0.9502904656536502, :c=>1.223744390224788, :d=>1.391697915720204}, {:a=>-0.48431500695207685, :b=>-2.605393758690096, :c=>-0.2327465076472846, :d=>-0.3296095090377}, {:a=>0.514405872660344, :b=>-1.35699265917457, :c=>0.8658464599263784, :d=>0.9687276344584472}, {:a=>-0.6986765554617578, :b=>-2.873345694327197, :c=>-0.4685442110079336, :d=>-0.6082795221002852}, {:a=>-1.143961179828993, :b=>-3.4299514747862414, :c=>-0.9583572978118924, :d=>-1.187149533777691}, {:a=>-0.09282464294816273, :b=>-2.1160308036852036, :c=>0.197892892757021, :d=>0.17932796416738844}, {:a=>0.24390854513251592, :b=>-1.6951143185843551, :c=>0.5682993996457675, :d=>0.6170811086722707}, {:a=>0.7563437520016837, :b=>-1.0545703099978954, :c=>1.131978127201852, :d=>1.2832468776021888}, {:a=>-1.407585160642744, :b=>-3.75948145080343, :c=>-1.2483436767070186, :d=>-1.5298607088355674}, {:a=>-0.5113729575432658, :b=>-2.639216196929082, :c=>-0.26251025329759253, :d=>-0.3647848448062457}, {:a=>-1.599555931495558, :b=>-3.9994449143694473, :c=>-1.459511524645114, :d=>-1.7794227109442253}, {:a=>0.9764388678074915, :b=>-0.7794514152406358, :c=>1.3740827545882408, :d=>1.569370528149739}]>}, :extension=>[]}>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "require 'distribution'\n", "rng = Distribution::Normal.rng\n", "# Daru.lazy_update = false\n", "\n", "arr = []\n", "1000.times {arr.push(rng.call)}\n", "\n", "arr1 = arr.map{|val| val/0.8-2}\n", "arr2 = arr.map{|val| val*1.1+0.3}\n", "arr3 = arr.map{|val| val*1.3+0.3}\n", "\n", "df = Daru::DataFrame.new({ a: arr, b: arr1, c: arr2, d: arr3 })\n", "box_1 = Daru::View::Plot.new(df, type: :box)\n", "box_1.show_in_iruby" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Line Graphs\n", "\n", "Line graphs can be easily generated by passing `:line` to the `:type` option.\n", "\n", "For example, lets plot a simple line graph showing the temperature of New York City over a week." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:line, :options=>{:x=>:day, :y=>:temperature, :title=>\"Temperature in NYC\"}, :data=>\"4bdfb953-5a78-413c-ae36-9d32e3c9876e\"}, @xrange=[1, 6], @yrange=[43, 59]>], :options=>{:x_label=>\"Day\", :y_label=>\"Temperature\", :yrange=>[20, 60], :xrange=>[1, 6], :legend=>true, :zoom=>true, :width=>800}}>" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = Daru::DataFrame.new({\n", " temperature: [43,53,50,57,59,47],\n", " day: [1,2,3,4,5,6]\n", "})\n", "\n", "line_1 = Daru::View::Plot.new(df,type: :line, x: :day, y: :temperature).chart\n", "line_1.tap do |plot|\n", " plot.x_label \"Day\"\n", " plot.y_label \"Temperature\"\n", " plot.yrange [20,60]\n", " plot.xrange [1,6]\n", " plot.legend true\n", " plot.diagrams[0].title \"Temperature in NYC\"\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Histogram\n", "\n", "Specify `:histogram` to `:type` will make a histogram from the data.\n", "\n", "Histograms dont need a X axis label (because they show the frequency of elements in each bin) so you need to specify the name of the vector you want to plot by passing its name into the `:x` option." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:histogram, :options=>{:value=>:a}, :data=>\"e9903102-5a19-4348-8695-cee0e4f9ccd7\"}, @xrange=[0, 0.9996532995591442], @yrange=[0, 1000]>], :options=>{:yrange=>[0, 150], :y_label=>\"Frequency\", :x_label=>\"Bins\", :width=>700, :xrange=>[0, 0.9996532995591442]}}>" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v = 1000.times.map { rand }\n", "\n", "df = Daru::DataFrame.new({\n", " a: v\n", " })\n", "\n", "Daru::View::Plot.new(df, type: :histogram, x: :a).chart.tap do |plot|\n", " plot.yrange [0,150]\n", " plot.y_label \"Frequency\"\n", " plot.x_label \"Bins\"\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Multiple Diagrams on the same PlotĀ¶\n", "\n", "##### Scatter Diagrams on the same Plot\n", "\n", "Daru allows you to plot as many columns of your dataframe as you want on the same plot.\n", "\n", "This can allow you to plot data from the dataframe onto the same graph and visually compare results from observations. You can individually set the color or point shape of each diagram on the plot.\n", "\n", "As a first demostration, lets create a DataFrame of the temperatures of three different cities over the period of a week. Then, we'll plot them all on the same graph by passing options to the plot method which tell it the Vectors that are to be used for each of the diagrams." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:scatter, :options=>{:x=>:day, :y=>:nyc_temp, :title=>\"Temprature in NYC\", :color=>\"#00FF00\"}, :data=>\"a496d540-c575-4c1a-9238-a9e53ebf91a4\"}, @xrange=[1, 6], @yrange=[43, 59]>, #:scatter, :options=>{:x=>:day, :y=>:chicago_temp, :title=>\"Temprature in Chicago\", :color=>\"#FFFF00\"}, :data=>\"a496d540-c575-4c1a-9238-a9e53ebf91a4\"}, @xrange=[1, 6], @yrange=[20, 38]>, #:scatter, :options=>{:x=>:day, :y=>:sf_temp, :title=>\"Temprature in SF\", :color=>\"#0000FF\"}, :data=>\"a496d540-c575-4c1a-9238-a9e53ebf91a4\"}, @xrange=[1, 6], @yrange=[52, 73]>], :options=>{:legend=>true, :yrange=>[0, 100], :x_label=>\"Day\", :y_label=>\"Temperature\", :zoom=>true, :width=>800, :xrange=>[1, 6]}}>" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = Daru::DataFrame.new({\n", " nyc_temp: [43,53,50,57,59,47],\n", " chicago_temp: [23,30,35,20,26,38],\n", " sf_temp: [60,65,73,67,55,52],\n", " day: [1 ,2 ,3 ,4 ,5 , 6]\n", " })\n", "\n", "# As you can see, the options passed denote the x and y axes that are to be used by each diagram.\n", "# You can add as many x any y axes as you want, just make sure the relevant vectors are present\n", "# in your DataFrame!\n", "#\n", "# Heres an explanation of all the options passed:\n", "#\n", "# * type - The type of graph to be drawn. All the diagrams will be of the same type in this case.\n", "# * x1/x2/x3 - The Vector from the DataFrame that is to be treated as the X axis for each of the \n", "# three diagrams. In this case all of them need the :day Vector.\n", "# * y1/y2/y3 - The Vector from the DataFrame that is to be treated as the Y axis for each of the\n", "# three diagrams. As you can see the 1st diagram will plot nyc_temp, the 2nd chicago_temp and the\n", "# the 3rd sf_temp.\n", "# \n", "# The values yielded in the block are also slightly different in this case.\n", "# The first argument ('plot') is the same as in all the above examples (Nyaplot::Plot), but the \n", "# second argument ('diagrams') is now an Array of Nyaplot::Diagram objects. Each of the elements\n", "# in the Array represents the diagrams that you want to plot according to the sorting sequence\n", "# of the options specifying the axes.\n", "\n", "graph = Daru::View::Plot.new(df, type: :scatter, x1: :day, y1: :nyc_temp, x2: :day, y2: :chicago_temp, x3: :day, y3: :sf_temp) \n", "\n", "graph.chart.tap do |plot|\n", " nyc = plot.diagrams[0]\n", " chicago = plot.diagrams[1]\n", " sf = plot.diagrams[2]\n", " \n", " nyc.title \"Temprature in NYC\"\n", " nyc.color \"#00FF00\"\n", " \n", " chicago.title \"Temprature in Chicago\"\n", " chicago.color \"#FFFF00\"\n", " \n", " sf.title \"Temprature in SF\"\n", " sf.color \"#0000FF\"\n", " \n", " plot.legend true\n", " plot.yrange [0,100]\n", " plot.x_label \"Day\"\n", " plot.y_label \"Temperature\"\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Scatter and Line Diagram on the same Plot\n", "\n", "It is also possible to plot two different kinds of diagrams on the same plot. To show you how this works, I will plot a scatter graph and a line graph on the same plot.\n", "\n", "To elaborate, we will be plotting the a set of points on a scatter plot alongwith their line of best fit." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ " Daru::DataFrame(11x3) \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", "\n", "
burgerfatcalories
0Hamburger9260
1Cheeseburger13320
2Quarter Pounder21420
3Quarter Pounder with Cheese30530
4Big Mac31560
5Arch Sandwich Special31550
6Arch Special with Bacon34590
7Crispy Chicken25500
8Fish Fillet28560
9Grilled Chicken20440
10Grilled Chicken Light5300
" ], "text/plain": [ "#\n", " burger fat calories\n", " 0 Hamburger 9 260\n", " 1 Cheeseburg 13 320\n", " 2 Quarter Po 21 420\n", " 3 Quarter Po 30 530\n", " 4 Big Mac 31 560\n", " 5 Arch Sandw 31 550\n", " 6 Arch Speci 34 590\n", " 7 Crispy Chi 25 500\n", " 8 Fish Fille 28 560\n", " 9 Grilled Ch 20 440\n", " 10 Grilled Ch 5 300" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = Daru::DataFrame.new({\n", " burger: [\"Hamburger\",\"Cheeseburger\",\"Quarter Pounder\",\"Quarter Pounder with Cheese\",\"Big Mac\",\"Arch Sandwich Special\",\"Arch Special with Bacon\",\"Crispy Chicken\",\"Fish Fillet\",\"Grilled Chicken\",\"Grilled Chicken Light\"],\n", " fat: [9,13 ,21 ,30 ,31 ,31 ,34 ,25 ,28 ,20 ,5],\n", " calories: [260,320,420,530,560,550,590,500,560,440,300]\n", " },\n", " order: [:burger, :fat, :calories])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll now write a small algorithm to compute the slope of the line of best fit by placing the fat content as the X co-ordinates and calories as Y co-ordinates.\n", "\n", "The line of best fit will be a line graph of red color and the fat and calorie contents will be plotted as usual using a scatter plot." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:scatter, :options=>{:x=>:fat, :y=>:calories, :tooltip_contents=>[:burger]}, :data=>\"daa7023f-e7aa-4e2e-bc20-3e2e612bdb3d\"}, @xrange=[5, 34], @yrange=[260, 590]>, #:line, :options=>{:x=>:fat, :y=>:y_coords, :color=>\"#FF0000\"}, :data=>\"daa7023f-e7aa-4e2e-bc20-3e2e612bdb3d\"}, @xrange=[5, 34], @yrange=[252.5085518814139, 592.7156974534398]>], :options=>{:x_label=>\"Fat\", :y_label=>\"Calories\", :xrange=>[0, 50], :zoom=>true, :width=>700, :yrange=>[252.5085518814139, 592.7156974534398]}}>" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Algorithm for computing the line of best fit\n", "\n", "sum_x = df[:fat].sum\n", "sum2_x = (df[:fat]*df[:fat]).sum \n", "sum_xy = (df[:fat]*df[:calories]).sum\n", "mean_x = df[:fat].mean\n", "mean_y = df[:calories].mean\n", "\n", "slope = (sum_xy - sum_x * mean_y) / (sum2_x - sum_x * mean_x)\n", "yint = mean_y - slope * mean_x\n", "\n", "# Assign the computed Y co-ordinates of the line of best fit to a column \n", "# in the DataFrame called :y_coords\n", "df[:y_coords] = df[:fat].map {|f| f*slope + yint }\n", "\n", "# As you can see the options passed into plot are slightly different this time.\n", "#\n", "# Instead of passing Vector names into :x1, :x2... separately, this time we pass\n", "# the relevant names of the X and Y axes co-ordinates as an Array into the :x and \n", "# :y options.This is a simpler and easier way to plot multiple diagrams.\n", "# \n", "# As is demonstrated in the previous example, the first argument yields a Nyaplot::Plot\n", "# object and the second an Array of Nyaplot::Diagram objects. The diagrams are ordered\n", "# according to the types specified in the `:type` option.\n", "\n", "graph = Daru::View::Plot.new(df, type: [:scatter, :line], x: [:fat, :fat], y: [:calories, :y_coords]) \n", "graph.chart.tap do |plot|\n", " plot.x_label \"Fat\"\n", " plot.y_label \"Calories\"\n", " plot.xrange [0,50]\n", " \n", " scatter = plot.diagrams[0]\n", " line = plot.diagrams[1]\n", " \n", " line.color \"#FF0000\" #set color of the line to 'red'\n", " scatter.tooltip_contents [:burger] # set tool tip to :burger\n", "end" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Ruby 2.4.1", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": ".rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.4.1" } }, "nbformat": 4, "nbformat_minor": 2 }