{ "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": { "collapsed": false }, "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": { "collapsed": false }, "outputs": [ { "data": { "application/javascript": [ "if(window['d3'] === undefined ||\n", " window['Nyaplot'] === undefined){\n", " var path = {\"d3\":\"https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min\",\"downloadable\":\"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": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Daru::DataFrame(100x2)
ab
000.5901045999837067
110.436683497259194
220.8201904794946736
330.7412154680988353
440.7918037303341074
550.75465991314003
660.001594846966242347
770.8452403857618761
880.8315826505233574
990.9898896370377346
10100.19305512177494977
11110.471331281205303
12120.2727093997406749
13130.9974328400097253
14140.32827550306051856
15150.9325995560620807
16160.7035670210595155
17170.7262435775960362
18180.9429472518587119
19190.5115635843253195
20200.25640688913675325
21210.8651112057349126
22220.44472174755120386
23230.1696831523121588
24240.18008052430086519
25250.7870035406333422
26260.145610247050024
27270.8604271138888401
28280.9581902890007646
29290.6406388227168683
.........
99990.2551244214639039
" ], "text/plain": [ "#\n", " a b\n", " 0 0 0.59010459\n", " 1 1 0.43668349\n", " 2 2 0.82019047\n", " 3 3 0.74121546\n", " 4 4 0.79180373\n", " 5 5 0.75465991\n", " 6 6 0.00159484\n", " 7 7 0.84524038\n", " 8 8 0.83158265\n", " 9 9 0.98988963\n", " 10 10 0.19305512\n", " 11 11 0.47133128\n", " 12 12 0.27270939\n", " 13 13 0.99743284\n", " 14 14 0.32827550\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": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "#\n", " a b\n", " 0 0 0.59010459\n", " 1 1 0.43668349\n", " 2 2 0.82019047\n", " 3 3 0.74121546\n", " 4 4 0.79180373\n", " 5 5 0.75465991\n", " 6 6 0.00159484\n", " 7 7 0.84524038\n", " 8 8 0.83158265\n", " 9 9 0.98988963\n", " 10 10 0.19305512\n", " 11 11 0.47133128\n", " 12 12 0.27270939\n", " 13 13 0.99743284\n", " 14 14 0.32827550\n", " ... ... ..., @options={:type=>:scatter, :x=>:a, :y=>:b}, @adapter=Daru::View::Adapter::NyaplotAdapter, @chart=#[#:scatter, :options=>{:x=>:a, :y=>:b}, :data=>\"f4063d0d-fc9a-4aa1-b6ea-336fbba2d1a0\"}, @xrange=[0, 99], @yrange=[2.5766515678427027e-05, 0.9974328400097253]>], :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": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#[#:scatter, :options=>{:x=>:a, :y=>:b}, :data=>\"f4063d0d-fc9a-4aa1-b6ea-336fbba2d1a0\"}, @xrange=[0, 99], @yrange=[2.5766515678427027e-05, 0.9974328400097253]>], :options=>{:zoom=>true, :width=>700, :xrange=>[0, 99], :yrange=>[2.5766515678427027e-05, 0.9974328400097253]}}>], :data=>{\"f4063d0d-fc9a-4aa1-b6ea-336fbba2d1a0\"=>#0, :b=>0.5901045999837067}, {:a=>1, :b=>0.436683497259194}, {:a=>2, :b=>0.8201904794946736}, {:a=>3, :b=>0.7412154680988353}, {:a=>4, :b=>0.7918037303341074}, {:a=>5, :b=>0.75465991314003}, {:a=>6, :b=>0.001594846966242347}, {:a=>7, :b=>0.8452403857618761}, {:a=>8, :b=>0.8315826505233574}, {:a=>9, :b=>0.9898896370377346}, {:a=>10, :b=>0.19305512177494977}, {:a=>11, :b=>0.471331281205303}, {:a=>12, :b=>0.2727093997406749}, {:a=>13, :b=>0.9974328400097253}, {:a=>14, :b=>0.32827550306051856}, {:a=>15, :b=>0.9325995560620807}, {:a=>16, :b=>0.7035670210595155}, {:a=>17, :b=>0.7262435775960362}, {:a=>18, :b=>0.9429472518587119}, {:a=>19, :b=>0.5115635843253195}, {:a=>20, :b=>0.25640688913675325}, {:a=>21, :b=>0.8651112057349126}, {:a=>22, :b=>0.44472174755120386}, {:a=>23, :b=>0.1696831523121588}, {:a=>24, :b=>0.18008052430086519}, {:a=>25, :b=>0.7870035406333422}, {:a=>26, :b=>0.145610247050024}, {:a=>27, :b=>0.8604271138888401}, {:a=>28, :b=>0.9581902890007646}, {:a=>29, :b=>0.6406388227168683}, {:a=>30, :b=>0.8604527741276731}, {:a=>31, :b=>0.18193825099446126}, {:a=>32, :b=>0.16568682357959952}, {:a=>33, :b=>0.5439167969928531}, {:a=>34, :b=>0.48609343444331565}, {:a=>35, :b=>0.09655120653009486}, {:a=>36, :b=>0.3643922290860875}, {:a=>37, :b=>0.9133051670692413}, {:a=>38, :b=>0.9598871488955686}, {:a=>39, :b=>0.33826642944625185}, {:a=>40, :b=>0.2477043278961849}, {:a=>41, :b=>0.4805073659687792}, {:a=>42, :b=>0.9412570147565862}, {:a=>43, :b=>0.6238967343569564}, {:a=>44, :b=>0.35425436223491114}, {:a=>45, :b=>0.3142267333802038}, {:a=>46, :b=>0.7782018877553193}, {:a=>47, :b=>0.07281945521215183}, {:a=>48, :b=>0.35658180297650355}, {:a=>49, :b=>0.6296184047283571}, {:a=>50, :b=>0.6918564710611846}, {:a=>51, :b=>0.6376618736492343}, {:a=>52, :b=>0.0964771614572586}, {:a=>53, :b=>2.5766515678427027e-05}, {:a=>54, :b=>0.3700946325236344}, {:a=>55, :b=>0.7189274701726249}, {:a=>56, :b=>0.9400554364617424}, {:a=>57, :b=>0.8131887493960539}, {:a=>58, :b=>0.589302229533883}, {:a=>59, :b=>0.4652039704091192}, {:a=>60, :b=>0.2549164899803774}, {:a=>61, :b=>0.23140955661516716}, {:a=>62, :b=>0.4071739803082871}, {:a=>63, :b=>0.03739574125507983}, {:a=>64, :b=>0.4485531949136716}, {:a=>65, :b=>0.5017843995799336}, {:a=>66, :b=>0.6005765553425102}, {:a=>67, :b=>0.500255950402287}, {:a=>68, :b=>0.7898105368832874}, {:a=>69, :b=>0.19752485607836545}, {:a=>70, :b=>0.6264329705746644}, {:a=>71, :b=>0.5629192829321761}, {:a=>72, :b=>0.14004750944942568}, {:a=>73, :b=>0.591459308658044}, {:a=>74, :b=>0.36160794338007196}, {:a=>75, :b=>0.9623837380013831}, {:a=>76, :b=>0.7705655075669129}, {:a=>77, :b=>0.23539714619315255}, {:a=>78, :b=>0.104952427448335}, {:a=>79, :b=>0.4255522490978103}, {:a=>80, :b=>0.0049659825703454175}, {:a=>81, :b=>0.5502888971836731}, {:a=>82, :b=>0.4205532896792561}, {:a=>83, :b=>0.8872812059781972}, {:a=>84, :b=>0.7261571727950965}, {:a=>85, :b=>0.8083356769612885}, {:a=>86, :b=>0.009448437250645259}, {:a=>87, :b=>0.9673011374798456}, {:a=>88, :b=>0.2927256322343139}, {:a=>89, :b=>0.7785734354406338}, {:a=>90, :b=>0.9509972667231268}, {:a=>91, :b=>0.07325911067483715}, {:a=>92, :b=>0.75036965468453}, {:a=>93, :b=>0.6494522220655349}, {:a=>94, :b=>0.48000995148597503}, {:a=>95, :b=>0.587002359484004}, {:a=>96, :b=>0.17599429137344924}, {:a=>97, :b=>0.9353303455049218}, {:a=>98, :b=>0.3575120932462277}, {:a=>99, :b=>0.2551244214639039}]>}, :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": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", "
Daru::DataFrame(10x4)
citysalesstafftemperature
0Pune3501530.4
1Delhi1502023.5
2Pune5001544.5
3Delhi2002020.3
4Pune4801534
5Delhi2502024
6Pune3301531.45
7Delhi4002028.34
8Pune4201537
9Delhi5602024
" ], "text/plain": [ "#\n", " city sales staff temperatur\n", " 0 Pune 350 15 30.4\n", " 1 Delhi 150 20 23.5\n", " 2 Pune 500 15 44.5\n", " 3 Delhi 200 20 20.3\n", " 4 Pune 480 15 34\n", " 5 Delhi 250 20 24\n", " 6 Pune 330 15 31.45\n", " 7 Delhi 400 20 28.34\n", " 8 Pune 420 15 37\n", " 9 Delhi 560 20 24" ] }, "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": { "collapsed": false }, "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=>\"f78d4dd9-8e28-4504-8ded-1d5a75d7ce2c\"}, @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": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[#:scatter, :options=>{:x=>:temperature, :y=>:sales, :tooltip_contents=>[:city, :staff], :color=>#, :fill_by=>:city, :shape_by=>:city}, :data=>\"f78d4dd9-8e28-4504-8ded-1d5a75d7ce2c\"}, @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": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", "
Daru::DataFrame(5x2)
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": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:bar, :options=>{:x=>:name, :y=>:age}, :data=>\"9fdb6fda-6f74-4028-aea8-00ff6e8f1538\"}, @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": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "v : \n", "[\"T\", \"T\", \"G\", \"G\", \"A\", \"A\", \"C\", \"T\", \"C\", \"A\", \"T\", \"G\", \"T\", \"A\", \"A\", \"G\", \"A\", \"T\", \"G\", \"G\", \"G\", \"T\", \"C\", \"G\", \"G\", \"A\", \"T\", \"A\", \"T\", \"T\", \"T\", \"A\", \"G\", \"A\", \"A\", \"C\", \"A\", \"A\", \"C\", \"A\", \"G\", \"C\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"T\", \"T\", \"C\", \"G\", \"T\", \"A\", \"C\", \"C\", \"A\", \"A\", \"A\", \"T\", \"C\", \"G\", \"T\", \"T\", \"T\", \"T\", \"G\", \"T\", \"T\", \"T\", \"T\", \"T\", \"T\", \"C\", \"G\", \"G\", \"A\", \"G\", \"C\", \"A\", \"A\", \"G\", \"G\", \"G\", \"G\", \"G\", \"C\", \"C\", \"A\", \"A\", \"G\", \"C\", \"A\", \"C\", \"T\", \"T\", \"A\", \"G\", \"A\", \"A\", \"T\", \"C\", \"A\", \"C\", \"C\", \"G\", \"T\", \"T\", \"C\", \"T\", \"A\", \"C\", \"T\", \"G\", \"A\", \"T\", \"A\", \"C\", \"A\", \"A\", \"A\", \"C\", \"T\", \"T\", \"G\", \"C\", \"G\", \"T\", \"A\", \"C\", \"A\", \"T\", \"T\", \"A\", \"C\", \"C\", \"T\", \"A\", \"C\", \"C\", \"G\", \"C\", \"T\", \"A\", \"C\", \"G\", \"T\", \"A\", \"T\", \"A\", \"C\", \"C\", \"A\", \"T\", \"G\", \"C\", \"C\", \"A\", \"G\", \"G\", \"G\", \"C\", \"T\", \"T\", \"C\", \"G\", \"G\", \"T\", \"G\", \"T\", \"G\", \"G\", \"A\", \"G\", \"C\", \"G\", \"G\", \"C\", \"A\", \"C\", \"T\", \"C\", \"A\", \"A\", \"C\", \"A\", \"T\", \"A\", \"T\", \"T\", \"T\", \"A\", \"C\", \"T\", \"G\", \"C\", \"G\", \"C\", \"G\", \"G\", \"C\", \"A\", \"A\", \"C\", \"A\", \"A\", \"T\", \"C\", \"A\", \"T\", \"T\", \"T\", \"G\", \"A\", \"T\", \"C\", \"A\", \"A\", \"A\", \"A\", \"T\", \"T\", \"A\", \"A\", \"G\", \"C\", \"A\", \"T\", \"C\", \"T\", \"T\", \"C\", \"C\", \"T\", \"C\", \"T\", \"A\", \"C\", \"G\", \"G\", \"C\", \"T\", \"T\", \"T\", \"A\", \"T\", \"T\", \"T\", \"C\", \"A\", \"C\", \"C\", \"A\", \"T\", \"T\", \"C\", \"G\", \"G\", \"A\", \"G\", \"T\", \"G\", \"T\", \"A\", \"A\", \"C\", \"C\", \"T\", \"C\", \"G\", \"G\", \"G\", \"T\", \"A\", \"A\", \"G\", \"C\", \"G\", \"A\", \"T\", \"C\", \"G\", \"A\", \"G\", \"A\", \"A\", \"C\", \"C\", \"A\", \"T\", \"C\", \"T\", \"A\", \"T\", \"C\", \"A\", \"A\", \"A\", \"A\", \"C\", \"T\", \"A\", \"A\", \"A\", \"G\", \"G\", \"C\", \"A\", \"A\", \"T\", \"C\", \"G\", \"A\", \"C\", \"G\", \"G\", \"G\", \"C\", \"G\", \"T\", \"T\", \"G\", \"T\", \"A\", \"C\", \"C\", \"G\", \"A\", \"A\", \"A\", \"T\", \"T\", \"C\", \"A\", \"G\", \"A\", \"T\", \"T\", \"C\", \"A\", \"T\", \"G\", \"A\", \"G\", \"G\", \"T\", \"A\", \"T\", \"G\", \"A\", \"T\", \"T\", \"G\", \"C\", \"T\", \"T\", \"C\", \"C\", \"G\", \"A\", \"T\", \"A\", \"G\", \"A\", \"G\", \"T\", \"G\", \"T\", \"C\", \"G\", \"G\", \"T\", \"A\", \"C\", \"C\", \"A\", \"G\", \"T\", \"G\", \"G\", \"G\", \"C\", \"G\", \"C\", \"T\", \"G\", \"G\", \"G\", \"A\", \"A\", \"C\", \"A\", \"G\", \"G\", \"C\", \"C\", \"C\", \"T\", \"T\", \"G\", \"G\", \"G\", \"G\", \"C\", \"A\", \"A\", \"T\", \"C\", \"G\", \"T\", \"G\", \"G\", \"T\", \"C\", \"T\", \"T\", \"A\", \"A\", \"G\", \"G\", \"A\", \"G\", \"T\", \"T\", \"G\", \"C\", \"G\", \"G\", \"C\", \"T\", \"T\", \"T\", \"G\", \"C\", \"T\", \"G\", \"G\", \"T\", \"A\", \"G\", \"A\", \"A\", \"A\", \"G\", \"A\", \"T\", \"T\", \"G\", \"A\", \"G\", \"G\", \"A\", \"C\", \"A\", \"T\", \"A\", \"A\", \"G\", \"A\", \"C\", \"T\", \"T\", \"G\", \"G\", \"A\", \"G\", \"C\", \"A\", \"A\", \"C\", \"T\", \"T\", \"C\", \"A\", \"C\", \"C\", \"T\", \"C\", \"T\", \"T\", \"A\", \"T\", \"T\", \"A\", \"C\", \"C\", \"A\", \"A\", \"G\", \"A\", \"G\", \"T\", \"C\", \"C\", \"T\", \"C\", \"A\", \"A\", \"C\", \"G\", \"G\", \"G\", \"C\", \"A\", \"G\", \"T\", \"G\", \"G\", \"A\", \"T\", \"C\", \"T\", \"T\", \"A\", \"A\", \"T\", \"C\", \"T\", \"C\", \"C\", \"A\", \"C\", \"T\", \"T\", \"G\", \"A\", \"C\", \"C\", \"A\", \"C\", \"T\", \"G\", \"A\", \"T\", \"G\", \"G\", \"T\", \"A\", \"G\", \"T\", \"G\", \"A\", \"T\", \"C\", \"A\", \"G\", \"G\", \"G\", \"C\", \"T\", \"T\", \"G\", \"C\", \"G\", \"C\", \"G\", \"C\", \"T\", \"T\", \"C\", \"G\", \"A\", \"G\", \"G\", \"T\", \"T\", \"C\", \"A\", \"A\", \"T\", \"G\", \"G\", \"G\", \"T\", \"C\", \"G\", \"G\", \"G\", \"T\", \"G\", \"A\", \"T\", \"A\", \"A\", \"G\", \"A\", \"A\", \"C\", \"C\", \"C\", \"G\", \"T\", \"C\", \"T\", \"C\", \"G\", \"G\", \"G\", \"T\", \"A\", \"G\", \"T\", \"G\", \"T\", \"T\", \"T\", \"C\", \"G\", \"T\", \"A\", \"A\", \"G\", \"A\", \"A\", \"T\", \"C\", \"G\", \"A\", \"C\", \"T\", \"C\", \"A\", \"C\", \"A\", \"A\", \"C\", \"C\", \"A\", \"A\", \"G\", \"C\", \"A\", \"G\", \"T\", \"A\", \"A\", \"A\", \"G\", \"G\", \"C\", \"G\", \"C\", \"C\", \"T\", \"C\", \"A\", \"T\", \"C\", \"G\", \"G\", \"G\", \"C\", \"T\", \"C\", \"T\", \"A\", \"T\", \"C\", \"A\", \"G\", \"G\", \"T\", \"A\", \"A\", \"C\", \"A\", \"G\", \"C\", \"A\", \"T\", \"C\", \"A\", \"G\", \"C\", \"T\", \"G\", \"C\", \"G\", \"T\", \"T\", \"A\", \"C\", \"T\", \"C\", \"T\", \"A\", \"C\", \"T\", \"A\", \"C\", \"T\", \"T\", \"A\", \"A\", \"T\", \"C\", \"A\", \"C\", \"T\", \"T\", \"G\", \"T\", \"A\", \"T\", \"A\", \"T\", \"G\", \"C\", \"C\", \"G\", \"C\", \"G\", \"T\", \"T\", \"T\", \"G\", \"A\", \"C\", \"C\", \"A\", \"C\", \"C\", \"T\", \"G\", \"G\", \"C\", \"C\", \"C\", \"G\", \"A\", \"C\", \"G\", \"C\", \"T\", \"G\", \"C\", \"G\", \"G\", \"G\", \"T\", \"A\", \"C\", \"C\", \"T\", \"A\", \"A\", \"C\", \"T\", \"T\", \"G\", \"T\", \"C\", \"T\", \"G\", \"A\", \"C\", \"G\", \"G\", \"G\", \"A\", \"C\", \"G\", \"C\", \"C\", \"G\", \"C\", \"A\", \"G\", \"G\", \"A\", \"T\", \"A\", \"C\", \"C\", \"T\", \"A\", \"A\", \"A\", \"T\", \"C\", \"T\", \"A\", \"T\", \"A\", \"G\", \"A\", \"C\", \"G\", \"T\", \"C\", \"C\", \"G\", \"G\", \"G\", \"G\", \"C\", \"A\", \"G\", \"T\", \"G\", \"A\", \"C\", \"T\", \"T\", \"G\", \"G\", \"T\", \"T\", \"T\", \"C\", \"G\", \"A\", \"T\", \"A\", \"C\", \"G\", \"G\", \"A\", \"G\", \"T\", \"G\", \"G\", \"C\", \"G\", \"T\", \"T\", \"C\", \"A\", \"G\", \"A\", \"G\", \"G\", \"C\", \"A\", \"A\", \"G\", \"G\", \"G\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"G\", \"T\", \"A\", \"C\", \"G\", \"A\", \"T\", \"A\", \"T\", \"C\", \"A\", \"C\", \"G\", \"C\", \"G\", \"T\", \"T\", \"G\", \"G\", \"T\", \"A\", \"A\", \"C\", \"C\", \"T\", \"A\", \"G\", \"C\", \"T\", \"G\", \"A\", \"T\", \"C\", \"A\", \"A\", \"G\", \"C\", \"T\", \"C\", \"C\", \"C\", \"T\", \"A\", \"G\", \"A\", \"A\", \"G\", \"C\", \"T\", \"T\", \"C\", \"A\", \"A\", \"C\", \"C\", \"A\", \"C\", \"G\", \"T\", \"A\", \"C\", \"C\", \"A\", \"T\", \"C\", \"T\", \"T\", \"C\", \"G\", \"T\", \"T\", \"A\", \"A\", \"G\", \"A\", \"G\", \"C\", \"G\", \"A\", \"T\", \"G\", \"G\", \"A\", \"T\", \"T\", \"A\", \"G\", \"A\", \"G\", \"A\", \"G\", \"G\", \"T\", \"G\", \"C\", \"G\", \"C\", \"G\", \"A\", \"T\", \"C\", \"C\", \"C\", \"A\", \"C\", \"A\", \"C\", \"T\", \"G\", \"C\", \"G\", \"G\", \"G\", \"T\", \"A\", \"T\", \"T\", \"G\", \"C\", \"T\", \"T\", \"T\", \"A\", \"G\", \"A\", \"T\", \"A\", \"C\", \"G\", \"A\", \"C\", \"C\", \"C\", \"G\", \"G\", \"C\", \"A\", \"G\", \"C\", \"A\", \"T\", \"C\", \"G\", \"T\", \"T\", \"T\", \"C\", \"C\", \"T\", \"C\", \"C\", \"T\", \"C\", \"T\", \"A\"]\n" ] }, { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:bar, :options=>{:value=>:a}, :data=>\"491b7f6e-f1da-40b4-89c5-da55c94514fc\"}, @xrange=[\"T\", \"G\", \"A\", \"C\"], @yrange=[0, 1000]>], :options=>{:yrange=>[0, 350], :y_label=>\"Frequency\", :x_label=>\"Letter\", :width=>700, :xrange=>[\"T\", \"G\", \"A\", \"C\"]}}>" ] }, "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": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#[#:box, :options=>{:value=>[:a, :b, :c, :d]}, :data=>\"ca32b7c5-dce9-4afe-927e-02ba0a963a81\"}, @xrange=[:a, :b, :c, :d], @yrange=[-5.8448649188415835, 4.326895248724032]>], :options=>{:width=>700, :xrange=>[:a, :b, :c, :d], :yrange=>[-5.8448649188415835, 4.326895248724032]}}>], :data=>{\"ca32b7c5-dce9-4afe-927e-02ba0a963a81\"=>#0.7919603078609907, :b=>-1.0100496151737617, :c=>1.1711563386470898, :d=>1.3295484002192879}, {:a=>-0.14791397848338134, :b=>-2.1848924731042265, :c=>0.13729462366828052, :d=>0.10771182797160425}, {:a=>0.09733117903592414, :b=>-1.8783360262050948, :c=>0.40706429693951657, :d=>0.4265305327467014}, {:a=>-0.7281462634436254, :b=>-2.9101828293045315, :c=>-0.500960889787988, :d=>-0.6465901424767131}, {:a=>-0.2029211006720439, :b=>-2.2536513758400547, :c=>0.07678678926075166, :d=>0.0362025691263429}, {:a=>1.1667901126768248, :b=>-0.5415123591539692, :c=>1.5834691239445073, :d=>1.8168271464798722}, {:a=>-1.7431047552533012, :b=>-4.178880944066627, :c=>-1.6174152307786314, :d=>-1.9660361818292917}, {:a=>0.010580148685424381, :b=>-1.9867748141432195, :c=>0.3116381635539668, :d=>0.3137541932910517}, {:a=>-0.44124170549181746, :b=>-2.5515521318647716, :c=>-0.18536587604099924, :d=>-0.2736142171393627}, {:a=>-0.45419170346118837, :b=>-2.5677396293264856, :c=>-0.19961087380730724, :d=>-0.2904492144995449}, {:a=>0.9857623305934976, :b=>-0.7677970867581281, :c=>1.3843385636528476, :d=>1.581491029771547}, {:a=>1.1767918772641754, :b=>-0.5290101534197809, :c=>1.594471064990593, :d=>1.829829440443428}, {:a=>0.6076254384990016, :b=>-1.240468201876248, :c=>0.9683879823489019, :d=>1.089913070048702}, {:a=>-0.18911554164893768, :b=>-2.236394427061172, :c=>0.09197290418616852, :d=>0.054149795856380994}, {:a=>-0.03293347321756688, :b=>-2.0411668415219584, :c=>0.2637731794606764, :d=>0.25718648481716305}, {:a=>1.208864127525409, :b=>-0.4889198405932387, :c=>1.6297505402779502, :d=>1.871523365783032}, {:a=>-0.4659666307568173, :b=>-2.5824582884460217, :c=>-0.2125632938324991, :d=>-0.30575661998386255}, {:a=>1.1060752190331498, :b=>-0.6174059762085629, :c=>1.516682740936465, :d=>1.7378977847430948}, {:a=>2.4550096185087567, :b=>1.0687620231359456, :c=>3.000510580359632, :d=>3.4915125040613835}, {:a=>-0.8090238943413129, :b=>-3.011279867926641, :c=>-0.5899262837754444, :d=>-0.7517310626437068}, {:a=>-1.4577084864637526, :b=>-3.822135608079691, :c=>-1.303479335110128, :d=>-1.5950210324028784}, {:a=>1.1781936641247006, :b=>-0.5272579198441243, :c=>1.596013030537171, :d=>1.831651763362111}, {:a=>0.5632186396590152, :b=>-1.295976700426231, :c=>0.9195405036249167, :d=>1.0321842315567198}, {:a=>-0.2413961741807591, :b=>-2.3017452177259488, :c=>0.034464208401164986, :d=>-0.013815026434986832}, {:a=>-1.2604304205131687, :b=>-3.575538025641461, :c=>-1.0864734625644856, :d=>-1.3385595466671192}, {:a=>-1.471557494354052, :b=>-3.8394468679425646, :c=>-1.318713243789457, :d=>-1.6130247426602675}, {:a=>0.043958488904087344, :b=>-1.9450518888698909, :c=>0.3483543377944961, :d=>0.35714603557531355}, {:a=>2.176001590386061, :b=>0.7200019879825756, :c=>2.693601749424667, :d=>3.128802067501879}, {:a=>-0.92029950715638, :b=>-3.1503743839454748, :c=>-0.7123294578720181, :d=>-0.8963893593032939}, {:a=>-0.7004889562072636, :b=>-2.8756111952590793, :c=>-0.4705378518279901, :d=>-0.6106356430694426}, {:a=>0.25652492230785534, :b=>-1.679343847115181, :c=>0.5821774145386409, :d=>0.633482399000212}, {:a=>-0.06658073958336426, :b=>-2.0832259244792053, :c=>0.2267611864582993, :d=>0.21344503854162644}, {:a=>0.8892728516290711, :b=>-0.8884089354636613, :c=>1.2782001367919782, :d=>1.4560547071177925}, {:a=>1.8644569661014079, :b=>0.33057120762675973, :c=>2.350902662711549, :d=>2.72379405593183}, {:a=>-0.8316830807111281, :b=>-3.03960385088891, :c=>-0.6148513887822409, :d=>-0.7811880049244664}, {:a=>0.6160578468675735, :b=>-1.2299276914155333, :c=>0.9776636315543308, :d=>1.1008752009278455}, {:a=>1.8573625558738964, :b=>0.32170319484237053, :c=>2.343098811461286, :d=>2.7145713226360653}, {:a=>-0.569398220919582, :b=>-2.7117477761494775, :c=>-0.3263380430115403, :d=>-0.4402176871954567}, {:a=>1.057301647058518, :b=>-0.6783729411768527, :c=>1.46303181176437, :d=>1.6744921411760734}, {:a=>-0.4999968558483872, :b=>-2.624996069810484, :c=>-0.24999654143322597, :d=>-0.34999591260290336}, {:a=>-0.251864053643584, :b=>-2.31483006705448, :c=>0.022949540992057593, :d=>-0.027423269736659206}, {:a=>-0.22636526825049147, :b=>-2.2829565853131144, :c=>0.05099820492445936, :d=>0.005725151274361073}, {:a=>0.2711127262574814, :b=>-1.6611090921781484, :c=>0.5982239988832295, :d=>0.6524465441347258}, {:a=>-2.322045535103677, :b=>-4.902556918879596, :c=>-2.2542500886140453, :d=>-2.7186591956347805}, {:a=>-0.10068628384230334, :b=>-2.125857854802879, :c=>0.18924508777346633, :d=>0.16910783100500565}, {:a=>1.386578045370113, :b=>-0.26677744328735864, :c=>1.8252358499071246, :d=>2.102551458981147}, {:a=>-0.4652678535288537, :b=>-2.581584816911067, :c=>-0.21179463888173916, :d=>-0.30484820958750986}, {:a=>-0.5813665836438241, :b=>-2.72670822955478, :c=>-0.33950324200820653, :d=>-0.45577655873697137}, {:a=>0.29941692621375077, :b=>-1.6257288422328116, :c=>0.6293586188351259, :d=>0.689242004077876}, {:a=>-0.36361285054708836, :b=>-2.4545160631838603, :c=>-0.09997413560179724, :d=>-0.17269670571121487}, {:a=>0.9306767631072512, :b=>-0.836654046115936, :c=>1.3237444394179765, :d=>1.5098797920394267}, {:a=>0.561913836902882, :b=>-1.2976077038713976, :c=>0.9181052205931701, :d=>1.0304879879737465}, {:a=>-1.8098519406123037, :b=>-4.262314925765379, :c=>-1.6908371346735342, :d=>-2.052807522795995}, {:a=>-0.612582373812798, :b=>-2.7657279672659976, :c=>-0.3738406111940779, :d=>-0.49635708595663747}, {:a=>1.1660019702899131, :b=>-0.5424975371376086, :c=>1.5826021673189046, :d=>1.8158025613768871}, {:a=>-0.23849358020238148, :b=>-2.298116975252977, :c=>0.03765706177738032, :d=>-0.010041654263095945}, {:a=>1.602267998063124, :b=>0.0028349975789048187, :c=>2.0624947978694363, :d=>2.3829483974820613}, {:a=>-1.2932674087493448, :b=>-3.6165842609366807, :c=>-1.1225941496242793, :d=>-1.3812476313741482}, {:a=>-1.5451316470317984, :b=>-3.931414558789748, :c=>-1.3996448117349782, :d=>-1.7086711411413378}, {:a=>-0.3158217325526286, :b=>-2.394777165690786, :c=>-0.0474039058078915, :d=>-0.11056825231841716}, {:a=>1.3578146504768807, :b=>-0.3027316869038992, :c=>1.793596115524569, :d=>2.0651590456199447}, {:a=>2.8179220368851015, :b=>1.5224025461063766, :c=>3.3997142405736116, :d=>3.963298647950632}, {:a=>0.03997038326507699, :b=>-1.9500370209186537, :c=>0.34396742159158467, :d=>0.3519614982446001}, {:a=>0.4743314191330914, :b=>-1.4070857260836358, :c=>0.8217645610464006, :d=>0.9166308448730189}, {:a=>-0.9199962328879304, :b=>-3.1499952911099127, :c=>-0.7119958561767235, :d=>-0.8959951027543096}, {:a=>-1.050250624249969, :b=>-3.312813280312461, :c=>-0.855275686674966, :d=>-1.0653258115249598}, {:a=>0.5460431383351375, :b=>-1.3174460770810783, :c=>0.9006474521686514, :d=>1.0098560798356788}, {:a=>-0.5676458892824812, :b=>-2.7095573616031015, :c=>-0.3244104782107294, :d=>-0.43793965606722557}, {:a=>-1.4531318941079276, :b=>-3.8164148676349097, :c=>-1.2984450835187205, :d=>-1.589071462340306}, {:a=>-0.9353121224558392, :b=>-3.169140153069799, :c=>-0.7288433347014232, :d=>-0.915905759192591}, {:a=>0.13764697671811896, :b=>-1.8279412791023513, :c=>0.45141167438993085, :d=>0.47894106973355466}, {:a=>-0.06208503508811355, :b=>-2.077606293860142, :c=>0.23170646140307508, :d=>0.2192894543854524}, {:a=>0.758600597445469, :b=>-1.0517492531931638, :c=>1.134460657190016, :d=>1.2861807766791098}, {:a=>-0.33589150326415035, :b=>-2.419864379080188, :c=>-0.06948065359056543, :d=>-0.13665895424339547}, {:a=>-0.57553069726564, :b=>-2.71941337158205, :c=>-0.33308376699220404, :d=>-0.448189906445332}, {:a=>-2.5215888153043173, :b=>-5.151986019130396, :c=>-2.4737476968347494, :d=>-2.9780654598956127}, {:a=>-0.7441508740511615, :b=>-2.930188592563952, :c=>-0.5185659614562779, :d=>-0.66739613626651}, {:a=>-0.07814249632051522, :b=>-2.097678120400644, :c=>0.21404325404743324, :d=>0.1984147547833302}, {:a=>-0.40351770618398713, :b=>-2.504397132729984, :c=>-0.14386947680238588, :d=>-0.22457301803918334}, {:a=>1.1604542176664312, :b=>-0.549432227916961, :c=>1.5764996394330744, :d=>1.8085904829663606}, {:a=>1.6109775411056773, :b=>0.013721926382096239, :c=>2.072075295216245, :d=>2.3942708034373803}, {:a=>1.1156765620339022, :b=>-0.6054042974576224, :c=>1.5272442182372925, :d=>1.750379530644073}, {:a=>1.0995375383433208, :b=>-0.625578077070849, :c=>1.509491292177653, :d=>1.7293987998463172}, {:a=>-0.24943025354453824, :b=>-2.3117878169306727, :c=>0.025626721101007888, :d=>-0.024259329607899727}, {:a=>-1.6882386400629903, :b=>-4.110298300078737, :c=>-1.5570625040692894, :d=>-1.8947102320818876}, {:a=>0.7158132473860978, :b=>-1.1052334407673778, :c=>1.0873945721247076, :d=>1.2305572216019272}, {:a=>-0.2269705993552637, :b=>-2.2837132491940797, :c=>0.05033234070920989, :d=>0.004938220838157148}, {:a=>-0.7102682561558475, :b=>-2.8878353201948093, :c=>-0.4812950817714324, :d=>-0.6233487330026017}, {:a=>-0.2396542032786649, :b=>-2.299567754098331, :c=>0.03638037639346858, :d=>-0.011550464262264415}, {:a=>1.4706326942552994, :b=>-0.1617091321808759, :c=>1.9176959636808295, :d=>2.211822502531889}, {:a=>0.6521189915635752, :b=>-1.184851260545531, :c=>1.0173308907199328, :d=>1.1477546890326478}, {:a=>0.3678957836518219, :b=>-1.5401302704352227, :c=>0.7046853620170042, :d=>0.7782645187473685}, {:a=>-0.03329651426349609, :b=>-2.04162064282937, :c=>0.26337383431015426, :d=>0.25671453145745504}, {:a=>1.6589581249562444, :b=>0.07369765619530533, :c=>2.124853937451869, :d=>2.456645562443118}, {:a=>0.9276379912049678, :b=>-0.8404525109937904, :c=>1.3204017903254648, :d=>1.5059293885664582}, {:a=>0.7778518192749264, :b=>-1.027685225906342, :c=>1.155637001202419, :d=>1.3112073650574043}, {:a=>-1.5509001145759003, :b=>-3.938625143219875, :c=>-1.4059901260334904, :d=>-1.7161701489486705}, {:a=>-1.1694340031779826, :b=>-3.461792503972478, :c=>-0.9863774034957808, :d=>-1.2202642041313774}, {:a=>0.7465706638318677, :b=>-1.0667866702101656, :c=>1.1212277302150544, :d=>1.270541862981428}, {:a=>-1.3837010677542814, :b=>-3.7296263346928518, :c=>-1.2220711745297095, :d=>-1.4988113880805658}, {:a=>-1.1038412134065987, :b=>-3.3798015167582482, :c=>-0.9142253347472586, :d=>-1.1349935774285782}, {:a=>-1.0960247168975215, :b=>-3.370030896121902, :c=>-0.9056271885872738, :d=>-1.124832131966778}, {:a=>-0.5537878703028309, :b=>-2.6922348378785386, :c=>-0.30916665733311405, :d=>-0.41992423139368024}, {:a=>-0.18900630603848215, :b=>-2.2362578825481028, :c=>0.09209306335766962, :d=>0.0542918021499732}, {:a=>-0.10943467021315517, :b=>-2.136793337766444, :c=>0.17962186276552927, :d=>0.15773492872289827}, {:a=>-0.26366338379859233, :b=>-2.3295792297482403, :c=>0.009970277821548412, :d=>-0.042762398938170076}, {:a=>-0.23123942774237383, :b=>-2.2890492846779673, :c=>0.04563662948338876, :d=>-0.0006112560650859966}, {:a=>0.1427590794141328, :b=>-1.821551150732334, :c=>0.45703498735554604, :d=>0.48558680323837267}, {:a=>-1.8300447576586187, :b=>-4.287555947073273, :c=>-1.7130492334244807, :d=>-2.0790581849562044}, {:a=>-0.13074689142368356, :b=>-2.1634336142796045, :c=>0.15617841943394806, :d=>0.13002904114921135}, {:a=>-0.8968220686891587, :b=>-3.121027585861448, :c=>-0.6865042755580746, :d=>-0.8658686892959062}, {:a=>0.6096222798416009, :b=>-1.237972150197999, :c=>0.9705845078257611, :d=>1.0925089637940812}, {:a=>1.419272883084159, :b=>-0.22590889614480125, :c=>1.861200171392575, :d=>2.145054748009407}, {:a=>-0.3596310332531973, :b=>-2.4495387915664963, :c=>-0.09559413657851706, :d=>-0.1675203432291565}, {:a=>0.2302917353847414, :b=>-1.7121353307690732, :c=>0.5533209089232156, :d=>0.5993792560001638}, {:a=>1.213313886248406, :b=>-0.4833576421894925, :c=>1.6346452748732467, :d=>1.877308052122928}, {:a=>0.19199806893430185, :b=>-1.7600024138321226, :c=>0.511197875827732, :d=>0.5495974896145924}, {:a=>-1.6444430342199639, :b=>-4.055553792774955, :c=>-1.5088873376419603, :d=>-1.837775944485953}, {:a=>-1.7197555076616118, :b=>-4.149694384577014, :c=>-1.591731058427773, :d=>-1.9356821599600955}, {:a=>-0.3145059549776622, :b=>-2.393132443722078, :c=>-0.04595655047542846, :d=>-0.10885774147096089}, {:a=>0.32651187244057706, :b=>-1.5918601594492787, :c=>0.6591630596846347, :d=>0.7244654341727501}, {:a=>0.08649597700933721, :b=>-1.8918800287383284, :c=>0.3951455747102709, :d=>0.41244477011213837}, {:a=>-0.06619163622359864, :b=>-2.082739545279498, :c=>0.22718920015404148, :d=>0.21395087290932174}, {:a=>0.09322786818355329, :b=>-1.8834651647705585, :c=>0.4025506550019086, :d=>0.4211962286386193}, {:a=>0.04993792560125056, :b=>-1.937577592998437, :c=>0.3549317181613756, :d=>0.3649193032816257}, {:a=>-1.3462977189886565, :b=>-3.6828721487358207, :c=>-1.1809274908875222, :d=>-1.4501870346852535}, {:a=>0.498634924116405, :b=>-1.3767063448544938, :c=>0.8484984165280456, :d=>0.9482254013513265}, {:a=>-0.17496347880374813, :b=>-2.2187043485046853, :c=>0.10754017331587704, :d=>0.07254747755512742}, {:a=>0.7522512417877347, :b=>-1.0596859477653315, :c=>1.1274763659665084, :d=>1.277926614324055}, {:a=>0.042059508033687354, :b=>-1.9474256149578908, :c=>0.34626545883705606, :d=>0.35467736044379355}, {:a=>-1.5799453310443425, :b=>-3.974931663805428, :c=>-1.4379398641487768, :d=>-1.7539289303576455}, {:a=>0.3294074177462733, :b=>-1.5882407278171584, :c=>0.6623481595209006, :d=>0.7282296430701554}, {:a=>0.448662685029626, :b=>-1.4391716437129676, :c=>0.7935289535325887, :d=>0.8832614905385139}, {:a=>0.1466723118544801, :b=>-1.8166596101819, :c=>0.4613395430399281, :d=>0.4906740054108241}, {:a=>1.297634533484978, :b=>-0.3779568331437777, :c=>1.727397986833476, :d=>1.9869248935304713}, {:a=>0.2012218209735673, :b=>-1.7484727237830409, :c=>0.521344003070924, :d=>0.5615883672656374}, {:a=>-0.9382032832776305, :b=>-3.172754104097038, :c=>-0.7320236116053935, :d=>-0.9196642682609195}, {:a=>1.07858919253914, :b=>-0.6517635093260752, :c=>1.4864481117930541, :d=>1.7021659503008821}, {:a=>-0.602488403776764, :b=>-2.753110504720955, :c=>-0.3627372441544405, :d=>-0.4832349249097933}, {:a=>0.060521493196138657, :b=>-1.9243481335048267, :c=>0.36657364251575253, :d=>0.3786779411549802}, {:a=>1.0455067514216871, :b=>-0.6931165607228911, :c=>1.450057426563856, :d=>1.6591587768481935}, {:a=>-0.39398712162814664, :b=>-2.4924839020351834, :c=>-0.13338583379096136, :d=>-0.2121832581165906}, {:a=>0.4378746348868555, :b=>-1.4526567063914306, :c=>0.7816620983755411, :d=>0.8692370253529123}, {:a=>-0.6715110341397602, :b=>-2.8393887926747, :c=>-0.43866213755373634, :d=>-0.5729643443816883}, {:a=>-0.6193636577175762, :b=>-2.77420457214697, :c=>-0.38130002348933384, :d=>-0.5051727550328491}, {:a=>0.4333350972186659, :b=>-1.4583311284766678, :c=>0.7766686069405325, :d=>0.8633356263842658}, {:a=>-1.816568746811413, :b=>-4.270710933514266, :c=>-1.6982256214925544, :d=>-2.061539370854837}, {:a=>-0.2657870887757018, :b=>-2.332233860969627, :c=>0.007634202346728014, :d=>-0.045523215408412365}, {:a=>0.3936582233525343, :b=>-1.5079272208093322, :c=>0.7330240456877878, :d=>0.8117556903582945}, {:a=>0.12927488224176165, :b=>-1.838406397197798, :c=>0.4422023704659378, :d=>0.46805734691429013}, {:a=>-0.22099031287764342, :b=>-2.2762378910970544, :c=>0.056910655834592205, :d=>0.012712593259063543}, {:a=>0.41790748943705425, :b=>-1.4776156382036822, :c=>0.7596982383807597, :d=>0.8432797362681705}, {:a=>-0.7881540006062376, :b=>-2.985192500757797, :c=>-0.5669694006668615, :d=>-0.7246002007881089}, {:a=>-1.0689354875402877, :b=>-3.3361693594253596, :c=>-0.8758290362943164, :d=>-1.089616133802374}, {:a=>2.1027962063634624, :b=>0.6284952579543277, :c=>2.613075826999809, :d=>3.0336350682725013}, {:a=>-0.6295395324908393, :b=>-2.786924415613549, :c=>-0.3924934857399233, :d=>-0.518401392238091}, {:a=>-0.1496112102282376, :b=>-2.187014012785297, :c=>0.13542766874893863, :d=>0.1055054267032911}, {:a=>-0.9797894092805671, :b=>-3.2247367616007088, :c=>-0.7777683502086239, :d=>-0.9737262320647373}, {:a=>-2.161728343756785, :b=>-4.702160429695981, :c=>-2.0779011781324637, :d=>-2.510246846883821}, {:a=>0.1144049473799171, :b=>-1.8569938157751036, :c=>0.4258454421179088, :d=>0.44872643159389225}, {:a=>0.03500816568604419, :b=>-1.9562397928924449, :c=>0.3385089822546486, :d=>0.34551061539185746}, {:a=>-0.9625209112783334, :b=>-3.2031511390979164, :c=>-0.7587730024061667, :d=>-0.9512771846618333}, {:a=>-0.5850216341711951, :b=>-2.7312770427139936, :c=>-0.3435237975883147, :d=>-0.4605281244225537}, {:a=>0.03434849156445036, :b=>-1.957064385544437, :c=>0.3377833407208954, :d=>0.34465303903378547}, {:a=>-0.05283140142702679, :b=>-2.0660392517837836, :c=>0.2418854584302705, :d=>0.23131917814486516}, {:a=>-0.003644560126849473, :b=>-2.0045557001585617, :c=>0.2959909838604656, :d=>0.2952620718350957}, {:a=>1.5638243141978285, :b=>-0.045219607252714455, :c=>2.0202067456176116, :d=>2.3329716084571768}, {:a=>1.0462381473371323, :b=>-0.6922023158285848, :c=>1.4508619620708456, :d=>1.660109591538272}, {:a=>1.2731744372585738, :b=>-0.40853195342678283, :c=>1.7004918809844314, :d=>1.955126768436146}, {:a=>-0.3279832379056074, :b=>-2.4099790473820093, :c=>-0.06078156169616816, :d=>-0.12637820927728965}, {:a=>-2.612579171351489, :b=>-5.265723964189361, :c=>-2.5738370884866386, :d=>-3.096352922756936}, {:a=>1.5028588974629145, :b=>-0.12142637817135693, :c=>1.953144787209206, :d=>2.253716566701789}, {:a=>-0.03129403770142861, :b=>-2.0391175471267857, :c=>0.26557655852842854, :d=>0.2593177509881428}, {:a=>-0.6930717023015425, :b=>-2.866339627876928, :c=>-0.4623788725316968, :d=>-0.6009932129920053}, {:a=>0.30726454032644185, :b=>-1.6159193245919476, :c=>0.637990994359086, :d=>0.6994439024243744}, {:a=>1.1217450844011883, :b=>-0.5978186444985147, :c=>1.5339195928413072, :d=>1.7582686097215448}, {:a=>-0.07297706185152257, :b=>-2.091221327314403, :c=>0.21972523196332516, :d=>0.20512981959302062}, {:a=>-0.0573901177304263, :b=>-2.0717376471630327, :c=>0.23687087049653105, :d=>0.2253928469504458}, {:a=>0.9341713721950534, :b=>-0.8322857847561833, :c=>1.327588509414559, :d=>1.5144227838535695}, {:a=>1.0699424605645784, :b=>-0.6625719242942771, :c=>1.4769367066210364, :d=>1.690925198733952}, {:a=>0.9463155750039733, :b=>-0.8171055312450335, :c=>1.3409471325043707, :d=>1.5302102475051653}, {:a=>-0.5243036852006662, :b=>-2.6553796065008326, :c=>-0.27673405372073284, :d=>-0.38159479076086605}, {:a=>-0.2658507262924419, :b=>-2.3323134078655525, :c=>0.0075642010783139035, :d=>-0.045605944180174496}, {:a=>-1.8946755206582115, :b=>-4.368344400822764, :c=>-1.7841430727240326, :d=>-2.163078176855675}, {:a=>0.03444349895803469, :b=>-1.9569456263024567, :c=>0.33788784885383816, :d=>0.3447765486454451}, {:a=>-1.4326883859570987, :b=>-3.790860482446373, :c=>-1.2759572245528086, :d=>-1.5624949017442282}, {:a=>-1.4097459072928926, :b=>-3.762182384116116, :c=>-1.250720498022182, :d=>-1.5326696794807604}, {:a=>1.0125143850347065, :b=>-0.7343570187066171, :c=>1.4137658235381774, :d=>1.6162687005451186}, {:a=>-0.7264098469076726, :b=>-2.9080123086345906, :c=>-0.49905083159843994, :d=>-0.6443328009799745}, {:a=>-1.4708382289110125, :b=>-3.838547786138766, :c=>-1.3179220518021137, :d=>-1.6120896975843162}, {:a=>-0.4292499160641068, :b=>-2.5365623950801335, :c=>-0.17217490767051752, :d=>-0.25802489088333885}, {:a=>-0.45760270583583557, :b=>-2.5720033822947945, :c=>-0.2033629764194192, :d=>-0.2948835175865863}, {:a=>0.03524238080736713, :b=>-1.955947023990791, :c=>0.33876661888810383, :d=>0.34581509504957725}, {:a=>0.72644089909551, :b=>-1.0919488761306124, :c=>1.0990849890050611, :d=>1.244373168824163}, {:a=>0.9914785509486058, :b=>-0.7606518113142429, :c=>1.3906264060434665, :d=>1.5889221162331877}, {:a=>-0.8237169339470715, :b=>-3.0296461674338393, :c=>-0.6060886273417787, :d=>-0.7708320141311928}, {:a=>1.8626027436753445, :b=>0.32825342959418036, :c=>2.348863018042879, :d=>2.7213835667779476}, {:a=>1.1204542200678176, :b=>-0.5994322249152282, :c=>1.5324996420745995, :d=>1.756590486088163}, {:a=>1.260129014922031, :b=>-0.4248387313474613, :c=>1.6861419164142342, :d=>1.9381677193986404}, {:a=>-0.39075455609913773, :b=>-2.488443195123922, :c=>-0.12983001170905156, :d=>-0.2079809229288791}, {:a=>-0.5336950977840476, :b=>-2.667118872230059, :c=>-0.2870646075624524, :d=>-0.3938036271192618}, {:a=>-1.4569984884944531, :b=>-3.8212481106180665, :c=>-1.3026983373438985, :d=>-1.5940980350427891}, {:a=>0.8105956125768986, :b=>-0.9867554842788768, :c=>1.1916551738345886, :d=>1.3537742963499684}, {:a=>0.7622753992474096, :b=>-1.047155750940738, :c=>1.1385029391721506, :d=>1.2909580190216325}, {:a=>-0.25861391783309484, :b=>-2.3232673972913687, :c=>0.015524690383595663, :d=>-0.036198093183023305}, {:a=>-1.4169691069882544, :b=>-3.771211383735318, :c=>-1.2586660176870799, :d=>-1.5420598390847307}, {:a=>-0.3551943592739896, :b=>-2.443992949092487, :c=>-0.09071379520138861, :d=>-0.16175266705618652}, {:a=>-2.1207453147153523, :b=>-4.65093164339419, :c=>-2.032819846186888, :d=>-2.4569689091299582}, {:a=>-0.22548425836905758, :b=>-2.281855322961322, :c=>0.05196731579403663, :d=>0.006870464120225128}, {:a=>-0.6693527236313833, :b=>-2.8366909045392292, :c=>-0.43628799599452167, :d=>-0.5701585407207983}, {:a=>0.5127556112741318, :b=>-1.3590554859073354, :c=>0.864031172401545, :d=>0.9665822946563714}, {:a=>0.8510307884042939, :b=>-0.9362115144946326, :c=>1.2361338672447233, :d=>1.4063400249255822}, {:a=>1.6555253806216812, :b=>0.06940672577710139, :c=>2.1210779186838495, :d=>2.4521829948081852}, {:a=>0.4032017019442562, :b=>-1.4959978725696796, :c=>0.7435218721386818, :d=>0.824162212527533}, {:a=>-2.064621522037735, :b=>-4.580776902547169, :c=>-1.9710836742415088, :d=>-2.384007978649056}, {:a=>-0.4951176825811654, :b=>-2.6188971032264567, :c=>-0.24462945083928195, :d=>-0.343652987355515}, {:a=>-2.035291332267032, :b=>-4.54411416533379, :c=>-1.9388204654937355, :d=>-2.345878731947142}, {:a=>0.2471129592056449, :b=>-1.6911088009929438, :c=>0.5718242551262094, :d=>0.6212468469673385}, {:a=>0.011533992641130756, :b=>-1.9855825091985866, :c=>0.3126873919052438, :d=>0.31499419043347}, {:a=>0.3814682198308576, :b=>-1.523164725211428, :c=>0.7196150418139433, :d=>0.7959086857801149}, {:a=>0.8746124043816287, :b=>-0.9067344945229643, :c=>1.2620736448197916, :d=>1.4369961256961175}, {:a=>-1.2036517535359688, :b=>-3.5045646919199607, :c=>-1.0240169288895657, :d=>-1.2647472795967594}, {:a=>-2.32157139704429, :b=>-4.901964246305362, :c=>-2.2537285367487194, :d=>-2.718042816157577}, {:a=>-0.2973676674537724, :b=>-2.3717095843172156, :c=>-0.027104434199149707, :d=>-0.08657796768990417}, {:a=>-1.5262211340538316, :b=>-3.9077764175672893, :c=>-1.378843247459215, :d=>-1.6840874742699812}, {:a=>-0.6422071271665678, :b=>-2.80275890895821, :c=>-0.4064278398832247, :d=>-0.5348692653165381}, {:a=>0.0006689678365433842, :b=>-1.9991637902043207, :c=>0.3007358646201977, :d=>0.3008696581875064}, {:a=>0.07692829052932867, :b=>-1.9038396368383392, :c=>0.38462111958226153, :d=>0.40000677768812726}, {:a=>0.2133537362885105, :b=>-1.7333078296393618, :c=>0.5346891099173616, :d=>0.5773598571750637}, {:a=>1.6499790886278147, :b=>0.06247386078476813, :c=>2.1149769974905963, :d=>2.444972815216159}, {:a=>0.5396105792580762, :b=>-1.3254867759274047, :c=>0.8935716371838838, :d=>1.001493753035499}, {:a=>-2.7691649428157543, :b=>-5.461456178519693, :c=>-2.74608143709733, :d=>-3.299914425660481}, {:a=>0.3166630599810668, :b=>-1.6041711750236665, :c=>0.6483293659791736, :d=>0.7116619779753868}, {:a=>1.0060096050066227, :b=>-0.7424879937417217, :c=>1.4066105655072851, :d=>1.6078124865086096}, {:a=>0.3006448847218797, :b=>-1.6241938940976504, :c=>0.6307093731940677, :d=>0.6908383501384436}, {:a=>1.327976652493389, :b=>-0.3400291843832639, :c=>1.760774317742728, :d=>2.0263696482414058}, {:a=>1.4429918831286934, :b=>-0.19626014608913334, :c=>1.887291071441563, :d=>2.1758894480673012}, {:a=>-1.4476339878079718, :b=>-3.8095424847599646, :c=>-1.292397386588769, :d=>-1.5819241841503633}, {:a=>0.025059302958991544, :b=>-1.9686758713012606, :c=>0.3275652332548907, :d=>0.332577093846689}, {:a=>-1.2513431774407897, :b=>-3.5641789718009873, :c=>-1.0764774951848688, :d=>-1.3267461306730266}, {:a=>-1.56561943105584, :b=>-3.9570242888197997, :c=>-1.4221813741614242, :d=>-1.735305260372592}, {:a=>0.46666409230217476, :b=>-1.4166698846222816, :c=>0.8133305015323922, :d=>0.9066633199928271}, {:a=>0.13035935186551525, :b=>-1.837050810168106, :c=>0.44339528705206677, :d=>0.46946715742516987}, {:a=>-0.7659286192655687, :b=>-2.9574107740819606, :c=>-0.5425214811921255, :d=>-0.6957072050452393}, {:a=>-0.22895035905687913, :b=>-2.286187948821099, :c=>0.04815460503743291, :d=>0.0023645332260571195}, {:a=>1.235715861470297, :b=>-0.4553551731621288, :c=>1.659287447617327, :d=>1.9064306199113863}, {:a=>2.4914504288787027, :b=>1.1143130360983782, :c=>3.040595471766573, :d=>3.5388855575423133}, {:a=>-1.0302956139177208, :b=>-3.287869517397151, :c=>-0.833325175309493, :d=>-1.039384298093037}, {:a=>-0.5221155592000332, :b=>-2.652644449000041, :c=>-0.27432711512003655, :d=>-0.3787502269600432}, {:a=>-0.7249765809125642, :b=>-2.906220726140705, :c=>-0.49747423900382076, :d=>-0.6424695551863335}, {:a=>-1.0743540155288152, :b=>-3.342942519411019, :c=>-0.8817894170816967, :d=>-1.0966602201874598}, {:a=>0.7823317751702109, :b=>-1.0220852810372363, :c=>1.1605649526872321, :d=>1.3170313077212743}, {:a=>-0.8759753255678216, :b=>-3.094969156959777, :c=>-0.6635728581246039, :d=>-0.8387679232381682}, {:a=>0.3910899257399864, :b=>-1.511137592825017, :c=>0.7301989183139851, :d=>0.8084169034619824}, {:a=>1.8077939709727395, :b=>0.25974246371592447, :c=>2.2885733680700135, :d=>2.6501321622645615}, {:a=>-0.7769099624770636, :b=>-2.9711374530963295, :c=>-0.55460095872477, :d=>-0.7099829512201827}, {:a=>0.074892984368283, :b=>-1.9063837695396462, :c=>0.3823822828051113, :d=>0.3973608796787679}, {:a=>-0.4534303629133433, :b=>-2.566787953641679, :c=>-0.19877339920467768, :d=>-0.2894594717873464}, {:a=>-2.278825749728292, :b=>-4.848532187160365, :c=>-2.206708324701122, :d=>-2.66247347464678}, {:a=>0.7358571243708507, :b=>-1.0801785945364366, :c=>1.1094428368079359, :d=>1.2566142616821059}, {:a=>2.225140326784368, :b=>0.7814254084804602, :c=>2.747654359462805, :d=>3.1926824248196786}, {:a=>0.7821006785451248, :b=>-1.022374151818594, :c=>1.1603107463996374, :d=>1.3167308821086623}, {:a=>0.1280859030046555, :b=>-1.8398926212441806, :c=>0.44089449330512104, :d=>0.46651167390605214}, {:a=>0.0659142747390954, :b=>-1.9176071565761308, :c=>0.37250570221300494, :d=>0.385688557160824}, {:a=>1.4593089914873931, :b=>-0.1758637606407587, :c=>1.9052398906361325, :d=>2.197101688933611}, {:a=>-1.4457191356173895, :b=>-3.8071489195217367, :c=>-1.2902910491791286, :d=>-1.5794348763026065}, {:a=>0.40562792044162865, :b=>-1.4929650994479642, :c=>0.7461907124857916, :d=>0.8273162965741172}, {:a=>-2.159236184413183, :b=>-4.699045230516479, :c=>-2.0751598028545017, :d=>-2.5070070397371382}, {:a=>-1.6892094402430058, :b=>-4.111511800303758, :c=>-1.5581303842673064, :d=>-1.8959722723159074}, {:a=>1.0363644568990493, :b=>-0.7045444288761884, :c=>1.4400009025889544, :d=>1.6472737939687643}, {:a=>1.0064017775647642, :b=>-0.7419977780440448, :c=>1.4070419553212408, :d=>1.6083223108341935}, {:a=>0.7575131089612984, :b=>-1.053108613798377, :c=>1.1332644198574284, :d=>1.284767041649688}, {:a=>0.09012617488419716, :b=>-1.8873422813947536, :c=>0.39913879237261685, :d=>0.4171640273494563}, {:a=>0.47713691499111954, :b=>-1.4035788562611007, :c=>0.8248506064902315, :d=>0.9202779894884554}, {:a=>1.971465926775966, :b=>0.46433240846995716, :c=>2.4686125194535626, :d=>2.862905704808756}, {:a=>-0.6537838198077944, :b=>-2.817229774759743, :c=>-0.41916220178857394, :d=>-0.5499189657501329}, {:a=>-0.1749251742606716, :b=>-2.2186564678258396, :c=>0.10758230831326121, :d=>0.07259727346112688}, {:a=>-0.9178513900197031, :b=>-3.147314237524629, :c=>-0.7096365290216735, :d=>-0.8932068070256141}, {:a=>0.006762250947481929, :b=>-1.9915471863156475, :c=>0.3074384760422301, :d=>0.3087909262317265}, {:a=>-0.461084182404046, :b=>-2.5763552280050575, :c=>-0.2071926006444506, :d=>-0.29940943712525975}, {:a=>0.22684357927071766, :b=>-1.716445525911603, :c=>0.5495279371977895, :d=>0.594896653051933}, {:a=>2.1701044322240066, :b=>0.7126305402800082, :c=>2.687114875446407, :d=>3.1211357618912086}, {:a=>0.8158067005647183, :b=>-0.9802416242941023, :c=>1.1973873706211902, :d=>1.3605487107341339}, {:a=>-0.4251428423665579, :b=>-2.5314285529581975, :c=>-0.16765712660321375, :d=>-0.25268569507652533}, {:a=>0.3618884511038961, :b=>-1.54763943612013, :c=>0.6980772962142858, :d=>0.7704549864350649}, {:a=>-0.07936080307493808, :b=>-2.099201003843673, :c=>0.21270311661756808, :d=>0.1968309560025805}, {:a=>0.20950543055023418, :b=>-1.7381182118122074, :c=>0.5304559736052576, :d=>0.5723570597153045}, {:a=>-2.020359634925828, :b=>-4.525449543657285, :c=>-1.922395598418411, :d=>-2.3264675254035767}, {:a=>0.61335693038055, :b=>-1.2333038370243126, :c=>0.9746926234186051, :d=>1.097364009494715}, {:a=>1.4898824571135545, :b=>-0.13764692860805705, :c=>1.9388707028249101, :d=>2.2368471942476207}, {:a=>1.7399175965937468, :b=>0.17489699574218331, :c=>2.2139093562531214, :d=>2.561892875571871}, {:a=>-0.013321087328339523, :b=>-2.0166513591604245, :c=>0.2853468039388265, :d=>0.2826825864731586}, {:a=>-1.096897488476711, :b=>-3.371121860595889, :c=>-0.9065872373243822, :d=>-1.1259667350197244}, {:a=>-1.5351580758645558, :b=>-3.9189475948306947, :c=>-1.3886738834510115, :d=>-1.6957054986239226}, {:a=>1.7527371940643333, :b=>0.19092149258041635, :c=>2.228010913470767, :d=>2.578558352283633}, {:a=>-0.1451173236382434, :b=>-2.1813966545478043, :c=>0.14037094399793223, :d=>0.11134747927028357}, {:a=>1.8453636425906297, :b=>0.30670455323828705, :c=>2.3299000068496927, :d=>2.6989727353678186}, {:a=>-0.7559144239144715, :b=>-2.9448930298930893, :c=>-0.5315058663059187, :d=>-0.6826887510888131}, {:a=>-0.6462978073162294, :b=>-2.8078722591452867, :c=>-0.4109275880478524, :d=>-0.5401871495110984}, {:a=>-0.06595788632060387, :b=>-2.082447357900755, :c=>0.22744632504733572, :d=>0.21425474778321496}, {:a=>-0.41574758550288776, :b=>-2.5196844818786097, :c=>-0.15732234405317658, :d=>-0.24047186115375413}, {:a=>-0.6620531399278249, :b=>-2.827566424909781, :c=>-0.4282584539206074, :d=>-0.5606690819061724}, {:a=>0.15287986735350556, :b=>-1.808900165808118, :c=>0.4681678540888561, :d=>0.49874382755955726}, {:a=>0.775237139757753, :b=>-1.0309535753028087, :c=>1.1527608537335283, :d=>1.307808281685079}, {:a=>-1.4193786433547773, :b=>-3.7742233041934714, :c=>-1.261316507690255, :d=>-1.5451922363612105}, {:a=>-0.02501964651269694, :b=>-2.031274558140871, :c=>0.27247838883603337, :d=>0.26747445953349397}, {:a=>-0.4772024983856831, :b=>-2.596503122982104, :c=>-0.22492274822425146, :d=>-0.3203632479013881}, {:a=>-0.9124979200967077, :b=>-3.1406224001208844, :c=>-0.7037477121063784, :d=>-0.88624729612572}, {:a=>-1.3320806710387934, :b=>-3.665100838798492, :c=>-1.1652887381426729, :d=>-1.4317048723504313}, {:a=>0.9221933456111316, :b=>-0.8472583179860855, :c=>1.3144126801722449, :d=>1.4988513492944713}, {:a=>1.519982191447451, :b=>-0.10002226069068643, :c=>1.9719804105921963, :d=>2.2759768488816863}, {:a=>-0.5387098038440555, :b=>-2.6733872548050694, :c=>-0.2925807842284612, :d=>-0.4003227449972722}, {:a=>-0.9318911129102353, :b=>-3.164863891137794, :c=>-0.7250802242012588, :d=>-0.9114584467833058}, {:a=>0.9356011261399768, :b=>-0.830498592325029, :c=>1.3291612387539746, :d=>1.51628146398197}, {:a=>2.617821353744565, :b=>1.2722766921807058, :c=>3.1796034891190215, :d=>3.7031677598679344}, {:a=>2.3470492270036236, :b=>0.9338115337545294, :c=>2.881754149703986, :d=>3.3511639951047107}, {:a=>0.8366875819873884, :b=>-0.9541405225157646, :c=>1.2203563401861273, :d=>1.387693856583605}, {:a=>0.04978094915484638, :b=>-1.937773813556442, :c=>0.354759044070331, :d=>0.3647152339013003}, {:a=>-1.252974946038344, :b=>-3.56621868254793, :c=>-1.0782724406421784, :d=>-1.328867429849847}, {:a=>-1.2074961441533414, :b=>-3.5093701801916763, :c=>-1.0282457585686755, :d=>-1.2697449873993438}, {:a=>-0.493864637758432, :b=>-2.61733079719804, :c=>-0.24325110153427526, :d=>-0.3420240290859616}, {:a=>-1.1118824166114074, :b=>-3.389853020764259, :c=>-0.9230706582725483, :d=>-1.1454471415948297}, {:a=>0.7508018067031509, :b=>-1.0614977416210616, :c=>1.125881987373466, :d=>1.2760423487140962}, {:a=>0.16831022725779127, :b=>-1.789612215927761, :c=>0.4851412499835704, :d=>0.5188032954351287}, {:a=>0.5202156460837324, :b=>-1.3497304423953347, :c=>0.8722372106921057, :d=>0.9762803399088522}, {:a=>-1.1722050878412784, :b=>-3.465256359801598, :c=>-0.9894255966254064, :d=>-1.223866614193662}, {:a=>-3.075891935073267, :b=>-5.8448649188415835, :c=>-3.0834811285805945, :d=>-3.6986595155952475}, {:a=>-0.5193469139147151, :b=>-2.649183642393394, :c=>-0.27128160530618667, :d=>-0.37515098808912967}, {:a=>-0.9974395992990269, :b=>-3.2467994991237834, :c=>-0.7971835592289296, :d=>-0.996671479088735}, {:a=>1.7906346287261083, :b=>0.23829328590763543, :c=>2.2696980915987193, :d=>2.6278250173439406}, {:a=>-0.7384937524310218, :b=>-2.923117190538777, :c=>-0.5123431276741239, :d=>-0.6600418781603283}, {:a=>-0.42713998678527093, :b=>-2.5339249834815885, :c=>-0.1698539854637981, :d=>-0.2552819828208523}, {:a=>-0.0553137323328752, :b=>-2.069142165416094, :c=>0.23915489443383725, :d=>0.22809214796726224}, {:a=>1.5518729212361173, :b=>-0.06015884845485342, :c=>2.007060213359729, :d=>2.3174347976069525}, {:a=>1.2736949201802963, :b=>-0.40788134977462964, :c=>1.701064412198326, :d=>1.9558033962343853}, {:a=>-0.20289765586099784, :b=>-2.2536220698262475, :c=>0.07681257855290236, :d=>0.036233047380702765}, {:a=>1.945156161528612, :b=>0.43144520191076463, :c=>2.439671777681473, :d=>2.8287030099871955}, {:a=>-0.6914085982603383, :b=>-2.8642607478254227, :c=>-0.4605494580863722, :d=>-0.5988311777384399}, {:a=>-0.826773154852095, :b=>-3.0334664435651186, :c=>-0.6094504703373047, :d=>-0.7748051013077235}, {:a=>-0.13821783805322516, :b=>-2.1727722975665316, :c=>0.1479603781414523, :d=>0.12031681053080728}, {:a=>-1.2165117904926677, :b=>-3.5206397381158343, :c=>-1.0381629695419345, :d=>-1.281465327640468}, {:a=>-0.6321629896962139, :b=>-2.790203737120267, :c=>-0.3953792886658353, :d=>-0.521811886605078}, {:a=>0.3550343138713653, :b=>-1.5562071076607933, :c=>0.6905377452585019, :d=>0.7615446080327749}, {:a=>0.9358519914761515, :b=>-0.8301850106548108, :c=>1.3294371906237668, :d=>1.516607588918997}, {:a=>1.2504776198593328, :b=>-0.436902975175834, :c=>1.6755253818452662, :d=>1.9256209058171327}, {:a=>1.0889247691125676, :b=>-0.6388440386092906, :c=>1.4978172460238246, :d=>1.715602199846338}, {:a=>-0.6035486576153981, :b=>-2.7544358220192477, :c=>-0.36390352337693793, :d=>-0.48461325490001755}, {:a=>-0.43893552499711963, :b=>-2.5486694062463995, :c=>-0.18282907749683164, :d=>-0.2706161824962556}, {:a=>1.6319687684589723, :b=>0.039960960573715454, :c=>2.0951656453048697, :d=>2.421559398996664}, {:a=>-0.24313550775191706, :b=>-2.3039193846898964, :c=>0.032550941472891226, :d=>-0.016076160077492185}, {:a=>-0.1777845524631598, :b=>-2.2222306905789497, :c=>0.1044369922905242, :d=>0.06888008179789223}, {:a=>-0.20336451423939933, :b=>-2.254205642799249, :c=>0.07629903433666071, :d=>0.035626131488780854}, {:a=>-0.4808073067151594, :b=>-2.601009133393949, :c=>-0.22888803738667546, :d=>-0.3250494987297073}, {:a=>1.3427935937254036, :b=>-0.3215080078432455, :c=>1.777072953097944, :d=>2.0456316718430245}, {:a=>-1.8341065701814678, :b=>-4.292633212726835, :c=>-1.7175172271996149, :d=>-2.0843385412359083}, {:a=>-0.31014504427516126, :b=>-2.3876813053439516, :c=>-0.041159548702677407, :d=>-0.10318855755770967}, {:a=>-1.104651822499059, :b=>-3.3808147781238236, :c=>-0.915117004748965, :d=>-1.1360473692487767}, {:a=>-0.9142934252435395, :b=>-3.1428667815544244, :c=>-0.7057227677678934, :d=>-0.8885814528166014}, {:a=>-0.37636387010594186, :b=>-2.470454837632427, :c=>-0.11400025711653611, :d=>-0.18927303113772442}, {:a=>1.4322893005946762, :b=>-0.20963837425665477, :c=>1.875518230654144, :d=>2.161976090773079}, {:a=>-1.2337488893361053, :b=>-3.5421861116701314, :c=>-1.0571237782697158, :d=>-1.3038735561369368}, {:a=>-2.294771886840124, :b=>-4.868464858550155, :c=>-2.2242490755241366, :d=>-2.6832034528921613}, {:a=>-0.5522712718072358, :b=>-2.6903390897590445, :c=>-0.30749839898795944, :d=>-0.4179526533494065}, {:a=>1.8533951003939388, :b=>0.3167438754924232, :c=>2.338734610433333, :d=>2.7094136305121204}, {:a=>-0.9305441532641131, :b=>-3.1631801915801416, :c=>-0.7235985685905244, :d=>-0.9097073992433471}, {:a=>-1.3736989253568452, :b=>-3.7171236566960566, :c=>-1.2110688178925297, :d=>-1.4858086029638988}, {:a=>-0.9081970890171446, :b=>-3.135246361271431, :c=>-0.6990167979188591, :d=>-0.8806562157222879}, {:a=>0.16456114227170854, :b=>-1.7942985721603644, :c=>0.4810172564988794, :d=>0.5139294849532211}, {:a=>1.78165313251577, :b=>0.22706641564471264, :c=>2.259818445767347, :d=>2.616149072270501}, {:a=>-1.204381251367517, :b=>-3.5054765642093964, :c=>-1.0248193765042688, :d=>-1.2656956267777721}, {:a=>1.2892176446530461, :b=>-0.3884779441836925, :c=>1.7181394091183508, :d=>1.97598293804896}, {:a=>0.5037242538116173, :b=>-1.3703446827354784, :c=>0.8540966791927791, :d=>0.9548415299551025}, {:a=>1.7550620407828028, :b=>0.19382755097850346, :c=>2.2305682448610833, :d=>2.5815806530176437}, {:a=>0.30098559278767983, :b=>-1.6237680090154003, :c=>0.6310841520664479, :d=>0.6912812706239838}, {:a=>-1.677517305236357, :b=>-4.096896631545446, :c=>-1.5452690357599927, :d=>-1.8807724968072643}, {:a=>-1.2107187690327332, :b=>-3.513398461290916, :c=>-1.0317906459360067, :d=>-1.2739343997425532}, {:a=>-0.3700916901783576, :b=>-2.462614612722947, :c=>-0.10710085919619339, :d=>-0.18111919723186487}, {:a=>1.581474676712069, :b=>-0.023156654109913744, :c=>2.039622144383276, :d=>2.35591707972569}, {:a=>-0.5591520049748275, :b=>-2.6989400062185345, :c=>-0.3150672054723103, :d=>-0.42689760646727587}, {:a=>-0.36803421463462266, :b=>-2.4600427682932784, :c=>-0.10483763609808494, :d=>-0.17844447902500948}, {:a=>-1.116666993920409, :b=>-3.3958337424005114, :c=>-0.92833369331245, :d=>-1.1516670920965317}, {:a=>-0.8407475689338698, :b=>-3.050934461167337, :c=>-0.6248223258272569, :d=>-0.7929718396140308}, {:a=>-1.4373779145569745, :b=>-3.7967223931962177, :c=>-1.281115706012672, :d=>-1.568591288924067}, {:a=>1.072789748606702, :b=>-0.6590128142416227, :c=>1.4800687234673724, :d=>1.6946266731887127}, {:a=>-0.1692157829902229, :b=>-2.2115197287377786, :c=>0.11386263871075478, :d=>0.0800194821127102}, {:a=>0.6403182909602969, :b=>-1.199602136299629, :c=>1.0043501200563267, :d=>1.132413778248386}, {:a=>-0.4267023194783855, :b=>-2.5333778993479816, :c=>-0.1693725514262241, :d=>-0.2547130153219012}, {:a=>-0.7040904456299418, :b=>-2.8801130570374274, :c=>-0.4744994901929361, :d=>-0.6153175793189245}, {:a=>0.9619610949577655, :b=>-0.7975486313027933, :c=>1.3581572044535422, :d=>1.5505494234450952}, {:a=>-0.5224640403299857, :b=>-2.6530800504124823, :c=>-0.27471044436298436, :d=>-0.3792032524289815}, {:a=>-0.14914587886746075, :b=>-2.186432348584326, :c=>0.13593953324579314, :d=>0.10611035747230099}, {:a=>-0.019804000661476792, :b=>-2.024755000826846, :c=>0.2782155992723755, :d=>0.27425479914008016}, {:a=>1.80701136404509, :b=>0.25876420505636233, :c=>2.287712500449599, :d=>2.649114773258617}, {:a=>-0.5144779160223535, :b=>-2.643097395027942, :c=>-0.26592570762458895, :d=>-0.3688212908290596}, {:a=>-0.896437531799054, :b=>-3.120546914748817, :c=>-0.6860812849789595, :d=>-0.8653687913387702}, {:a=>1.3022746326616028, :b=>-0.3721567091729965, :c=>1.7325020959277633, :d=>1.9929570224600837}, {:a=>1.778758409496908, :b=>0.22344801187113505, :c=>2.256634250446599, :d=>2.61238593234598}, {:a=>-0.2565398505003322, :b=>-2.3206748131254153, :c=>0.017806164449634565, :d=>-0.03350180565043187}, {:a=>2.0997217316013095, :b=>0.6246521645016365, :c=>2.6096939047614405, :d=>3.0296382510817024}, {:a=>0.20884509368345452, :b=>-1.738943632895682, :c=>0.5297296030518, :d=>0.5714986217884909}, {:a=>1.6354859684430154, :b=>0.0443574605537691, :c=>2.099034565287317, :d=>2.42613175897592}, {:a=>-1.0978764286335334, :b=>-3.3723455357919168, :c=>-0.9076640714968869, :d=>-1.1272393572235935}, {:a=>-1.2720020313122546, :b=>-3.5900025391403183, :c=>-1.0992022344434802, :d=>-1.353602640705931}, {:a=>0.9490326967691914, :b=>-0.8137091290385108, :c=>1.3439359664461108, :d=>1.533742505799949}, {:a=>-0.23734618769004115, :b=>-2.2966827346125513, :c=>0.03891919354095469, :d=>-0.008550043997053502}, {:a=>-0.47472923894954727, :b=>-2.593411548686934, :c=>-0.22220216284450206, :d=>-0.3171480106344115}, {:a=>-0.6090801434893367, :b=>-2.7613501793616706, :c=>-0.3699881578382704, :d=>-0.4918041865361377}, {:a=>-1.948559274745412, :b=>-4.435699093431765, :c=>-1.8434152022199533, :d=>-2.233127057169036}, {:a=>0.5592331687487792, :b=>-1.3009585390640261, :c=>0.9151564856236571, :d=>1.0270031193734128}, {:a=>1.851081500897975, :b=>0.3138518761224689, :c=>2.3361896509877726, :d=>2.7064059511673677}, {:a=>1.667550119232937, :b=>0.0844376490411709, :c=>2.1343051311562307, :d=>2.467815155002818}, {:a=>1.4066762138171454, :b=>-0.2416547327285683, :c=>1.84734383519886, :d=>2.128679077962289}, {:a=>-0.34939927882339483, :b=>-2.4367490985292437, :c=>-0.08433920670573436, :d=>-0.15421906247041328}, {:a=>0.8548940593571804, :b=>-0.9313824258035246, :c=>1.2403834652928984, :d=>1.4113622771643346}, {:a=>0.9448506745840246, :b=>-0.8189366567699694, :c=>1.3393357420424272, :d=>1.5283058769592321}, {:a=>-1.8774774134665162, :b=>-4.346846766833146, :c=>-1.7652251548131679, :d=>-2.140720637506471}, {:a=>2.0491623028365917, :b=>0.5614528785457393, :c=>2.554078533120251, :d=>2.9639109936875694}, {:a=>0.07618976775323391, :b=>-1.9047627903084576, :c=>0.3838087445285573, :d=>0.39904669807920407}, {:a=>1.7517975556704442, :b=>0.18974694458805486, :c=>2.226977311237489, :d=>2.5773368223715774}, {:a=>-1.3630554528137506, :b=>-3.703819316017188, :c=>-1.1993609980951259, :d=>-1.4719720886578758}, {:a=>0.16055629708082697, :b=>-1.7993046286489662, :c=>0.4766119267889097, :d=>0.5087231862050751}, {:a=>1.771832870409437, :b=>0.21479108801179603, :c=>2.249016157450381, :d=>2.603382731532268}, {:a=>-0.6199516321155321, :b=>-2.7749395401444152, :c=>-0.38194679532708536, :d=>-0.5059371217501918}, {:a=>0.395538392432999, :b=>-1.5055770094587513, :c=>0.7350922316762989, :d=>0.8141999101628987}, {:a=>-1.7155971655544717, :b=>-4.14449645694309, :c=>-1.587156882109919, :d=>-1.9302763152208133}, {:a=>-1.013135587167228, :b=>-3.266419483959035, :c=>-0.8144491458839509, :d=>-1.0170762633173964}, {:a=>1.1397958882944912, :b=>-0.5752551396318861, :c=>1.5537754771239405, :d=>1.7817346547828385}, {:a=>0.4033367589049696, :b=>-1.495829051368788, :c=>0.7436704347954666, :d=>0.8243377865764605}, {:a=>0.5177975702656443, :b=>-1.3527530371679446, :c=>0.8695773272922087, :d=>0.9731368413453376}, {:a=>0.0778227249680759, :b=>-1.9027215937899051, :c=>0.38560499746488347, :d=>0.4011695424584987}, {:a=>0.8643935540651889, :b=>-0.9195080574185139, :c=>1.2508329094717079, :d=>1.4237116202847457}, {:a=>-1.663816710709336, :b=>-4.07977088838667, :c=>-1.5301983817802698, :d=>-1.862961723922137}, {:a=>1.5249175363741494, :b=>-0.09385307953231337, :c=>1.9774092900115645, :d=>2.2823927972863944}, {:a=>0.2919768994672235, :b=>-1.6350288756659705, :c=>0.6211745894139459, :d=>0.6795699693073906}, {:a=>0.08950492840135019, :b=>-1.8881188394983122, :c=>0.3984554212414852, :d=>0.41635640692175524}, {:a=>0.553444199480494, :b=>-1.3081947506493825, :c=>0.9087886194285433, :d=>1.019477459324642}, {:a=>0.7963980700614826, :b=>-1.0045024124231468, :c=>1.176037877067631, :d=>1.3353174910799275}, {:a=>2.8107663564862286, :b=>1.5134579456077857, :c=>3.3918429921348516, :d=>3.953996263432097}, {:a=>-0.03667764294572321, :b=>-2.045847053682154, :c=>0.2596545927597045, :d=>0.2523190641705598}, {:a=>-1.1580635675426227, :b=>-3.4475794594282783, :c=>-0.9738699242968851, :d=>-1.2054826378054095}, {:a=>0.9946860057681463, :b=>-0.7566424927898172, :c=>1.394154606344961, :d=>1.5930918074985903}, {:a=>-0.115340585034842, :b=>-2.1441757312935525, :c=>0.1731253564616738, :d=>0.1500572394547054}, {:a=>-1.1213274945373903, :b=>-3.401659368171738, :c=>-0.9334602439911295, :d=>-1.1577257428986074}, {:a=>1.0985517904804323, :b=>-0.6268102618994598, :c=>1.5084069695284756, :d=>1.728117327624562}, {:a=>-1.4087381405752057, :b=>-3.760922675719007, :c=>-1.2496119546327265, :d=>-1.5313595827477675}, {:a=>-0.3035955741333907, :b=>-2.3794944676667384, :c=>-0.033955131546729855, :d=>-0.09467424637340799}, {:a=>0.713061777196096, :b=>-1.10867277850488, :c=>1.0843679549157057, :d=>1.2269803103549248}, {:a=>-1.5180949382267932, :b=>-3.8976186727834916, :c=>-1.3699044320494727, :d=>-1.6735234196948312}, {:a=>2.5008772072945455, :b=>1.1260965091181818, :c=>3.0509649280240003, :d=>3.5511403694829093}, {:a=>-1.1720288777695473, :b=>-3.465036097211934, :c=>-0.9892317655465022, :d=>-1.2236375411004115}, {:a=>0.28307316755211337, :b=>-1.6461585405598584, :c=>0.6113804843073247, :d=>0.6679951178177475}, {:a=>0.582169604815869, :b=>-1.272287993980164, :c=>0.9403865652974559, :d=>1.0568204862606296}, {:a=>0.31709859921966604, :b=>-1.6036267509754174, :c=>0.6488084591416327, :d=>0.7122281789855658}, {:a=>1.0381361970067258, :b=>-0.7023297537415929, :c=>1.4419498167073985, :d=>1.6495770561087435}, {:a=>0.10085473789936539, :b=>-1.8739315776257932, :c=>0.41094021168930195, :d=>0.431111159269175}, {:a=>-0.8821161080931115, :b=>-3.102645135116389, :c=>-0.6703277189024228, :d=>-0.8467509405210449}, {:a=>0.3360710361145346, :b=>-1.5799112048568318, :c=>0.6696781397259881, :d=>0.736892346948895}, {:a=>0.10808937374797598, :b=>-1.8648882828150302, :c=>0.41889831112277354, :d=>0.44051618587236874}, {:a=>0.5590828573051272, :b=>-1.301146428368591, :c=>0.9149911430356399, :d=>1.0268077144966654}, {:a=>0.34930097076235095, :b=>-1.5633737865470614, :c=>0.6842310678385861, :d=>0.7540912619910562}, {:a=>-1.4511905715063436, :b=>-3.8139882143829293, :c=>-1.296309628656978, :d=>-1.5865477429582466}, {:a=>-0.6769974833205089, :b=>-2.8462468541506363, :c=>-0.44469723165255987, :d=>-0.5800967283166616}, {:a=>0.30109549478846237, :b=>-1.623630631514422, :c=>0.6312050442673086, :d=>0.691424143225001}, {:a=>1.1273416724130183, :b=>-0.5908229094837272, :c=>1.5400758396543204, :d=>1.765544174136924}, {:a=>-0.003951081586472339, :b=>-2.0049388519830904, :c=>0.2956538102548804, :d=>0.29486359393758593}, {:a=>-0.12178230005225457, :b=>-2.1522278750653183, :c=>0.16603946994251995, :d=>0.14168300993206903}, {:a=>1.4212962340414563, :b=>-0.2233797074481796, :c=>1.8634258574456022, :d=>2.147685104253893}, {:a=>-0.16802253325197183, :b=>-2.210028166564965, :c=>0.11517521342283096, :d=>0.08157070677243661}, {:a=>-0.27839976430026636, :b=>-2.347999705375333, :c=>-0.006239740730293042, :d=>-0.06191969359034627}, {:a=>-1.0936404355904854, :b=>-3.367050544488107, :c=>-0.903004479149534, :d=>-1.121732566267631}, {:a=>-0.2535017626258536, :b=>-2.316877203282317, :c=>0.02114806111156098, :d=>-0.02955229141360971}, {:a=>-0.18974739060426887, :b=>-2.237184238255336, :c=>0.09127787033530421, :d=>0.05332839221445043}, {:a=>0.4630782778930813, :b=>-1.4211521526336484, :c=>0.8093861056823894, :d=>0.9020017612610056}, {:a=>-0.2925900889034905, :b=>-2.3657376111293633, :c=>-0.021849097793839534, :d=>-0.08036711557453763}, {:a=>0.45432928400746986, :b=>-1.4320883949906626, :c=>0.7997622124082169, :d=>0.8906280692097108}, {:a=>1.8043975129045278, :b=>0.25549689113065943, :c=>2.2848372641949806, :d=>2.645716766775886}, {:a=>-1.3738220005817212, :b=>-3.7172775007271515, :c=>-1.2112042006398933, :d=>-1.4859686007562376}, {:a=>-0.157322921988735, :b=>-2.1966536524859186, :c=>0.1269447858123915, :d=>0.0954802014146445}, {:a=>-0.02456646070386536, :b=>-2.0307080758798315, :c=>0.2729768932257481, :d=>0.268063601084975}, {:a=>-0.9646938003898947, :b=>-3.205867250487368, :c=>-0.7611631804288843, :d=>-0.9541019405068631}, {:a=>1.1842538978420831, :b=>-0.5196826276973963, :c=>1.6026792876262916, :d=>1.8395300671947081}, {:a=>0.3427118667186006, :b=>-1.5716101666017492, :c=>0.6769830533904606, :d=>0.7455254267341808}, {:a=>0.13537126810403394, :b=>-1.8307859148699577, :c=>0.44890839491443735, :d=>0.4759826485352441}, {:a=>-0.4668750030874279, :b=>-2.583593753859285, :c=>-0.21356250339617072, :d=>-0.3069375040136563}, {:a=>0.16846070235656485, :b=>-1.789424122054294, :c=>0.4853067725922213, :d=>0.5189989130635343}, {:a=>1.171076099767707, :b=>-0.5361548752903664, :c=>1.5881837097444778, :d=>1.8223989296980192}, {:a=>-1.389847222084755, :b=>-3.737309027605944, :c=>-1.2288319442932307, :d=>-1.5068013887101817}, {:a=>-0.8674147371209384, :b=>-3.084268421401173, :c=>-0.6541562108330323, :d=>-0.82763915825722}, {:a=>-0.15285613820561686, :b=>-2.191070172757021, :c=>0.13185824797382142, :d=>0.10128702033269807}, {:a=>0.5283034525876813, :b=>-1.3396206842653984, :c=>0.8811337978464495, :d=>0.9867944883639856}, {:a=>1.3172825396320107, :b=>-0.35339682545998663, :c=>1.749010793595212, :d=>2.012467301521614}, {:a=>0.5730451238864306, :b=>-1.283693595141962, :c=>0.9303496362750736, :d=>1.0449586610523598}, {:a=>0.4542458693894558, :b=>-1.4321926632631803, :c=>0.7996704563284014, :d=>0.8905196302062925}, {:a=>-0.6725286557266651, :b=>-2.840660819658331, :c=>-0.4397815212993316, :d=>-0.5742872524446647}, {:a=>-1.488742990765309, :b=>-3.8609287384566358, :c=>-1.33761728984184, :d=>-1.6353658879949016}, {:a=>-0.16202053226293078, :b=>-2.2025256653286633, :c=>0.12177741451077612, :d=>0.08937330805818997}, {:a=>-0.6293548209887176, :b=>-2.786693526235897, :c=>-0.39229030308758944, :d=>-0.5181612672853331}, {:a=>-1.783601698817227, :b=>-4.2295021235215335, :c=>-1.6619618686989497, :d=>-2.0186822084623954}, {:a=>0.8963895264046665, :b=>-0.8795130919941669, :c=>1.2860284790451333, :d=>1.4653063843260665}, {:a=>-0.21234132284581267, :b=>-2.265426653557266, :c=>0.06642454486960603, :d=>0.0239562803004435}, {:a=>1.805763992347719, :b=>0.2572049904346483, :c=>2.286340391582491, :d=>2.6474931900520344}, {:a=>2.1953275851158214, :b=>0.7441594813947767, :c=>2.7148603436274037, :d=>3.153925860650568}, {:a=>0.5316703915198949, :b=>-1.3354120106001313, :c=>0.8848374306718845, :d=>0.9911715089758635}, {:a=>-1.330586805912375, :b=>-3.6632335073904687, :c=>-1.1636454865036128, :d=>-1.4297628476860877}, {:a=>0.675997512931625, :b=>-1.1550031088354689, :c=>1.0435972642247875, :d=>1.1787967668111126}, {:a=>0.9125011461229618, :b=>-0.8593735673462977, :c=>1.3037512607352582, :d=>1.4862514899598505}, {:a=>0.048496220303691454, :b=>-1.9393797246203857, :c=>0.3533458423340606, :d=>0.3630450863947989}, {:a=>-0.13499577365712861, :b=>-2.168744717071411, :c=>0.1515046489771585, :d=>0.12450549424573279}, {:a=>-1.0678045388028523, :b=>-3.3347556735035653, :c=>-0.8745849926831375, :d=>-1.088145900443708}, {:a=>0.7021658546113376, :b=>-1.122292681735828, :c=>1.0723824400724715, :d=>1.212815610994739}, {:a=>1.676273727342743, :b=>0.0953421591784287, :c=>2.1439011000770174, :d=>2.479155845545566}, {:a=>-0.1658984825331938, :b=>-2.2073731031664923, :c=>0.1175116692134868, :d=>0.08433197270684803}, {:a=>-0.5277752496696596, :b=>-2.6597190620870745, :c=>-0.2805527746366256, :d=>-0.38610782457055753}, {:a=>-1.0755947491636877, :b=>-3.3444934364546093, :c=>-0.8831542240800565, :d=>-1.098273173912794}, {:a=>-0.702526567253063, :b=>-2.8781582090663287, :c=>-0.4727792239783693, :d=>-0.6132845374289819}, {:a=>-1.8008047298115162, :b=>-4.251005912264395, :c=>-1.680885202792668, :d=>-2.041046148754971}, {:a=>0.10916563872651104, :b=>-1.8635429515918611, :c=>0.4200822025991621, :d=>0.44191533034446434}, {:a=>-0.4459257853662509, :b=>-2.5574072317078134, :c=>-0.19051836390287602, :d=>-0.2797035209761262}, {:a=>-0.039866439201515634, :b=>-2.0498330490018946, :c=>0.2561469168783328, :d=>0.24817362903802967}, {:a=>-1.0072306953245982, :b=>-3.2590383691557476, :c=>-0.807953764857058, :d=>-1.0093999039219776}, {:a=>1.555882512234456, :b=>-0.05514685970693023, :c=>2.0114707634579014, :d=>2.3226472659047928}, {:a=>0.554457207250625, :b=>-1.306928490936719, :c=>0.9099029279756876, :d=>1.0207943694258126}, {:a=>0.898564328238586, :b=>-0.8767945897017675, :c=>1.2884207610624447, :d=>1.468133626710162}, {:a=>-0.470641172424328, :b=>-2.58830146553041, :c=>-0.2177052896667609, :d=>-0.3118335241516264}, {:a=>1.1055340187098732, :b=>-0.6180824766126585, :c=>1.5160874205808608, :d=>1.7371942243228353}, {:a=>-0.4917247706093608, :b=>-2.614655963261701, :c=>-0.2408972476702969, :d=>-0.3392422017921691}, {:a=>0.23611962093490793, :b=>-1.7048504738313652, :c=>0.5597315830283988, :d=>0.6069555072153803}, {:a=>1.1569602901017195, :b=>-0.5537996373728507, :c=>1.5726563191118916, :d=>1.8040483771322355}, {:a=>0.10927228970332428, :b=>-1.8634096378708447, :c=>0.4201995186736567, :d=>0.44205397661432155}, {:a=>1.9120270742513108, :b=>0.39003384281413833, :c=>2.403229781676442, :d=>2.785635196526704}, {:a=>0.26718675525967034, :b=>-1.666016555925412, :c=>0.5939054307856374, :d=>0.6473427818375714}, {:a=>-0.603679540855504, :b=>-2.75459942606938, :c=>-0.36404749494105443, :d=>-0.48478340311215523}, {:a=>-0.7173755508712143, :b=>-2.8967194385890176, :c=>-0.48911310595833585, :d=>-0.6325882161325787}, {:a=>-0.4115852895621185, :b=>-2.514481611952648, :c=>-0.15274381851833035, :d=>-0.23506087643075407}, {:a=>-0.2655539642734381, :b=>-2.331942455341798, :c=>0.007890639299218072, :d=>-0.045220153555469544}, {:a=>0.36207583112906905, :b=>-1.5474052110886638, :c=>0.698283414241976, :d=>0.7706985804677897}, {:a=>0.07260692352551609, :b=>-1.909241345593105, :c=>0.3798676158780677, :d=>0.39438900058317095}, {:a=>2.294601286338053, :b=>0.868251607922566, :c=>2.824061414971858, :d=>3.282981672239469}, {:a=>1.227901742133528, :b=>-0.4651228223330899, :c=>1.650691916346881, :d=>1.8962722647735866}, {:a=>-0.11939351119054456, :b=>-2.149241888988181, :c=>0.16866713769040095, :d=>0.14478843545229206}, {:a=>-1.5311967395680477, :b=>-3.9139959244600595, :c=>-1.3843164135248525, :d=>-1.690555761438462}, {:a=>-0.9678141131374729, :b=>-3.2097676414218412, :c=>-0.7645955244512201, :d=>-0.9581583470787147}, {:a=>-0.21233586258178208, :b=>-2.2654198282272278, :c=>0.06643055116003968, :d=>0.023963378643683253}, {:a=>1.4430660897138992, :b=>-0.19616738785762622, :c=>1.8873726986852892, :d=>2.175985916628069}, {:a=>-0.5846075136244692, :b=>-2.7307593920305866, :c=>-0.34306826498691617, :d=>-0.45998976771180994}, {:a=>-1.3120295881114405, :b=>-3.6400369851393006, :c=>-1.1432325469225846, :d=>-1.4056384645448727}, {:a=>-0.8360324637849187, :b=>-3.0450405797311486, :c=>-0.6196357101634107, :d=>-0.7868422029203943}, {:a=>-0.9064279683047126, :b=>-3.1330349603808907, :c=>-0.697070765135184, :d=>-0.8783563587961265}, {:a=>-0.35694522488141733, :b=>-2.4461815311017716, :c=>-0.0926397473695591, :d=>-0.16402879234584256}, {:a=>-0.7669818048352193, :b=>-2.958727256044024, :c=>-0.5436799853187413, :d=>-0.6970763462857852}, {:a=>-2.1686388160078494, :b=>-4.710798520009812, :c=>-2.085502697608635, :d=>-2.5192304608102045}, {:a=>0.8078372415930545, :b=>-0.9902034480086819, :c=>1.18862096575236, :d=>1.350188414070971}, {:a=>0.9484004657789723, :b=>-0.8144994177762848, :c=>1.3432405123568696, :d=>1.532920605512664}, {:a=>-1.13880705354661, :b=>-3.4235088169332624, :c=>-0.952687758901271, :d=>-1.180449169610593}, {:a=>1.5550135191577708, :b=>-0.05623310105278656, :c=>2.010514871073548, :d=>2.321517574905102}, {:a=>-0.6504399668909011, :b=>-2.813049958613626, :c=>-0.41548396357999134, :d=>-0.5455719569581714}, {:a=>-0.48509789181185936, :b=>-2.606372364764824, :c=>-0.23360768099304535, :d=>-0.3306272593554172}, {:a=>-0.4428367470759932, :b=>-2.5535459338449913, :c=>-0.18712042178359256, :d=>-0.2756877711987911}, {:a=>-0.1942980298586309, :b=>-2.2428725373232887, :c=>0.08627216715550598, :d=>0.04741256118377979}, {:a=>0.6789464911389732, :b=>-1.1513168860762835, :c=>1.0468411402528706, :d=>1.1826304384806652}, {:a=>1.6809979061754046, :b=>0.10124738271925571, :c=>2.149097696792945, :d=>2.485297278028026}, {:a=>0.9288044327195865, :b=>-0.838994459100517, :c=>1.3216848759915452, :d=>1.5074457625354625}, {:a=>-0.30746364575482577, :b=>-2.3843295571935323, :c=>-0.03821001033030835, :d=>-0.0997027394812735}, {:a=>-0.23128715779012773, :b=>-2.2891089472376596, :c=>0.04558412643085946, :d=>-0.0006733051271660684}, {:a=>-0.7377864031130296, :b=>-2.9222330038912867, :c=>-0.5115650434243326, :d=>-0.6591223240469384}, {:a=>1.1137322356544292, :b=>-0.6078347054319635, :c=>1.5251054592198723, :d=>1.747851906350758}, {:a=>0.11301048325455115, :b=>-1.8587368959318111, :c=>0.4243115315800063, :d=>0.4469136282309165}, {:a=>-0.8712311142039423, :b=>-3.0890388927549277, :c=>-0.6583542256243367, :d=>-0.832600448465125}, {:a=>-0.8997356627108452, :b=>-3.1246695783885565, :c=>-0.6897092289819298, :d=>-0.8696563615240986}, {:a=>0.5758716687455154, :b=>-1.2801604140681058, :c=>0.933458835620067, :d=>1.0486331693691702}, {:a=>0.0742380746509537, :b=>-1.9072024066863078, :c=>0.38166188211604907, :d=>0.3965094970462398}, {:a=>0.12766299335320364, :b=>-1.8404212583084956, :c=>0.440429292688524, :d=>0.4659618913591647}, {:a=>-0.5202042502232714, :b=>-2.6502553127790893, :c=>-0.2722246752455986, :d=>-0.37626552529025287}, {:a=>-1.1973981215755285, :b=>-3.4967476519694105, :c=>-1.0171379337330815, :d=>-1.256617558048187}, {:a=>-2.0332598618952726, :b=>-4.541574827369091, :c=>-1.9365858480848, :d=>-2.343237820463855}, {:a=>-1.0444582546850154, :b=>-3.305572818356269, :c=>-0.848904080153517, :d=>-1.05779573109052}, {:a=>-1.1566484219646025, :b=>-3.445810527455753, :c=>-0.9723132641610628, :d=>-1.2036429485539832}, {:a=>-0.831399565152726, :b=>-3.039249456440907, :c=>-0.6145395216679985, :d=>-0.7808194346985438}, {:a=>-0.10515875115262373, :b=>-2.1314484389407795, :c=>0.18432537373211388, :d=>0.16329362350158913}, {:a=>1.2881120755874351, :b=>-0.38985990551570615, :c=>1.7169232831461787, :d=>1.9745456982636658}, {:a=>-0.3170041460464272, :b=>-2.396255182558034, :c=>-0.04870456065106993, :d=>-0.11210538986035534}, {:a=>1.3837123996924303, :b=>-0.2703595003844621, :c=>1.8220836396616735, :d=>2.0988261196001594}, {:a=>-0.044300072853561634, :b=>-2.055375091066952, :c=>0.25126991986108216, :d=>0.24240990529036988}, {:a=>2.722462888081966, :b=>1.4030786101024573, :c=>3.2947091768901626, :d=>3.8392017545065555}, {:a=>0.9675466038746107, :b=>-0.7905667451567366, :c=>1.3643012642620718, :d=>1.5578105850369939}, {:a=>-0.40980629299870774, :b=>-2.5122578662483845, :c=>-0.15078692229857854, :d=>-0.2327481808983201}, {:a=>3.097611729787717, :b=>1.8720146622346463, :c=>3.707372902766489, :d=>4.326895248724032}, {:a=>2.4888459712092224, :b=>1.1110574640115276, :c=>3.0377305683301445, :d=>3.535499762571989}, {:a=>-0.5382641695688056, :b=>-2.6728302119610072, :c=>-0.29209058652568626, :d=>-0.3997434204394474}, {:a=>-0.7989525066917109, :b=>-2.998690633364639, :c=>-0.5788477573608821, :d=>-0.7386382586992242}, {:a=>1.0758427883824344, :b=>-0.6551965145219572, :c=>1.483427067220678, :d=>1.6985956248971648}, {:a=>-1.0742151385475467, :b=>-3.3427689231844333, :c=>-0.8816366524023014, :d=>-1.0964796801118106}, {:a=>-0.4285084504823615, :b=>-2.535635563102952, :c=>-0.1713592955305977, :d=>-0.25706098562706997}, {:a=>-0.18451401808047332, :b=>-2.2306425226005917, :c=>0.09703458011147931, :d=>0.06013177649538465}, {:a=>-0.20071851345970165, :b=>-2.250898141824627, :c=>0.07920963519432817, :d=>0.03906593250238782}, {:a=>0.5564955014558647, :b=>-1.3043806231801693, :c=>0.9121450516014511, :d=>1.023444151892624}, {:a=>1.2847845270858993, :b=>-0.39401934114262605, :c=>1.7132629797944894, :d=>1.9702198852116692}, {:a=>1.2863279583428733, :b=>-0.39209005207140857, :c=>1.7149607541771608, :d=>1.9722263458457354}, {:a=>-1.228119868635667, :b=>-3.5351498357945834, :c=>-1.0509318554992337, :d=>-1.296555829226367}, {:a=>0.4825028843262796, :b=>-1.3968713945921505, :c=>0.8307531727589075, :d=>0.9272537496241635}, {:a=>-0.06722964745970622, :b=>-2.0840370593246327, :c=>0.22604738779432315, :d=>0.21260145830238192}, {:a=>0.407558735620837, :b=>-1.4905515804739538, :c=>0.7483146091829207, :d=>0.829826356307088}, {:a=>0.9219092586389366, :b=>-0.8476134267013293, :c=>1.3141001845028304, :d=>1.4984820362306177}, {:a=>1.349930275077061, :b=>-0.31258715615367394, :c=>1.7849233025847673, :d=>2.054909357600179}, {:a=>0.2998411022248434, :b=>-1.6251986222189458, :c=>0.6298252124473278, :d=>0.6897934328922963}, {:a=>0.36931824911242506, :b=>-1.5383521886094687, :c=>0.7062500740236676, :d=>0.7801137238461526}, {:a=>-0.4447596268627356, :b=>-2.5559495335784197, :c=>-0.18923558954900926, :d=>-0.2781875149215563}, {:a=>0.8116406923934797, :b=>-0.9854491345081504, :c=>1.1928047616328277, :d=>1.3551329001115238}, {:a=>0.7725443018960875, :b=>-1.0343196226298907, :c=>1.1497987320856964, :d=>1.304307592464914}, {:a=>-1.650602707869413, :b=>-4.0632533848367665, :c=>-1.5156629786563545, :d=>-1.8457835202302368}, {:a=>-0.9989938220027862, :b=>-3.2487422775034824, :c=>-0.7988932042030648, :d=>-0.998691968603622}, {:a=>1.1902599336061652, :b=>-0.5121750829922935, :c=>1.6092859269667819, :d=>1.8473379136880148}, {:a=>0.8881913040589242, :b=>-0.8897608699263448, :c=>1.2770104344648168, :d=>1.4546486952766016}, {:a=>-0.4120725613821512, :b=>-2.515090701727689, :c=>-0.15327981752036635, :d=>-0.23569432979679655}, {:a=>-0.5408271813508717, :b=>-2.6760339766885894, :c=>-0.29490989948595897, :d=>-0.40307533575613325}, {:a=>0.07990264238152864, :b=>-1.9001216970230892, :c=>0.3878929066196815, :d=>0.4038734350959872}, {:a=>0.7686472835591486, :b=>-1.0391908955510645, :c=>1.1455120119150635, :d=>1.2992414686268932}, {:a=>-1.4455082458170354, :b=>-3.806885307271294, :c=>-1.2900590703987391, :d=>-1.579160719562146}, {:a=>-0.3998693264595387, :b=>-2.4998366580744236, :c=>-0.13985625910549265, :d=>-0.2198301243974004}, {:a=>0.19987249792731057, :b=>-1.7501593775908617, :c=>0.5198597477200416, :d=>0.5598342473055038}, {:a=>-0.6653876952413575, :b=>-2.831734619051697, :c=>-0.4319264647654934, :d=>-0.5650040038137649}, {:a=>-0.8666605718603838, :b=>-3.08332571482548, :c=>-0.6533266290464224, :d=>-0.8266587434184989}, {:a=>0.5493897930170829, :b=>-1.3132627587286465, :c=>0.9043287723187912, :d=>1.0142067309222078}, {:a=>1.2569865379847867, :b=>-0.42876682751901685, :c=>1.6826851917832655, :d=>1.9340824993802228}, {:a=>1.4002320499955876, :b=>-0.24970993750551562, :c=>1.8402552549951465, :d=>2.1203016649942636}, {:a=>1.2313603222397702, :b=>-0.4607995972002874, :c=>1.6544963544637474, :d=>1.9007684189117013}, {:a=>-0.20962012433030888, :b=>-2.262025155412886, :c=>0.06941786323666019, :d=>0.027493838370598433}, {:a=>0.5389474986280327, :b=>-1.3263156267149592, :c=>0.892842248490836, :d=>1.0006317482164426}, {:a=>0.713252451434004, :b=>-1.1084344357074951, :c=>1.0845776965774043, :d=>1.2272281868642052}, {:a=>-1.960500090051165, :b=>-4.450625112563957, :c=>-1.8565500990562815, :d=>-2.2486501170665147}, {:a=>-0.2761033463202372, :b=>-2.3451291829002967, :c=>-0.0037136809522609338, :d=>-0.058934350216308384}, {:a=>0.34237732704338414, :b=>-1.5720283411957698, :c=>0.6766150597477225, :d=>0.7450905251563994}, {:a=>-1.0959759974548062, :b=>-3.369969996818508, :c=>-0.905573597200287, :d=>-1.124768796691248}, {:a=>1.4853226550457908, :b=>-0.14334668119276173, :c=>1.93385492055037, :d=>2.230919451559528}, {:a=>-1.0358631951992283, :b=>-3.2948289939990354, :c=>-0.8394495147191512, :d=>-1.0466221537589968}, {:a=>-0.11010198730526691, :b=>-2.1376274841315834, :c=>0.1788878139642064, :d=>0.156867416503153}, {:a=>-1.2226528813513893, :b=>-3.528316101689237, :c=>-1.0449181694865282, :d=>-1.289448745756806}, {:a=>-0.09633535488975682, :b=>-2.120419193612196, :c=>0.19403110962126746, :d=>0.1747640386433161}, {:a=>1.241264069032135, :b=>-0.44841991370983125, :c=>1.6653904759353486, :d=>1.9136432897417757}, {:a=>-2.7086860732012794, :b=>-5.385857591501599, :c=>-2.6795546805214077, :d=>-3.2212918951616634}, {:a=>-0.0497780795692198, :b=>-2.0622225994615246, :c=>0.2452441124738582, :d=>0.23528849656001424}, {:a=>0.886199976640063, :b=>-0.8922500291999214, :c=>1.2748199743040693, :d=>1.452059969632082}, {:a=>0.7505364007644343, :b=>-1.0618294990444572, :c=>1.1255900408408779, :d=>1.2756973209937645}, {:a=>0.8389640147203311, :b=>-0.9512949815995861, :c=>1.2228604161923642, :d=>1.3906532191364305}, {:a=>0.7586008690325685, :b=>-1.0517489137092895, :c=>1.1344609559358254, :d=>1.2861811297423391}, {:a=>1.0593558577195736, :b=>-0.675805177850533, :c=>1.4652914434915312, :d=>1.6771626150354457}, {:a=>0.6890077554438946, :b=>-1.1387403056951317, :c=>1.057908530988284, :d=>1.195710082077063}, {:a=>-0.09618641857801181, :b=>-2.120233023222515, :c=>0.19419493956418699, :d=>0.17495765584858464}, {:a=>0.6523534720134987, :b=>-1.1845581599831267, :c=>1.0175888192148486, :d=>1.1480595136175482}, {:a=>0.5256766037548788, :b=>-1.3429042453064015, :c=>0.8782442641303667, :d=>0.9833795848813425}, {:a=>0.0970212160003759, :b=>-1.87872347999953, :c=>0.40672333760041346, :d=>0.4261275808004886}, {:a=>-0.5204496588356755, :b=>-2.6505620735445943, :c=>-0.2724946247192431, :d=>-0.3765845564863782}, {:a=>2.359589445799726, :b=>0.9494868072496576, :c=>2.895548390379699, :d=>3.367466279539644}, {:a=>-0.2326341673023674, :b=>-2.290792709127959, :c=>0.044102415967395836, :d=>-0.0024244174930776463}, {:a=>-0.028790712659175346, :b=>-2.0359883908239693, :c=>0.2683302160749071, :d=>0.26257207354307205}, {:a=>1.8984086140615881, :b=>0.3730107675769849, :c=>2.388249475467747, :d=>2.7679311982800643}, {:a=>0.9496648634350946, :b=>-0.8129189207061318, :c=>1.3446313497786042, :d=>1.5345643224656231}, {:a=>1.570179424691156, :b=>-0.0372757191360551, :c=>2.0271973671602717, :d=>2.341233252098503}, {:a=>0.42276416172618136, :b=>-1.4715447978422733, :c=>0.7650405778987995, :d=>0.8495934102440357}, {:a=>0.8465246435248404, :b=>-0.9418441955939496, :c=>1.2311771078773244, :d=>1.4004820365822925}, {:a=>0.8382875619809339, :b=>-0.9521405475238327, :c=>1.2221163181790273, :d=>1.389773830575214}, {:a=>-0.9553192131948356, :b=>-3.1941490164935447, :c=>-0.7508511345143192, :d=>-0.9419149771532862}, {:a=>-0.02048408317464539, :b=>-2.025605103968307, :c=>0.27746750850789004, :d=>0.273370691872961}, {:a=>0.856747547134966, :b=>-0.9290655660812925, :c=>1.2424223018484628, :d=>1.413771811275456}, {:a=>0.8357153845576216, :b=>-0.9553557693029731, :c=>1.2192869230133838, :d=>1.3864299999249081}, {:a=>-1.2457384852038693, :b=>-3.5571731065048366, :c=>-1.0703123337242564, :d=>-1.3194600307650302}, {:a=>0.9208273966021208, :b=>-0.8489657542473492, :c=>1.312910136262333, :d=>1.4970756155827571}, {:a=>0.6241732138910299, :b=>-1.2197834826362128, :c=>0.986590535280133, :d=>1.1114251780583388}, {:a=>0.5831502708934703, :b=>-1.271062161383162, :c=>0.9414652979828173, :d=>1.0580953521615113}, {:a=>-0.06161143544330549, :b=>-2.077014294304132, :c=>0.23222742101236393, :d=>0.21990513392370287}, {:a=>1.1451247001366573, :b=>-0.5685941248291784, :c=>1.5596371701503233, :d=>1.7886621101776548}, {:a=>-0.2546410876490547, :b=>-2.3183013595613184, :c=>0.01989480358603979, :d=>-0.031033413943771126}, {:a=>-0.012504536491513325, :b=>-2.015630670614392, :c=>0.2862450098593353, :d=>0.28374410256103266}, {:a=>0.8478419340333189, :b=>-0.9401975824583515, :c=>1.2326261274366508, :d=>1.4021945142433145}, {:a=>-0.010470038040208287, :b=>-2.0130875475502603, :c=>0.28848295815577085, :d=>0.2863889505477292}, {:a=>-1.0443780453937173, :b=>-3.3054725567421466, :c=>-0.8488158499330891, :d=>-1.0576914590118325}, {:a=>0.23628561711814408, :b=>-1.7046429786023198, :c=>0.5599141788299584, :d=>0.6071713022535873}, {:a=>-0.3499162236198858, :b=>-2.437395279524857, :c=>-0.0849078459818744, :d=>-0.15489109070585155}, {:a=>0.30906320195598525, :b=>-1.6136709975550185, :c=>0.6399695221515838, :d=>0.7017821625427808}, {:a=>0.5933244779268521, :b=>-1.258344402591435, :c=>0.9526569257195372, :d=>1.0713218213049076}, {:a=>-1.4712523621437514, :b=>-3.839065452679689, :c=>-1.3183775983581267, :d=>-1.612628070786877}, {:a=>-0.9508007435742382, :b=>-3.1885009294677977, :c=>-0.745880817931662, :d=>-0.9360409666465097}, {:a=>0.4970014288903308, :b=>-1.3787482138870866, :c=>0.8467015717793638, :d=>0.94610185755743}, {:a=>1.1088695759615965, :b=>-0.6139130300480045, :c=>1.5197565335577563, :d=>1.7415304487500756}, {:a=>0.08183654591727167, :b=>-1.8977043176034105, :c=>0.3900202005089988, :d=>0.4063875096924532}, {:a=>1.7091868047114114, :b=>0.13648350588926395, :c=>2.1801054851825525, :d=>2.5219428461248348}, {:a=>1.8810322650402078, :b=>0.3512903313002598, :c=>2.3691354915442284, :d=>2.74534194455227}, {:a=>1.459329683393377, :b=>-0.17583789575827868, :c=>1.905262651732715, :d=>2.19712858841139}, {:a=>-0.04214464805584648, :b=>-2.052680810069808, :c=>0.25364088713856886, :d=>0.24521195752739955}, {:a=>-1.5208908163813122, :b=>-3.90111352047664, :c=>-1.3729798980194434, :d=>-1.6771580612957058}, {:a=>1.2183561505965084, :b=>-0.4770548117543647, :c=>1.6401917656561593, :d=>1.883862995775461}, {:a=>-0.09192775511600845, :b=>-2.1149096938950107, :c=>0.19887946937239068, :d=>0.180493918349189}, {:a=>-1.815100081829529, :b=>-4.268875102286911, :c=>-1.696610090012482, :d=>-2.059630106378388}, {:a=>0.11003824655089575, :b=>-1.8624521918113803, :c=>0.42104207120598536, :d=>0.4430497205161645}, {:a=>-1.585681644365353, :b=>-3.982102055456691, :c=>-1.4442498088018885, :d=>-1.761386137674959}, {:a=>-0.0486522057475287, :b=>-2.060815257184411, :c=>0.24648257367771842, :d=>0.23675213252821267}, {:a=>0.4711649724929812, :b=>-1.4110437843837735, :c=>0.8182814697422793, :d=>0.9125144642408756}, {:a=>1.0978238850971096, :b=>-0.6277201436286131, :c=>1.5076062736068208, :d=>1.7271710506262425}, {:a=>0.33824811736698307, :b=>-1.5771898532912711, :c=>0.6720729291036813, :d=>0.739722552577078}, {:a=>1.3537231666819154, :b=>-0.3078460416476059, :c=>1.7890954833501072, :d=>2.05984011668649}, {:a=>0.4278824162920299, :b=>-1.4651469796349628, :c=>0.7706706579212329, :d=>0.8562471411796388}, {:a=>0.8638870979919294, :b=>-0.9201411275100884, :c=>1.2502758077911225, :d=>1.4230532273895082}, {:a=>0.7312619802804773, :b=>-1.0859225246494035, :c=>1.104388178308525, :d=>1.2506405743646205}, {:a=>0.20398274845881464, :b=>-1.7450215644264817, :c=>0.5243810233046962, :d=>0.565177572996459}, {:a=>-0.23300442070253208, :b=>-2.291255525878165, :c=>0.043695137227214687, :d=>-0.002905746913291707}, {:a=>1.166922303106209, :b=>-0.5413471211172387, :c=>1.5836145334168301, :d=>1.8169989940380717}, {:a=>0.45123915370601975, :b=>-1.4359510578674755, :c=>0.7963630690766217, :d=>0.8866108998178257}, {:a=>1.152049351269134, :b=>-0.5599383109135825, :c=>1.5672542863960477, :d=>1.7976641566498743}, {:a=>0.10606793470307314, :b=>-1.8674150816211585, :c=>0.41667472817338047, :d=>0.43788831511399506}, {:a=>-1.4351339661269342, :b=>-3.793917457658668, :c=>-1.2786473627396278, :d=>-1.5656741559650145}, {:a=>-0.30191811468594565, :b=>-2.377397643357432, :c=>-0.032109926154540225, :d=>-0.09249354909172935}, {:a=>1.1944216486497679, :b=>-0.5069729391877902, :c=>1.6138638135147447, :d=>1.8527481432446984}, {:a=>-1.186453273506793, :b=>-3.483066591883491, :c=>-1.0050986008574723, :d=>-1.242389255558831}, {:a=>0.2599116878897214, :b=>-1.6751103901378483, :c=>0.5859028566786936, :d=>0.6378851942566378}, {:a=>0.7388343658464204, :b=>-1.0764570426919746, :c=>1.1127178024310624, :d=>1.2604846756003465}, {:a=>0.032945466884841866, :b=>-1.9588181663939477, :c=>0.33624001357332606, :d=>0.3428291069502944}, {:a=>1.109807689632252, :b=>-0.6127403879596851, :c=>1.5207884585954774, :d=>1.7427499965219277}, {:a=>1.1241404939406652, :b=>-0.5948243825741686, :c=>1.5365545433347318, :d=>1.7613826421228649}, {:a=>-0.299765130189921, :b=>-2.3747064127374014, :c=>-0.02974164320891315, :d=>-0.08969466924689734}, {:a=>-1.2521147958208105, :b=>-3.565143494776013, :c=>-1.0773262754028916, :d=>-1.3277492345670536}, {:a=>0.4968608356912327, :b=>-1.3789239553859591, :c=>0.8465469192603561, :d=>0.9459190863986024}, {:a=>-0.7282861259019362, :b=>-2.9103576573774204, :c=>-0.50111473849213, :d=>-0.6467719636725171}, {:a=>-0.07978773381292763, :b=>-2.0997346672661594, :c=>0.21223349280577958, :d=>0.19627594604319407}, {:a=>0.9833384152695931, :b=>-0.7708269809130086, :c=>1.3816722567965525, :d=>1.5783399398504712}, {:a=>0.2081512104486564, :b=>-1.7398109869391796, :c=>0.528966331493522, :d=>0.5705965735832533}, {:a=>-1.3553447421025364, :b=>-3.6941809276281705, :c=>-1.1908792163127901, :d=>-1.4619481647332973}, {:a=>0.8496890445141378, :b=>-0.9378886943573277, :c=>1.2346579489655516, :d=>1.4045957578683792}, {:a=>0.7044999102654744, :b=>-1.119375112168157, :c=>1.0749499012920218, :d=>1.2158498833451168}, {:a=>-0.5519824536967599, :b=>-2.6899780671209497, :c=>-0.3071806990664359, :d=>-0.4175771898057879}, {:a=>-0.34886299371023816, :b=>-2.4360787421377976, :c=>-0.083749293081262, :d=>-0.1535218918233096}, {:a=>0.030925113970473275, :b=>-1.9613436075369084, :c=>0.3340176253675206, :d=>0.3402026481616153}, {:a=>-0.7500533964223599, :b=>-2.93756674552795, :c=>-0.525058736064596, :d=>-0.675069415349068}, {:a=>-1.9165084417515654, :b=>-4.395635552189457, :c=>-1.808159285926722, :d=>-2.1914609742770352}, {:a=>-0.4297426203614535, :b=>-2.537178275451817, :c=>-0.17271688239759891, :d=>-0.2586654064698896}, {:a=>-0.1453285895011513, :b=>-2.181660736876439, :c=>0.14013855154873356, :d=>0.11107283364850329}, {:a=>-1.0357224620210717, :b=>-3.2946530775263394, :c=>-0.839294708223179, :d=>-1.0464392006273933}, {:a=>-0.8015059324293466, :b=>-3.0018824155366834, :c=>-0.5816565256722814, :d=>-0.7419577121581507}, {:a=>0.8850191366317446, :b=>-0.8937260792103194, :c=>1.273521050294919, :d=>1.450524877621268}, {:a=>1.1234974780154692, :b=>-0.5956281524806637, :c=>1.5358472258170162, :d=>1.76054672142011}, {:a=>-0.21227172135730057, :b=>-2.2653396516966255, :c=>0.06650110650696933, :d=>0.024046762235509223}, {:a=>2.745661596509765, :b=>1.432076995637206, :c=>3.320227756160741, :d=>3.8693600754626942}, {:a=>0.04202982481866343, :b=>-1.9474627189766707, :c=>0.34623280730052974, :d=>0.35463877226426244}, {:a=>-0.8304270335241497, :b=>-3.038033791905187, :c=>-0.6134697368765647, :d=>-0.7795551435813945}, {:a=>0.2748643741359504, :b=>-1.6564195323300621, :c=>0.6023508115495455, :d=>0.6573236863767355}, {:a=>-1.3765447558113693, :b=>-3.7206809447642115, :c=>-1.2141992313925063, :d=>-1.48950818255478}, {:a=>-0.4172540475220286, :b=>-2.521567559402536, :c=>-0.1589794522742315, :d=>-0.2424302617786372}, {:a=>0.7749251226922936, :b=>-1.031343596634633, :c=>1.1524176349615232, :d=>1.307402659499982}, {:a=>-0.17626608864482202, :b=>-2.2203326108060275, :c=>0.10610730249069575, :d=>0.07085408476173136}, {:a=>0.2745303344886768, :b=>-1.656837081889154, :c=>0.6019833679375445, :d=>0.6568894348352798}, {:a=>-0.40826379986065753, :b=>-2.510329749825822, :c=>-0.14909017984672335, :d=>-0.2307429398188548}, {:a=>-1.2429086226704809, :b=>-3.553635778338101, :c=>-1.067199484937529, :d=>-1.315781209471625}, {:a=>-0.8526318993686162, :b=>-3.06578987421077, :c=>-0.6378950893054778, :d=>-0.8084214691792011}, {:a=>0.21373291007319828, :b=>-1.7328338624085022, :c=>0.5351062010805181, :d=>0.5778527830951578}, {:a=>0.37438089403177144, :b=>-1.5320238824602856, :c=>0.7118189834349486, :d=>0.7866951622413029}, {:a=>0.29780230578113054, :b=>-1.6277471177735867, :c=>0.6275825363592435, :d=>0.6871429975154697}, {:a=>1.7614272597919929, :b=>0.20178407473999105, :c=>2.2375699857711924, :d=>2.589855437729591}, {:a=>0.5307345367740394, :b=>-1.336581829032451, :c=>0.8838079904514433, :d=>0.9899548978062511}, {:a=>1.508142009301154, :b=>-0.11482248837355757, :c=>1.9589562102312694, :d=>2.2605846120915003}, {:a=>-0.11934723291131752, :b=>-2.1491840411391467, :c=>0.1687180437975507, :d=>0.1448485972152872}, {:a=>-0.44419087257111256, :b=>-2.555238590713891, :c=>-0.18860995982822387, :d=>-0.27744813434244636}, {:a=>-2.2451616758824287, :b=>-4.806452094853036, :c=>-2.169677843470672, :d=>-2.6187101786471576}, {:a=>0.13201128410206092, :b=>-1.8349858948724238, :c=>0.445212412512267, :d=>0.4716146693326792}, {:a=>0.6635906694616611, :b=>-1.1705116631729235, :c=>1.0299497364078274, :d=>1.1626678703001594}, {:a=>0.7793068629050577, :b=>-1.025866421368678, :c=>1.1572375491955635, :d=>1.3130989217765752}, {:a=>0.8033846143150014, :b=>-0.9957692321062483, :c=>1.1837230757465016, :d=>1.3443999986095019}, {:a=>0.09322266217927742, :b=>-1.8834716722759033, :c=>0.4025449283972052, :d=>0.42118946083306064}, {:a=>0.7388857674841848, :b=>-1.076392790644769, :c=>1.1127743442326032, :d=>1.2605514977294403}, {:a=>0.05529917570368865, :b=>-1.9308760303703891, :c=>0.3608290932740575, :d=>0.37188892841479526}, {:a=>-2.4674963793872635, :b=>-5.084370474234079, :c=>-2.4142460173259903, :d=>-2.9077452932034427}, {:a=>0.31327215248602236, :b=>-1.6084098093924721, :c=>0.6445993677346247, :d=>0.707253798231829}, {:a=>-0.26147426153318876, :b=>-2.326842826916486, :c=>0.012378312313492346, :d=>-0.03991653999314543}, {:a=>1.173394072355661, :b=>-0.5332574095554237, :c=>1.5907334795912274, :d=>1.8254122940623594}, {:a=>0.400037463208295, :b=>-1.4999531709896314, :c=>0.7400412095291244, :d=>0.8200487021707834}, {:a=>0.6256522246784137, :b=>-1.217934719151983, :c=>0.9882174471462553, :d=>1.113347892081938}, {:a=>-0.1741558669996395, :b=>-2.2176948337495492, :c=>0.10842854630039653, :d=>0.07359737290046864}, {:a=>-0.8786870780953177, :b=>-3.098358847619147, :c=>-0.6665557859048494, :d=>-0.8422932015239128}, {:a=>0.19867000232991752, :b=>-1.7516624970876031, :c=>0.5185370025629092, :d=>0.5582710030288928}, {:a=>0.3544873821196076, :b=>-1.5568907723504906, :c=>0.6899361203315684, :d=>0.7608335967554899}, {:a=>-0.6501165409495906, :b=>-2.812645676186988, :c=>-0.41512819504454973, :d=>-0.5451515032344678}, {:a=>1.382022357706737, :b=>-0.27247205286657894, :c=>1.8202245934774108, :d=>2.096629065018758}, {:a=>-0.8840643284446316, :b=>-3.1050804105557894, :c=>-0.6724707612890948, :d=>-0.8492836269780211}, {:a=>-0.7685194187667759, :b=>-2.9606492734584697, :c=>-0.5453713606434536, :d=>-0.6990752443968087}, {:a=>-0.6665931931475716, :b=>-2.8332414914344644, :c=>-0.4332525124623288, :d=>-0.5665711510918432}, {:a=>0.08552526379571783, :b=>-1.8930934202553527, :c=>0.3940777901752896, :d=>0.4111828429344332}, {:a=>0.3842092821121978, :b=>-1.519738397359753, :c=>0.7226302103234177, :d=>0.7994720667458571}, {:a=>1.6387070487269368, :b=>0.04838381090867072, :c=>2.1025777535996304, :d=>2.430319163345018}, {:a=>1.096159835038194, :b=>-0.6298002062022576, :c=>1.5057758185420136, :d=>1.7250077855496524}, {:a=>1.9430752808916196, :b=>0.42884410111452453, :c=>2.4373828089807814, :d=>2.8259978651591053}, {:a=>1.2416814429251632, :b=>-0.447898196343546, :c=>1.6658495872176797, :d=>1.9141858758027124}, {:a=>-0.4155664292394123, :b=>-2.519458036549265, :c=>-0.15712307216335358, :d=>-0.24023635801123605}, {:a=>-0.6921315411805349, :b=>-2.8651644264756686, :c=>-0.4613446952985884, :d=>-0.5997710035346955}, {:a=>-0.7293571065737786, :b=>-2.9116963832172233, :c=>-0.5022928172311565, :d=>-0.6481642385459123}, {:a=>-0.4461378447793573, :b=>-2.5576723059741964, :c=>-0.1907516292572931, :d=>-0.2799791982131646}, {:a=>0.3087291003683913, :b=>-1.614088624539511, :c=>0.6396020104052305, :d=>0.7013478304789087}, {:a=>-0.2434123646725531, :b=>-2.3042654558406914, :c=>0.032246398860191594, :d=>-0.016436074074319018}, {:a=>-2.0060801618836637, :b=>-4.507600202354579, :c=>-1.9066881780720302, :d=>-2.307904210448763}, {:a=>0.9309523161307054, :b=>-0.8363096048366183, :c=>1.324047547743776, :d=>1.5102380109699172}, {:a=>-2.3310928613113755, :b=>-4.913866076639219, :c=>-2.2642021474425134, :d=>-2.7304207197047883}, {:a=>1.1864523956880069, :b=>-0.5169345053899914, :c=>1.6050976352568076, :d=>1.842388114394409}, {:a=>1.70689126613845, :b=>0.1336140826730623, :c=>2.177580392752295, :d=>2.518958645979985}, {:a=>1.2270014530719666, :b=>-0.46624818366004184, :c=>1.6497015983791634, :d=>1.8951018889935567}, {:a=>-1.962073234373215, :b=>-4.452591542966519, :c=>-1.8582805578105368, :d=>-2.25069520468518}, {:a=>-0.4964303775250539, :b=>-2.6205379719063173, :c=>-0.24607341527755938, :d=>-0.34535949078257017}, {:a=>0.3108606432818832, :b=>-1.611424195897646, :c=>0.6419467076100716, :d=>0.7041188362664481}, {:a=>1.0929185589418837, :b=>-0.6338518013226455, :c=>1.5022104148360722, :d=>1.7207941266244489}, {:a=>0.04462429323906318, :b=>-1.944219633451171, :c=>0.34908672256296946, :d=>0.35801158121078214}, {:a=>-1.0972414027298483, :b=>-3.3715517534123105, :c=>-0.9069655430028332, :d=>-1.1264138235488028}, {:a=>1.1691554283506589, :b=>-0.5385557145616764, :c=>1.5860709711857248, :d=>1.8199020568558566}, {:a=>0.4704266214121029, :b=>-1.4119667232348714, :c=>0.8174692835533133, :d=>0.9115546078357337}, {:a=>0.6093563238475397, :b=>-1.2383045951905753, :c=>0.9702919562322936, :d=>1.0921632210018015}, {:a=>0.3416428906870946, :b=>-1.5729463866411317, :c=>0.6758071797558041, :d=>0.744135757893223}, {:a=>-0.3839568347197113, :b=>-2.479946043399639, :c=>-0.12235251819168247, :d=>-0.19914388513562475}, {:a=>1.1330356028948119, :b=>-0.5837054963814852, :c=>1.546339163184293, :d=>1.7729462837632555}, {:a=>-0.3364789104535601, :b=>-2.42059863806695, :c=>-0.07012680149891615, :d=>-0.13742258358962817}, {:a=>0.44845968554083926, :b=>-1.4394253930739511, :c=>0.7933056540949233, :d=>0.882997591203091}, {:a=>1.1329796137273755, :b=>-0.5837754828407806, :c=>1.5462775751001132, :d=>1.7728734978455882}, {:a=>-1.0393534738892163, :b=>-3.2991918423615205, :c=>-0.843288821278138, :d=>-1.0511595160559812}, {:a=>-0.5644166012919226, :b=>-2.705520751614903, :c=>-0.3208582614211149, :d=>-0.43374158167949944}, {:a=>0.7817951598197224, :b=>-1.0227560502253472, :c=>1.1599746758016947, :d=>1.3163337077656392}, {:a=>-0.011243028486474592, :b=>-2.0140537856080933, :c=>0.2876326686648779, :d=>0.285384062967583}, {:a=>0.10546969663227038, :b=>-1.868162879209662, :c=>0.4160166662954974, :d=>0.4371106056219515}, {:a=>-1.1520853867314975, :b=>-3.440106733414372, :c=>-0.9672939254046473, :d=>-1.1977110027509468}, {:a=>-0.3415724467416819, :b=>-2.4269655584271024, :c=>-0.07572969141585012, :d=>-0.1440441807641865}, {:a=>-0.5260924141903154, :b=>-2.657615517737894, :c=>-0.27870165560934695, :d=>-0.3839201384474101}, {:a=>-0.5338812345432992, :b=>-2.667351543179124, :c=>-0.28726935799762915, :d=>-0.394045604906289}, {:a=>0.9021878085437127, :b=>-0.8722652393203592, :c=>1.292406589398084, :d=>1.4728441511068266}, {:a=>-0.6323419758514042, :b=>-2.7904274698142553, :c=>-0.39557617343654466, :d=>-0.5220445686068254}, {:a=>-0.5780032819858517, :b=>-2.7225041024823144, :c=>-0.335803610184437, :d=>-0.4514042665816073}, {:a=>-1.241331762226887, :b=>-3.551664702783609, :c=>-1.0654649384495756, :d=>-1.313731290894953}, {:a=>-0.19782766809645053, :b=>-2.247284585120563, :c=>0.08238956509390438, :d=>0.04282403147461428}, {:a=>0.7537480676470947, :b=>-1.0578149154411318, :c=>1.1291228744118043, :d=>1.279872487941223}, {:a=>-0.8446051534542508, :b=>-3.055756441817813, :c=>-0.6290656687996761, :d=>-0.797986699490526}, {:a=>1.092251228535051, :b=>-0.6346859643311864, :c=>1.5014763513885563, :d=>1.7199265970955664}, {:a=>-1.3594554470587075, :b=>-3.6993193088233842, :c=>-1.1954009917645783, :d=>-1.4672920811763197}, {:a=>1.2524826735307304, :b=>-0.434396658086587, :c=>1.6777309408838037, :d=>1.9282274755899496}, {:a=>-0.10270856051216254, :b=>-2.1283857006402034, :c=>0.1870205834366212, :d=>0.16647887133418868}, {:a=>-1.100372201948689, :b=>-3.3754652524358613, :c=>-0.9104094221435579, :d=>-1.1304838625332958}, {:a=>-1.9118574508225255, :b=>-4.389821813528156, :c=>-1.8030431959047781, :d=>-2.1854146860692834}, {:a=>1.397451570586069, :b=>-0.25318553676741384, :c=>1.8371967276446761, :d=>2.1166870417618897}, {:a=>-0.2709816003690105, :b=>-2.338727000461263, :c=>0.0019202395940884354, :d=>-0.05227608047971366}, {:a=>0.4956843814306268, :b=>-1.3803945232117165, :c=>0.8452528195736895, :d=>0.9443896958598148}, {:a=>-0.012114579304004754, :b=>-2.015143224130006, :c=>0.28667396276559476, :d=>0.2842510469047938}, {:a=>-1.1264735640963677, :b=>-3.40809195512046, :c=>-0.9391209205060045, :d=>-1.164415633325278}, {:a=>-0.6360367363865952, :b=>-2.795045920483244, :c=>-0.3996404100252548, :d=>-0.5268477573025738}, {:a=>0.4207937346861719, :b=>-1.474007831642285, :c=>0.7628731081547891, :d=>0.8470318550920235}, {:a=>-1.3280540830695275, :b=>-3.660067603836909, :c=>-1.1608594913764805, :d=>-1.4264703079903858}, {:a=>-0.6966998792052306, :b=>-2.870874849006538, :c=>-0.46636986712575373, :d=>-0.6057098429667997}, {:a=>-0.2906572757856662, :b=>-2.3633215947320827, :c=>-0.019723003364232827, :d=>-0.07785445852136608}, {:a=>-1.0333378579835921, :b=>-3.2916723224794904, :c=>-0.8366716437819515, :d=>-1.0433392153786698}, {:a=>0.14922330248361837, :b=>-1.813470871895477, :c=>0.4641456327319802, :d=>0.4939902932287039}, {:a=>1.5798448929591684, :b=>-0.025193883801039485, :c=>2.0378293822550853, :d=>2.353798360846919}, {:a=>-0.8677495818368782, :b=>-3.084686977296098, :c=>-0.6545245400205661, :d=>-0.8280744563879416}, {:a=>0.8115954803353607, :b=>-0.9855056495807992, :c=>1.1927550283688968, :d=>1.355074124435969}, {:a=>-1.4640415758876688, :b=>-3.8300519698595856, :c=>-1.3104457334764357, :d=>-1.6032540486539695}, {:a=>-1.8493791980182916, :b=>-4.311723997522865, :c=>-1.7343171178201209, :d=>-2.104192957423779}, {:a=>-0.29472296222531674, :b=>-2.368403702781646, :c=>-0.024195258447848478, :d=>-0.08313985089291182}, {:a=>-0.1909412093900391, :b=>-2.238676511737549, :c=>0.08996466967095695, :d=>0.05177642779294914}, {:a=>0.25633998656993456, :b=>-1.6795750167875818, :c=>0.5819739852269281, :d=>0.633241982540915}, {:a=>0.7563114763601466, :b=>-1.0546106545498168, :c=>1.1319426239961614, :d=>1.2832049192681907}, {:a=>-0.18622721485794655, :b=>-2.232784018572433, :c=>0.09515006365625878, :d=>0.05790462068466948}, {:a=>0.45846263451194186, :b=>-1.4269217068600728, :c=>0.8043088979631361, :d=>0.8960014248655244}, {:a=>-0.0065268538577212916, :b=>-2.008158567322152, :c=>0.2928204607565066, :d=>0.2915150899849623}, {:a=>-1.0314202917787691, :b=>-3.289275364723461, :c=>-0.8345623209566462, :d=>-1.0408463793123999}, {:a=>-0.4835866389946834, :b=>-2.604483298743354, :c=>-0.23194530289415177, :d=>-0.3286626306930885}, {:a=>1.0655512090001482, :b=>-0.6680609887498148, :c=>1.472106329900163, :d=>1.6852165717001928}, {:a=>-0.8772206914276716, :b=>-3.0965258642845894, :c=>-0.6649427605704388, :d=>-0.8403868988559731}, {:a=>1.043395311380272, :b=>-0.6957558607746599, :c=>1.4477348425182994, :d=>1.6564139047943538}, {:a=>-0.6759189344472925, :b=>-2.8448986680591153, :c=>-0.44351082789202173, :d=>-0.5786946147814802}, {:a=>1.3275180308284533, :b=>-0.3406024614644334, :c=>1.7602698339112988, :d=>2.025773440076989}, {:a=>1.2577859520013017, :b=>-0.427767559998373, :c=>1.683564547201432, :d=>1.9351217376016923}, {:a=>0.5779890194745527, :b=>-1.2775137256568092, :c=>0.935787921422008, :d=>1.0513857253169185}, {:a=>0.8607756444064727, :b=>-0.9240304444919092, :c=>1.24685320884712, :d=>1.4190083377284146}, {:a=>0.043342160485870924, :b=>-1.9458222993926613, :c=>0.347676376534458, :d=>0.3563448086316322}, {:a=>0.4688607497993912, :b=>-1.4139240627507612, :c=>0.8157468247793302, :d=>0.9095189747392085}, {:a=>-0.2202213113398223, :b=>-2.275276639174778, :c=>0.057756557526195434, :d=>0.013712295258230978}, {:a=>1.3942890497879525, :b=>-0.25713868776505944, :c=>1.833717954766748, :d=>2.112575764724338}, {:a=>0.2317676836150066, :b=>-1.7102903954812418, :c=>0.5549444519765072, :d=>0.6012979886995086}, {:a=>0.19680554156725227, :b=>-1.7539930730409345, :c=>0.5164860957239775, :d=>0.5558472040374279}, {:a=>0.4038394463936925, :b=>-1.4952006920078844, :c=>0.7442233910330618, :d=>0.8249912803118002}, {:a=>0.8171428783700818, :b=>-0.9785714020373979, :c=>1.1988571662070902, :d=>1.3622857418811065}, {:a=>-2.412591816506791, :b=>-5.0157397706334885, :c=>-2.3538509981574705, :d=>-2.8363693614588286}, {:a=>-0.4910167082289185, :b=>-2.613770885286148, :c=>-0.24011837905181038, :d=>-0.3383217206975941}, {:a=>0.6285274281061802, :b=>-1.2143407148672747, :c=>0.9913801709167982, :d=>1.1170856565380343}, {:a=>-0.7986342801578682, :b=>-2.998292850197335, :c=>-0.5784977081736551, :d=>-0.7382245642052288}, {:a=>1.1528063508412434, :b=>-0.5589920614484458, :c=>1.5680869859253679, :d=>1.7986482560936166}, {:a=>1.5008791214609083, :b=>-0.12390109817386463, :c=>1.9509670336069993, :d=>2.251142857899181}, {:a=>0.3577502117071862, :b=>-1.5528122353660172, :c=>0.6935252328779048, :d=>0.765075275219342}, {:a=>0.7248662758857182, :b=>-1.0939171551428524, :c=>1.09735290347429, :d=>1.2423261586514336}, {:a=>0.7116516837344513, :b=>-1.110435395331936, :c=>1.0828168521078965, :d=>1.2251471888547867}, {:a=>-0.012183836981048813, :b=>-2.015229796226311, :c=>0.2865977793208463, :d=>0.28416101192463655}, {:a=>0.6314567674156799, :b=>-1.2106790407304002, :c=>0.9946024441572479, :d=>1.1208937976403839}, {:a=>1.1194703912340005, :b=>-0.6006620109574994, :c=>1.5314174303574006, :d=>1.7553115086042008}, {:a=>-0.630564772499829, :b=>-2.788205965624786, :c=>-0.393621249749812, :d=>-0.5197342042497777}, {:a=>-0.23754691729480276, :b=>-2.2969336466185033, :c=>0.03869839097571692, :d=>-0.00881099248324363}, {:a=>-0.5693629312876923, :b=>-2.7117036641096153, :c=>-0.3262992244164616, :d=>-0.4401718106740001}, {:a=>-0.840681324680083, :b=>-3.0508516558501038, :c=>-0.6247494571480914, :d=>-0.7928857220841079}, {:a=>-0.4173833504313978, :b=>-2.521729188039247, :c=>-0.15912168547453764, :d=>-0.24259835556081716}, {:a=>-1.9250198551351967, :b=>-4.4062748189189955, :c=>-1.8175218406487164, :d=>-2.202525811675756}, {:a=>-0.36846452962578435, :b=>-2.4605806620322306, :c=>-0.10531098258836286, :d=>-0.17900388851351967}, {:a=>2.419033861229263, :b=>1.0237923265365785, :c=>2.960937247352189, :d=>3.4447440195980414}, {:a=>0.7899887180367215, :b=>-1.012514102454098, :c=>1.1689875898403939, :d=>1.3269853334477382}, {:a=>-0.02033273866838569, :b=>-2.025415923335482, :c=>0.27763398746477574, :d=>0.2735674397310986}, {:a=>0.40484398597079424, :b=>-1.4939450175365072, :c=>0.7453283845678738, :d=>0.8262971817620326}, {:a=>-0.35847437392778925, :b=>-2.4480929674097367, :c=>-0.09432181132056822, :d=>-0.16601668610612602}, {:a=>-0.30575966813626987, :b=>-2.3821995851703375, :c=>-0.03633563494989689, :d=>-0.09748756857715085}, {:a=>-1.7247029979745996, :b=>-4.1558787474682495, :c=>-1.5971732977720596, :d=>-1.9421138973669796}, {:a=>-0.13068968134442813, :b=>-2.1633621016805353, :c=>0.15624135052112903, :d=>0.13010341425224342}, {:a=>0.25835611697560446, :b=>-1.6770548537804943, :c=>0.5841917286731649, :d=>0.6358629520682858}, {:a=>1.506346777146284, :b=>-0.11706652856714506, :c=>1.9569814548609126, :d=>2.258250810290169}, {:a=>-1.615172620767542, :b=>-4.018965775959428, :c=>-1.4766898828442965, :d=>-1.799724406997805}, {:a=>-0.19096165590851547, :b=>-2.2387020698856444, :c=>0.08994217850063296, :d=>0.05174984731892987}, {:a=>-0.9087987236480708, :b=>-3.1359984045600884, :c=>-0.699678596012878, :d=>-0.8814383407424919}, {:a=>0.6318699300500578, :b=>-1.210162587437428, :c=>0.9950569230550637, :d=>1.1214309090650751}, {:a=>0.16406856435067504, :b=>-1.7949142945616563, :c=>0.48047542078574257, :d=>0.5132891336558776}, {:a=>1.0847533478887466, :b=>-0.6440583151390669, :c=>1.4932286826776213, :d=>1.7101793522553705}, {:a=>-0.4451941107399844, :b=>-2.5564926384249804, :c=>-0.18971352181398288, :d=>-0.27875234396197973}, {:a=>1.7291902071035663, :b=>0.16148775887945765, :c=>2.202109227813923, :d=>2.547947269234636}, {:a=>0.21324684273700462, :b=>-1.7334414465787442, :c=>0.5345715270107051, :d=>0.577220895558106}, {:a=>-0.27898175997845687, :b=>-2.3487271999730712, :c=>-0.006879935976302598, :d=>-0.06267628797199393}, {:a=>0.6740914619605133, :b=>-1.1573856725493585, :c=>1.0415006081565648, :d=>1.1763189005486674}, {:a=>0.6426170981039375, :b=>-1.1967286273700781, :c=>1.0068788079143314, :d=>1.1354022275351188}, {:a=>-0.6712126295876893, :b=>-2.8390157869846115, :c=>-0.4383338925464583, :d=>-0.5725764184639961}, {:a=>-0.30080890135168115, :b=>-2.3760111266896016, :c=>-0.030889791486849283, :d=>-0.09105157175718553}, {:a=>0.36145428335692664, :b=>-1.5481821458038416, :c=>0.6975997116926194, :d=>0.7698905683640047}, {:a=>-1.4911934400325306, :b=>-3.8639918000406634, :c=>-1.3403127840357838, :d=>-1.6385514720422898}, {:a=>-0.15281245843097685, :b=>-2.191015573038721, :c=>0.13190629572592544, :d=>0.10134380403973009}, {:a=>-2.379787697802318, :b=>-4.974734622252898, :c=>-2.3177664675825502, :d=>-2.793724007143014}, {:a=>1.9040886923103661, :b=>0.38011086538795746, :c=>2.3944975615414026, :d=>2.775315300003476}, {:a=>-0.11414323888032808, :b=>-2.14267904860041, :c=>0.17444243723163907, :d=>0.15161378945557347}, {:a=>-0.9216820013244057, :b=>-3.152102501655507, :c=>-0.7138502014568464, :d=>-0.8981866017217275}, {:a=>0.6341213703628914, :b=>-1.2073482870463859, :c=>0.9975335073991807, :d=>1.124357781471759}, {:a=>-0.13612215433931046, :b=>-2.170152692924138, :c=>0.15026563022675846, :d=>0.12304119935889637}, {:a=>2.5883059515386613, :b=>1.2353824394233266, :c=>3.1471365466925274, :d=>3.6647977370002596}, {:a=>-0.22444528778855533, :b=>-2.280556609735694, :c=>0.05311018343258911, :d=>0.008221125874878055}, {:a=>1.3713022558050678, :b=>-0.28587218024366523, :c=>1.8084324813855748, :d=>2.082692932546588}, {:a=>-0.39241359901301065, :b=>-2.4905169987662634, :c=>-0.13165495891431178, :d=>-0.21013767871691386}, {:a=>-1.737169139354164, :b=>-4.171461424192705, :c=>-1.6108860532895803, :d=>-1.9583198811604132}, {:a=>-0.4951495087032576, :b=>-2.618936885879072, :c=>-0.24466445957358335, :d=>-0.34369436131423486}, {:a=>0.4650279282324337, :b=>-1.4187150897094578, :c=>0.811530721055677, :d=>0.9045363067021639}, {:a=>-0.9527738734093851, :b=>-3.1909673417617315, :c=>-0.7480512607503236, :d=>-0.9386060354322006}, {:a=>-0.5887575110560849, :b=>-2.735946888820106, :c=>-0.3476332621616934, :d=>-0.4653847643729104}, {:a=>0.4902544743883372, :b=>-1.3871819070145786, :c=>0.8392799218271709, :d=>0.9373308167048384}, {:a=>0.254759861714253, :b=>-1.6815501728571838, :c=>0.5802358478856784, :d=>0.6311878202285289}, {:a=>3.055976250497561, :b=>1.8199703131219511, :c=>3.6615738755473175, :d=>4.27276912564683}, {:a=>0.6755634073210355, :b=>-1.1555457408487055, :c=>1.0431197480531391, :d=>1.178232429517346}, {:a=>-2.064098535586659, :b=>-4.580123169483324, :c=>-1.9705083891453252, :d=>-2.383328096262657}, {:a=>0.9324181521639844, :b=>-0.8344773097950196, :c=>1.325659967380383, :d=>1.5121435978131799}, {:a=>1.6731715025899527, :b=>0.09146437823744069, :c=>2.140488652848948, :d=>2.4751229533669385}, {:a=>-0.6312892014253998, :b=>-2.7891115017817496, :c=>-0.3944181215679398, :d=>-0.5206759618530197}, {:a=>-1.7291300001004908, :b=>-4.161412500125613, :c=>-1.60204300011054, :d=>-1.9478690001306382}, {:a=>-0.296214991822046, :b=>-2.3702687397775577, :c=>-0.025836491004250672, :d=>-0.08507948936865983}, {:a=>0.38101898417326774, :b=>-1.5237262697834153, :c=>0.7191208825905946, :d=>0.7953246794252481}, {:a=>-0.672059679994036, :b=>-2.840074599992545, :c=>-0.43926564799343976, :d=>-0.573677583992247}, {:a=>1.0216489622788612, :b=>-0.7229387971514236, :c=>1.4238138585067475, :d=>1.6281436509625196}, {:a=>1.7469386608162725, :b=>0.18367332602034026, :c=>2.2216325268978996, :d=>2.571020259061154}, {:a=>-1.6665276034642558, :b=>-4.08315950433032, :c=>-1.5331803638106813, :d=>-1.8664858845035324}, {:a=>0.35371323337091326, :b=>-1.5578584582863584, :c=>0.6890845567080046, :d=>0.7598272033821872}, {:a=>0.9166924024627723, :b=>-0.8541344969215348, :c=>1.3083616427090496, :d=>1.491700123201604}, {:a=>0.5920804272589558, :b=>-1.2598994659263054, :c=>0.9512884699848514, :d=>1.0697045554366427}, {:a=>0.6669780494465744, :b=>-1.166277438191782, :c=>1.0336758543912319, :d=>1.1670714642805466}, {:a=>-1.9038986147420813, :b=>-4.379873268427602, :c=>-1.7942884762162896, :d=>-2.175068199164706}, {:a=>0.9573377424716671, :b=>-0.8033278219104161, :c=>1.353071516718834, :d=>1.5445390652131674}, {:a=>0.9136034444421717, :b=>-0.8579956944472855, :c=>1.304963788886389, :d=>1.4876844777748233}, {:a=>-0.10824709412066542, :b=>-2.135308867650832, :c=>0.18092819646726802, :d=>0.15927877764313494}, {:a=>0.6347602677752583, :b=>-1.206549665280927, :c=>0.9982362945527841, :d=>1.1251883481078357}, {:a=>-0.17731908829245463, :b=>-2.221648860365568, :c=>0.10494900287829989, :d=>0.06948518521980895}, {:a=>-0.15331857208185792, :b=>-2.1916482151023224, :c=>0.13134957070995626, :d=>0.10068585629358467}, {:a=>0.49299878686414417, :b=>-1.38375151641982, :c=>0.8422986655505587, :d=>0.9408984229233874}, {:a=>-0.5387504337259036, :b=>-2.6734380421573793, :c=>-0.292625477098494, :d=>-0.40037556384367473}, {:a=>-0.7992156256885595, :b=>-2.999019532110699, :c=>-0.5791371882574157, :d=>-0.7389803133951274}, {:a=>1.2705497653041529, :b=>-0.411812793369809, :c=>1.6976047418345683, :d=>1.9517146948953987}, {:a=>0.8227883386574456, :b=>-0.971514576678193, :c=>1.2050671725231903, :d=>1.3696248402546793}, {:a=>-1.0961893185220222, :b=>-3.3702366481525274, :c=>-0.9058082503742244, :d=>-1.1250461140786288}, {:a=>-0.9458970761806743, :b=>-3.182371345225843, :c=>-0.7404867837987419, :d=>-0.9296661990348767}, {:a=>-1.9301860380712947, :b=>-4.412732547589118, :c=>-1.8232046418784245, :d=>-2.2092418494926833}, {:a=>1.1538357712005727, :b=>-0.5577052859992842, :c=>1.56921934832063, :d=>1.7999865025607447}, {:a=>-1.0883306524486223, :b=>-3.360413315560778, :c=>-0.8971637176934846, :d=>-1.1148298481832088}, {:a=>-0.7511660455910156, :b=>-2.9389575569887696, :c=>-0.5262826501501172, :d=>-0.6765158592683205}, {:a=>-0.5450640629969197, :b=>-2.6813300787461496, :c=>-0.29957046929661174, :d=>-0.40858328189599563}, {:a=>0.25822222868250216, :b=>-1.6772222141468722, :c=>0.5840444515507524, :d=>0.6356888972872528}, {:a=>0.8500294766810103, :b=>-0.9374631541487373, :c=>1.2350324243491113, :d=>1.4050383196853133}, {:a=>-0.7962375823290863, :b=>-2.995296977911358, :c=>-0.575861340561995, :d=>-0.7351088570278121}, {:a=>-0.12978973146739675, :b=>-2.162237164334246, :c=>0.15723129538586356, :d=>0.1312733490923842}, {:a=>-0.6449899826973952, :b=>-2.806237478371744, :c=>-0.40948898096713476, :d=>-0.5384869775066137}, {:a=>0.521368767937533, :b=>-1.3482890400780838, :c=>0.8735056447312863, :d=>0.9777793983187928}, {:a=>-0.785716065374195, :b=>-2.9821450817177437, :c=>-0.5642876719116146, :d=>-0.7214308849864535}, {:a=>-0.27345435292806086, :b=>-2.341817941160076, :c=>-0.0007997882208669593, :d=>-0.05549065880647913}, {:a=>1.0862261682691805, :b=>-0.6422172896635245, :c=>1.4948487850960988, :d=>1.7120940187499347}, {:a=>-0.009671248358506072, :b=>-2.0120890604481327, :c=>0.2893616268056433, :d=>0.2874273771339421}, {:a=>-1.4701116739886328, :b=>-3.837639592485791, :c=>-1.3171228413874962, :d=>-1.6111451761852227}, {:a=>-0.15145023447198738, :b=>-2.189312793089984, :c=>0.13340474208081385, :d=>0.10311469518641639}, {:a=>0.30891185635859364, :b=>-1.613860179551758, :c=>0.639803041994453, :d=>0.7015854132661717}, {:a=>-0.08972166260669147, :b=>-2.1121520782583643, :c=>0.20130617113263938, :d=>0.18336183861130106}, {:a=>-1.6072128920429993, :b=>-4.009016115053749, :c=>-1.4679341812472995, :d=>-1.7893767596558992}, {:a=>-0.7615254353182558, :b=>-2.9519067941478196, :c=>-0.5376779788500814, :d=>-0.6899830659137325}, {:a=>-1.0362154148158071, :b=>-3.2952692685197587, :c=>-0.839836956297388, :d=>-1.0470800392605493}, {:a=>0.04665177759018842, :b=>-1.9416852780122644, :c=>0.35131695534920726, :d=>0.36064731086724494}, {:a=>0.09029230726001652, :b=>-1.8871346159249793, :c=>0.39932153798601816, :d=>0.41737999943802145}, {:a=>1.27699187850069, :b=>-0.4037601518741376, :c=>1.704691066350759, :d=>1.960089442050897}, {:a=>0.3452093188735783, :b=>-1.568488351408027, :c=>0.6797302507609362, :d=>0.7487721145356518}]>}, :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": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:line, :options=>{:x=>:day, :y=>:temperature, :title=>\"Temperature in NYC\"}, :data=>\"142f49b2-46fc-4025-9844-85cae14f3731\"}, @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": 24, "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": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:histogram, :options=>{:value=>:a}, :data=>\"341ba0a2-37fc-4740-884c-713a3d285537\"}, @xrange=[0, 0.9984494549506071], @yrange=[0, 1000]>], :options=>{:yrange=>[0, 150], :y_label=>\"Frequency\", :x_label=>\"Bins\", :width=>700, :xrange=>[0, 0.9984494549506071]}}>" ] }, "execution_count": 26, "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": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:scatter, :options=>{:x=>:day, :y=>:nyc_temp, :title=>\"Temprature in NYC\", :color=>\"#00FF00\"}, :data=>\"6382cbe4-c27c-4aef-a6b4-7b95b6e0f233\"}, @xrange=[1, 6], @yrange=[43, 59]>, #:scatter, :options=>{:x=>:day, :y=>:chicago_temp, :title=>\"Temprature in Chicago\", :color=>\"#FFFF00\"}, :data=>\"6382cbe4-c27c-4aef-a6b4-7b95b6e0f233\"}, @xrange=[1, 6], @yrange=[20, 38]>, #:scatter, :options=>{:x=>:day, :y=>:sf_temp, :title=>\"Temprature in SF\", :color=>\"#0000FF\"}, :data=>\"6382cbe4-c27c-4aef-a6b4-7b95b6e0f233\"}, @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": 28, "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": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", "
Daru::DataFrame(11x3)
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": 31, "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": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:scatter, :options=>{:x=>:fat, :y=>:calories, :tooltip_contents=>[:burger]}, :data=>\"026ad545-e5af-4d42-9073-63d4396ed841\"}, @xrange=[5, 34], @yrange=[260, 590]>, #:line, :options=>{:x=>:fat, :y=>:y_coords, :color=>\"#FF0000\"}, :data=>\"026ad545-e5af-4d42-9073-63d4396ed841\"}, @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": 34, "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": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Ruby 2.3.1", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": ".rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.3.1" } }, "nbformat": 4, "nbformat_minor": 2 }