{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "_Note:_ this tutorial is from the Daru visualization tutorial : http://nbviewer.jupyter.org/github/SciRuby/sciruby-notebooks/blob/master/Visualization/Visualizing%20data%20with%20daru%20DataFrame.ipynb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating Visualizations with DataFrame\n", "\n", "Using nyaplot in the background to generate interactive plots, which can be viewed in your browser.\n", "\n", "In this tutorial we'll see how we can create some interesting plots with Daru::DataFrame using the Daru::View::Plot function." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "Install the spreadsheet gem version ~>1.1.1 for using spreadsheet functions.\n", "\n", "Install the mechanize gem version ~>2.7.5 for using mechanize functions.\n" ] }, { "data": { "text/plain": [ "true" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "require 'daru/view'" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "if(window['d3'] === undefined ||\n", " window['Nyaplot'] === undefined){\n", " var path = {\"d3\":\"https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min\",\"downloadable\":\"http://cdn.rawgit.com/domitry/d3-downloadable/master/d3-downloadable\"};\n", "\n", "\n", "\n", " var shim = {\"d3\":{\"exports\":\"d3\"},\"downloadable\":{\"exports\":\"downloadable\"}};\n", "\n", " require.config({paths: path, shim:shim});\n", "\n", "\n", "require(['d3'], function(d3){window['d3']=d3;console.log('finished loading d3');require(['downloadable'], function(downloadable){window['downloadable']=downloadable;console.log('finished loading downloadable');\n", "\n", "\tvar script = d3.select(\"head\")\n", "\t .append(\"script\")\n", "\t .attr(\"src\", \"http://cdn.rawgit.com/domitry/Nyaplotjs/master/release/nyaplot.js\")\n", "\t .attr(\"async\", true);\n", "\n", "\tscript[0][0].onload = script[0][0].onreadystatechange = function(){\n", "\n", "\n", "\t var event = document.createEvent(\"HTMLEvents\");\n", "\t event.initEvent(\"load_nyaplot\",false,false);\n", "\t window.dispatchEvent(event);\n", "\t console.log('Finished loading Nyaplotjs');\n", "\n", "\t};\n", "\n", "\n", "});});\n", "}\n" ], "text/plain": [ "\"if(window['d3'] === undefined ||\\n window['Nyaplot'] === undefined){\\n var path = {\\\"d3\\\":\\\"https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min\\\",\\\"downloadable\\\":\\\"http://cdn.rawgit.com/domitry/d3-downloadable/master/d3-downloadable\\\"};\\n\\n\\n\\n var shim = {\\\"d3\\\":{\\\"exports\\\":\\\"d3\\\"},\\\"downloadable\\\":{\\\"exports\\\":\\\"downloadable\\\"}};\\n\\n require.config({paths: path, shim:shim});\\n\\n\\nrequire(['d3'], function(d3){window['d3']=d3;console.log('finished loading d3');require(['downloadable'], function(downloadable){window['downloadable']=downloadable;console.log('finished loading downloadable');\\n\\n\\tvar script = d3.select(\\\"head\\\")\\n\\t .append(\\\"script\\\")\\n\\t .attr(\\\"src\\\", \\\"http://cdn.rawgit.com/domitry/Nyaplotjs/master/release/nyaplot.js\\\")\\n\\t .attr(\\\"async\\\", true);\\n\\n\\tscript[0][0].onload = script[0][0].onreadystatechange = function(){\\n\\n\\n\\t var event = document.createEvent(\\\"HTMLEvents\\\");\\n\\t event.initEvent(\\\"load_nyaplot\\\",false,false);\\n\\t window.dispatchEvent(event);\\n\\t console.log('Finished loading Nyaplotjs');\\n\\n\\t};\\n\\n\\n});});\\n}\\n\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ ":nyaplot" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Set a default plotting library\n", "Daru::View.plotting_library = :nyaplot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Scatter Plot\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ " Daru::DataFrame(100x2) \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "
ab
000.3447841799989877
110.6968734945196623
220.09649490951573847
330.5263126740196412
440.6293731782745632
550.387047899991113
660.16484049455841465
770.2585597903063831
880.6724279875502677
990.8178184620787948
10100.3574032918370441
11110.7369342193847986
12120.8930326089117675
13130.01837073143160517
14140.6336293798498954
15150.04836392518854282
16160.6063792302308972
17170.34685884034761316
18180.6700769991991191
19190.9007545790410785
20200.474619168116753
21210.8139687868626249
22220.4672805332349288
23230.7278089074851877
24240.8036446663638377
25250.2689517133384054
26260.8719021997508183
27270.40672535934635345
28280.652809747372604
29290.8787143235571078
.........
99990.2742733733135949
" ], "text/plain": [ "#\n", " a b\n", " 0 0 0.34478417\n", " 1 1 0.69687349\n", " 2 2 0.09649490\n", " 3 3 0.52631267\n", " 4 4 0.62937317\n", " 5 5 0.38704789\n", " 6 6 0.16484049\n", " 7 7 0.25855979\n", " 8 8 0.67242798\n", " 9 9 0.81781846\n", " 10 10 0.35740329\n", " 11 11 0.73693421\n", " 12 12 0.89303260\n", " 13 13 0.01837073\n", " 14 14 0.63362937\n", " ... ... ..." ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = Daru::DataFrame.new({\n", " a: Array.new(100) {|i| i}, \n", " b: 100.times.map{rand}\n", "})\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "#\n", " a b\n", " 0 0 0.34478417\n", " 1 1 0.69687349\n", " 2 2 0.09649490\n", " 3 3 0.52631267\n", " 4 4 0.62937317\n", " 5 5 0.38704789\n", " 6 6 0.16484049\n", " 7 7 0.25855979\n", " 8 8 0.67242798\n", " 9 9 0.81781846\n", " 10 10 0.35740329\n", " 11 11 0.73693421\n", " 12 12 0.89303260\n", " 13 13 0.01837073\n", " 14 14 0.63362937\n", " ... ... ..., @options={:type=>:scatter, :x=>:a, :y=>:b}, @user_options={}, @adapter=Daru::View::Adapter::NyaplotAdapter, @chart=#[#:scatter, :options=>{:x=>:a, :y=>:b}, :data=>\"679b94f9-47f6-4e4e-89b2-49b0e019478e\"}, @xrange=[0, 99], @yrange=[0.010839114272730876, 0.9930018236532082]>], :options=>{}}>>" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "scatter_1 = Daru::View::Plot.new(df, type: :scatter, x: :a, y: :b)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#[#:scatter, :options=>{:x=>:a, :y=>:b}, :data=>\"679b94f9-47f6-4e4e-89b2-49b0e019478e\"}, @xrange=[0, 99], @yrange=[0.010839114272730876, 0.9930018236532082]>], :options=>{:zoom=>true, :width=>700, :xrange=>[0, 99], :yrange=>[0.010839114272730876, 0.9930018236532082]}}>], :data=>{\"679b94f9-47f6-4e4e-89b2-49b0e019478e\"=>#0, :b=>0.3447841799989877}, {:a=>1, :b=>0.6968734945196623}, {:a=>2, :b=>0.09649490951573847}, {:a=>3, :b=>0.5263126740196412}, {:a=>4, :b=>0.6293731782745632}, {:a=>5, :b=>0.387047899991113}, {:a=>6, :b=>0.16484049455841465}, {:a=>7, :b=>0.2585597903063831}, {:a=>8, :b=>0.6724279875502677}, {:a=>9, :b=>0.8178184620787948}, {:a=>10, :b=>0.3574032918370441}, {:a=>11, :b=>0.7369342193847986}, {:a=>12, :b=>0.8930326089117675}, {:a=>13, :b=>0.01837073143160517}, {:a=>14, :b=>0.6336293798498954}, {:a=>15, :b=>0.04836392518854282}, {:a=>16, :b=>0.6063792302308972}, {:a=>17, :b=>0.34685884034761316}, {:a=>18, :b=>0.6700769991991191}, {:a=>19, :b=>0.9007545790410785}, {:a=>20, :b=>0.474619168116753}, {:a=>21, :b=>0.8139687868626249}, {:a=>22, :b=>0.4672805332349288}, {:a=>23, :b=>0.7278089074851877}, {:a=>24, :b=>0.8036446663638377}, {:a=>25, :b=>0.2689517133384054}, {:a=>26, :b=>0.8719021997508183}, {:a=>27, :b=>0.40672535934635345}, {:a=>28, :b=>0.652809747372604}, {:a=>29, :b=>0.8787143235571078}, {:a=>30, :b=>0.1586968932615762}, {:a=>31, :b=>0.9278973543985212}, {:a=>32, :b=>0.09679340147879578}, {:a=>33, :b=>0.1505656862872009}, {:a=>34, :b=>0.46854636778706915}, {:a=>35, :b=>0.06128188709677396}, {:a=>36, :b=>0.12201013690937978}, {:a=>37, :b=>0.8740678870162911}, {:a=>38, :b=>0.4706861004697439}, {:a=>39, :b=>0.2766574483789669}, {:a=>40, :b=>0.35458290850597485}, {:a=>41, :b=>0.9462845775013673}, {:a=>42, :b=>0.7424998234141766}, {:a=>43, :b=>0.16661767881756906}, {:a=>44, :b=>0.6919641835424449}, {:a=>45, :b=>0.2645735564528301}, {:a=>46, :b=>0.8676683847922624}, {:a=>47, :b=>0.15683413440554173}, {:a=>48, :b=>0.7113588270668573}, {:a=>49, :b=>0.2746570334624815}, {:a=>50, :b=>0.6093241132171469}, {:a=>51, :b=>0.7997083977221141}, {:a=>52, :b=>0.5540779498992924}, {:a=>53, :b=>0.061271174084170044}, {:a=>54, :b=>0.9453938999632436}, {:a=>55, :b=>0.3212651758014158}, {:a=>56, :b=>0.36836505493876515}, {:a=>57, :b=>0.550301081740285}, {:a=>58, :b=>0.1464498088937649}, {:a=>59, :b=>0.24984116807530654}, {:a=>60, :b=>0.9245371422580391}, {:a=>61, :b=>0.3125465795762803}, {:a=>62, :b=>0.08402906843500235}, {:a=>63, :b=>0.5979416822140927}, {:a=>64, :b=>0.25120878246093814}, {:a=>65, :b=>0.6999151286147229}, {:a=>66, :b=>0.542383296647105}, {:a=>67, :b=>0.41314110652134306}, {:a=>68, :b=>0.894998829276665}, {:a=>69, :b=>0.5971301455072078}, {:a=>70, :b=>0.010839114272730876}, {:a=>71, :b=>0.08810836429844093}, {:a=>72, :b=>0.35049774323397187}, {:a=>73, :b=>0.16046030299485226}, {:a=>74, :b=>0.33260953094155987}, {:a=>75, :b=>0.9170474748504148}, {:a=>76, :b=>0.9200644850061444}, {:a=>77, :b=>0.9776726936513667}, {:a=>78, :b=>0.951507757152799}, {:a=>79, :b=>0.9604357766589586}, {:a=>80, :b=>0.6334677446678382}, {:a=>81, :b=>0.9201678624262415}, {:a=>82, :b=>0.2790900245910035}, {:a=>83, :b=>0.04923007596284479}, {:a=>84, :b=>0.38081615309246075}, {:a=>85, :b=>0.3508251726723667}, {:a=>86, :b=>0.2624587825143875}, {:a=>87, :b=>0.9771427043524675}, {:a=>88, :b=>0.5331896378854085}, {:a=>89, :b=>0.4392396954273535}, {:a=>90, :b=>0.7131911415611382}, {:a=>91, :b=>0.9055455113120169}, {:a=>92, :b=>0.9930018236532082}, {:a=>93, :b=>0.5357855326817414}, {:a=>94, :b=>0.3207378288027626}, {:a=>95, :b=>0.08319122073030816}, {:a=>96, :b=>0.5444805829372174}, {:a=>97, :b=>0.7501287128503634}, {:a=>98, :b=>0.4217036902481841}, {:a=>99, :b=>0.2742733733135949}]>}, :extension=>[]}>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "scatter_1.show_in_iruby" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just specifying the options to plot yields a very simple graph without much customization.\n", "\n", "But what if you want to enhance your scatter plot with colors, add tooltips for each point and change the label of the X and Y axes. Also you may be faced with a situation where you want to see two different scatter plots on the same graph, each with a different color.\n", "\n", "All this can be done by combining #plot with a block. The #plot method yields the corresponding Nyaplot::Plot and Nyaplot::Diagram objects for the graph, which can be used for many varied customizations. Lets see some examples:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ " Daru::DataFrame(10x4) \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", "\n", "
temperaturesalescitystaff
030.4350Pune15
123.5150Delhi20
244.5500Pune15
320.3200Delhi20
434480Pune15
524250Delhi20
631.45330Pune15
728.34400Delhi20
837420Pune15
924560Delhi20
" ], "text/plain": [ "#\n", " temperatur sales city staff\n", " 0 30.4 350 Pune 15\n", " 1 23.5 150 Delhi 20\n", " 2 44.5 500 Pune 15\n", " 3 20.3 200 Delhi 20\n", " 4 34 480 Pune 15\n", " 5 24 250 Delhi 20\n", " 6 31.45 330 Pune 15\n", " 7 28.34 400 Delhi 20\n", " 8 37 420 Pune 15\n", " 9 24 560 Delhi 20" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# DataFrame denoting Ice Cream sales of a particular food chain in a city\n", "# according to the maximum recorded temperature in that city. It also lists\n", "# the staff strength present in each city.\n", "\n", "df = Daru::DataFrame.new({\n", " :temperature => [30.4, 23.5, 44.5, 20.3, 34, 24, 31.45, 28.34, 37, 24],\n", " :sales => [350, 150, 500, 200, 480, 250, 330, 400, 420, 560],\n", " :city => ['Pune', 'Delhi']*5,\n", " :staff => [15,20]*5\n", " })\n", "df" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:scatter, :options=>{:x=>:temperature, :y=>:sales, :tooltip_contents=>[:city, :staff], :color=>#, :fill_by=>:city, :shape_by=>:city}, :data=>\"203a200e-5a70-4e1f-9a69-3618d9b0907e\"}, @xrange=[20.3, 44.5], @yrange=[150, 560]>], :options=>{:x_label=>\"Temperature\", :y_label=>\"Sales\", :yrange=>[100, 600], :xrange=>[15, 50], :zoom=>true, :width=>700}}>" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Generating a scatter plot with tool tips, colours and different shapes.\n", "scatter_2 = Daru::View::Plot.new(df, type: :scatter, x: :temperature, y: :sales).chart\n", "scatter_2.tap do |plot, diagram|\n", " plot.x_label \"Temperature\"\n", " plot.y_label \"Sales\"\n", " plot.yrange [100, 600]\n", " plot.xrange [15, 50]\n", " plot.diagrams[0].tooltip_contents([:city, :staff])\n", " plot.diagrams[0].color(Nyaplot::Colors.qual) # set the color scheme for this diagram. See Nyaplot::Colors for more info.\n", " plot.diagrams[0].fill_by(:city) # Change color of each point WRT to the city that it belongs to.\n", " plot.diagrams[0].shape_by(:city) # Shape each point WRT to the city that it belongs to.\n", "end\n", "\n", "# Move the mouse pointer over the points to see the tool tips." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[#:scatter, :options=>{:x=>:temperature, :y=>:sales, :tooltip_contents=>[:city, :staff], :color=>#, :fill_by=>:city, :shape_by=>:city}, :data=>\"203a200e-5a70-4e1f-9a69-3618d9b0907e\"}, @xrange=[20.3, 44.5], @yrange=[150, 560]>]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Array of diagrams\n", "scatter_2.diagrams" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Bar Graph\n", "Generating a bar graph requires passing `:bar` into the `:type` option." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ " Daru::DataFrame(5x2) \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", "\n", "
nameage
3Shivaji Maharaj53
2Rana Pratap57
4Krishnadevaraya58
1Akbar The Great63
0Emperor Asoka72
" ], "text/plain": [ "#\n", " name age\n", " 3 Shivaji Ma 53\n", " 2 Rana Prata 57\n", " 4 Krishnadev 58\n", " 1 Akbar The 63\n", " 0 Emperor As 72" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# A Bar Graph denoting the age at which various Indian Kings died.\n", "\n", "df = Daru::DataFrame.new({\n", " name: ['Emperor Asoka', 'Akbar The Great', 'Rana Pratap', 'Shivaji Maharaj', 'Krishnadevaraya'],\n", " age: [72,63,57,53,58] \n", " }, order: [:name, :age])\n", "\n", "df.sort!([:age])" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:bar, :options=>{:x=>:name, :y=>:age}, :data=>\"83973487-ae3d-484f-8f3b-176f0378d1af\"}, @xrange=[\"Shivaji Maharaj\", \"Rana Pratap\", \"Krishnadevaraya\", \"Akbar The Great\", \"Emperor Asoka\"], @yrange=[0, 72]>], :options=>{:x_label=>\"Name\", :y_label=>\"Age\", :yrange=>[20, 80], :width=>700, :xrange=>[\"Shivaji Maharaj\", \"Rana Pratap\", \"Krishnadevaraya\", \"Akbar The Great\", \"Emperor Asoka\"]}}>" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Daru::View::Plot.new(df, type: :bar, x: :name, y: :age).chart.tap do |plot|\n", " plot.x_label \"Name\"\n", " plot.y_label \"Age\"\n", " plot.yrange [20,80]\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**It is also possible to simply pass in the `:x ` parameter if you want to the frequency of occurence of each element in a Vector.**" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "v : \n", "[\"A\", \"C\", \"T\", \"A\", \"T\", \"A\", \"G\", \"C\", \"T\", \"A\", \"T\", \"C\", \"C\", \"G\", \"A\", \"T\", \"C\", \"C\", \"G\", \"C\", \"A\", \"T\", \"C\", \"C\", \"A\", \"T\", \"C\", \"C\", \"G\", \"C\", \"T\", \"A\", \"T\", \"C\", \"T\", \"G\", \"T\", \"T\", \"T\", \"C\", \"A\", \"C\", \"C\", \"A\", \"C\", \"T\", \"C\", \"A\", \"C\", \"G\", \"C\", \"C\", \"T\", \"T\", \"A\", \"A\", \"C\", \"G\", \"C\", \"T\", \"G\", \"G\", \"C\", \"A\", \"G\", \"T\", \"A\", \"G\", \"C\", \"G\", \"T\", \"T\", \"T\", \"G\", \"T\", \"C\", \"C\", \"T\", \"A\", \"T\", \"A\", \"A\", \"G\", \"G\", \"G\", \"G\", \"A\", \"G\", \"G\", \"G\", \"A\", \"C\", \"T\", \"G\", \"C\", \"T\", \"G\", \"A\", \"A\", \"A\", \"C\", \"C\", \"T\", \"T\", \"C\", \"A\", \"A\", \"T\", \"A\", \"G\", \"A\", \"C\", \"T\", \"A\", \"G\", \"A\", \"T\", \"T\", \"T\", \"C\", \"A\", \"A\", \"A\", \"G\", \"G\", \"C\", \"G\", \"T\", \"G\", \"A\", \"T\", \"A\", \"C\", \"C\", \"A\", \"G\", \"A\", \"T\", \"C\", \"C\", \"G\", \"A\", \"C\", \"A\", \"A\", \"C\", \"G\", \"T\", \"C\", \"C\", \"C\", \"T\", \"G\", \"C\", \"T\", \"G\", \"T\", \"G\", \"C\", \"C\", \"C\", \"G\", \"C\", \"T\", \"A\", \"G\", \"C\", \"G\", \"A\", \"T\", \"T\", \"A\", \"T\", \"T\", \"G\", \"C\", \"A\", \"G\", \"G\", \"A\", \"G\", \"C\", \"A\", \"A\", \"A\", \"G\", \"G\", \"G\", \"G\", \"A\", \"T\", \"T\", \"G\", \"A\", \"G\", \"C\", \"G\", \"A\", \"T\", \"A\", \"C\", \"A\", \"A\", \"C\", \"A\", \"G\", \"G\", \"T\", \"C\", \"A\", \"T\", \"C\", \"A\", \"T\", \"A\", \"C\", \"G\", \"T\", \"A\", \"T\", \"C\", \"C\", \"C\", \"C\", \"A\", \"T\", \"G\", \"G\", \"G\", \"G\", \"C\", \"A\", \"A\", \"A\", \"A\", \"T\", \"A\", \"A\", \"T\", \"T\", \"C\", \"C\", \"G\", \"T\", \"G\", \"T\", \"A\", \"G\", \"C\", \"G\", \"G\", \"C\", \"A\", \"G\", \"C\", \"T\", \"T\", \"C\", \"C\", \"G\", \"G\", \"T\", \"C\", \"C\", \"G\", \"A\", \"A\", \"C\", \"G\", \"A\", \"C\", \"C\", \"T\", \"T\", \"C\", \"A\", \"A\", \"G\", \"A\", \"A\", \"G\", \"A\", \"G\", \"G\", \"A\", \"G\", \"G\", \"T\", \"A\", \"T\", \"G\", \"G\", \"C\", \"G\", \"T\", \"T\", \"G\", \"T\", \"A\", \"C\", \"T\", \"T\", \"G\", \"A\", \"A\", \"A\", \"A\", \"G\", \"G\", \"A\", \"G\", \"T\", \"A\", \"T\", \"A\", \"A\", \"C\", \"A\", \"C\", \"G\", \"A\", \"A\", \"A\", \"G\", \"G\", \"A\", \"T\", \"G\", \"A\", \"A\", \"A\", \"A\", \"C\", \"G\", \"T\", \"C\", \"A\", \"C\", \"A\", \"C\", \"T\", \"A\", \"G\", \"A\", \"T\", \"C\", \"C\", \"A\", \"C\", \"C\", \"A\", \"G\", \"T\", \"A\", \"C\", \"A\", \"G\", \"T\", \"C\", \"T\", \"C\", \"C\", \"T\", \"G\", \"G\", \"A\", \"A\", \"T\", \"T\", \"G\", \"T\", \"G\", \"A\", \"C\", \"G\", \"A\", \"G\", \"A\", \"G\", \"G\", \"G\", \"A\", \"G\", \"G\", \"G\", \"G\", \"C\", \"C\", \"T\", \"C\", \"A\", \"C\", \"C\", \"A\", \"C\", \"T\", \"T\", \"G\", \"A\", \"C\", \"T\", \"G\", \"A\", \"C\", \"A\", \"A\", \"T\", \"C\", \"C\", \"T\", \"C\", \"A\", \"C\", \"G\", \"A\", \"G\", \"A\", \"T\", \"A\", \"C\", \"A\", \"C\", \"A\", \"G\", \"T\", \"C\", \"G\", \"G\", \"T\", \"G\", \"G\", \"A\", \"A\", \"C\", \"A\", \"A\", \"C\", \"G\", \"T\", \"C\", \"A\", \"G\", \"C\", \"G\", \"A\", \"A\", \"G\", \"T\", \"A\", \"T\", \"G\", \"T\", \"A\", \"G\", \"G\", \"C\", \"G\", \"A\", \"A\", \"A\", \"G\", \"G\", \"G\", \"C\", \"C\", \"C\", \"G\", \"C\", \"A\", \"T\", \"A\", \"G\", \"A\", \"T\", \"C\", \"T\", \"A\", \"G\", \"C\", \"G\", \"A\", \"T\", \"C\", \"T\", \"T\", \"T\", \"C\", \"C\", \"A\", \"A\", \"A\", \"G\", \"T\", \"A\", \"T\", \"G\", \"C\", \"C\", \"A\", \"G\", \"C\", \"T\", \"T\", \"T\", \"G\", \"A\", \"G\", \"G\", \"C\", \"T\", \"A\", \"A\", \"A\", \"C\", \"C\", \"G\", \"C\", \"C\", \"C\", \"T\", \"A\", \"C\", \"A\", \"G\", \"C\", \"T\", \"C\", \"C\", \"C\", \"G\", \"T\", \"G\", \"T\", \"C\", \"G\", \"A\", \"C\", \"G\", \"A\", \"T\", \"G\", \"T\", \"T\", \"G\", \"G\", \"T\", \"G\", \"C\", \"C\", \"G\", \"C\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"T\", \"T\", \"T\", \"A\", \"G\", \"C\", \"T\", \"A\", \"T\", \"G\", \"C\", \"A\", \"G\", \"T\", \"T\", \"A\", \"T\", \"A\", \"T\", \"C\", \"G\", \"A\", \"A\", \"C\", \"T\", \"G\", \"C\", \"C\", \"T\", \"T\", \"T\", \"C\", \"T\", \"C\", \"T\", \"A\", \"G\", \"C\", \"C\", \"G\", \"C\", \"T\", \"C\", \"C\", \"C\", \"G\", \"A\", \"G\", \"T\", \"G\", \"A\", \"C\", \"A\", \"T\", \"A\", \"T\", \"G\", \"T\", \"G\", \"C\", \"T\", \"C\", \"C\", \"A\", \"G\", \"A\", \"C\", \"A\", \"A\", \"G\", \"C\", \"G\", \"C\", \"C\", \"C\", \"G\", \"G\", \"C\", \"A\", \"A\", \"T\", \"T\", \"A\", \"G\", \"G\", \"C\", \"C\", \"C\", \"G\", \"G\", \"G\", \"A\", \"A\", \"C\", \"C\", \"C\", \"C\", \"C\", \"G\", \"A\", \"G\", \"T\", \"T\", \"A\", \"C\", \"T\", \"T\", \"G\", \"G\", \"T\", \"C\", \"C\", \"A\", \"A\", \"T\", \"T\", \"A\", \"G\", \"A\", \"T\", \"G\", \"G\", \"T\", \"G\", \"T\", \"A\", \"T\", \"T\", \"T\", \"T\", \"T\", \"C\", \"G\", \"C\", \"C\", \"T\", \"G\", \"G\", \"C\", \"C\", \"G\", \"T\", \"A\", \"C\", \"A\", \"G\", \"T\", \"T\", \"T\", \"A\", \"A\", \"C\", \"C\", \"A\", \"A\", \"C\", \"T\", \"A\", \"G\", \"C\", \"T\", \"A\", \"A\", \"G\", \"C\", \"G\", \"G\", \"C\", \"T\", \"A\", \"T\", \"C\", \"A\", \"C\", \"C\", \"G\", \"G\", \"G\", \"G\", \"G\", \"A\", \"C\", \"C\", \"G\", \"G\", \"A\", \"C\", \"G\", \"T\", \"T\", \"C\", \"A\", \"G\", \"G\", \"A\", \"T\", \"G\", \"A\", \"T\", \"T\", \"C\", \"T\", \"T\", \"T\", \"T\", \"C\", \"A\", \"C\", \"G\", \"C\", \"T\", \"C\", \"C\", \"T\", \"A\", \"A\", \"C\", \"A\", \"C\", \"G\", \"C\", \"T\", \"C\", \"T\", \"G\", \"A\", \"T\", \"C\", \"A\", \"C\", \"C\", \"T\", \"A\", \"T\", \"A\", \"T\", \"T\", \"G\", \"A\", \"C\", \"C\", \"A\", \"A\", \"T\", \"A\", \"C\", \"G\", \"C\", \"C\", \"T\", \"G\", \"T\", \"A\", \"G\", \"G\", \"T\", \"C\", \"A\", \"C\", \"A\", \"A\", \"A\", \"G\", \"G\", \"C\", \"A\", \"A\", \"A\", \"T\", \"T\", \"T\", \"T\", \"C\", \"T\", \"G\", \"C\", \"G\", \"G\", \"C\", \"T\", \"C\", \"T\", \"C\", \"T\", \"G\", \"G\", \"G\", \"C\", \"C\", \"G\", \"T\", \"C\", \"A\", \"T\", \"A\", \"A\", \"G\", \"G\", \"G\", \"G\", \"A\", \"A\", \"C\", \"T\", \"C\", \"G\", \"C\", \"A\", \"T\", \"A\", \"A\", \"C\", \"A\", \"C\", \"T\", \"A\", \"C\", \"T\", \"A\", \"A\", \"C\", \"A\", \"A\", \"A\", \"C\", \"A\", \"C\", \"G\", \"C\", \"C\", \"G\", \"G\", \"T\", \"C\", \"G\", \"T\", \"G\", \"G\", \"T\", \"C\", \"A\", \"C\", \"T\", \"G\", \"T\", \"T\", \"C\", \"A\", \"G\", \"C\", \"A\", \"A\", \"C\", \"T\", \"A\", \"A\", \"T\", \"C\", \"A\", \"T\", \"C\", \"C\", \"A\", \"A\", \"C\", \"T\", \"A\", \"A\", \"T\", \"A\", \"C\", \"G\", \"A\", \"G\", \"G\", \"T\", \"G\", \"A\", \"C\", \"G\", \"T\", \"T\", \"A\", \"T\", \"C\", \"A\", \"A\", \"C\", \"G\", \"C\", \"C\", \"T\", \"T\", \"G\", \"A\", \"G\", \"G\", \"C\", \"T\", \"G\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"T\", \"T\", \"C\", \"G\", \"G\", \"C\", \"T\", \"T\", \"C\", \"G\", \"C\", \"G\", \"G\", \"C\", \"T\", \"C\", \"C\", \"A\", \"A\", \"C\", \"A\", \"C\", \"A\", \"G\", \"A\", \"T\", \"T\", \"G\", \"G\", \"C\", \"A\", \"T\", \"A\", \"G\", \"G\", \"A\"]\n" ] }, { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:bar, :options=>{:value=>:a}, :data=>\"bdf062c8-d220-4e6c-a339-1a9a8f597908\"}, @xrange=[\"A\", \"C\", \"T\", \"G\"], @yrange=[0, 1000]>], :options=>{:yrange=>[0, 350], :y_label=>\"Frequency\", :x_label=>\"Letter\", :width=>700, :xrange=>[\"A\", \"C\", \"T\", \"G\"]}}>" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = ['A', 'C', 'G', 'T']\n", "v = 1000.times.map { a.sample }\n", "\n", "puts \"v : \", v\n", "\n", "df = Daru::DataFrame.new({\n", " a: v\n", " })\n", "Daru::View::Plot.new(df, type: :bar, x: :a).chart.tap do |plot|\n", " plot.yrange [0,350]\n", " plot.y_label \"Frequency\"\n", " plot.x_label \"Letter\"\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Box Plots\n", "\n", "A box plot can be generated of the numerical vectors in the DataFrame by simply passing `:box` to the `:type` argument.\n", "\n", "To demonstrate, I'll prepare some data using the distribution gem to get a bunch of normally distributed random variables. We'll then plot in a Box plot after creating a DataFrame with the data." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#[#:box, :options=>{:value=>[:a, :b, :c, :d]}, :data=>\"1e02d2e2-5521-4e87-82bf-f7ee9b8b8860\"}, @xrange=[:a, :b, :c, :d], @yrange=[-5.6849492953230145, 5.471324351867873]>], :options=>{:width=>700, :xrange=>[:a, :b, :c, :d], :yrange=>[-5.6849492953230145, 5.471324351867873]}}>], :data=>{\"1e02d2e2-5521-4e87-82bf-f7ee9b8b8860\"=>#0.9618067784882386, :b=>-0.7977415268897019, :c=>1.3579874563370626, :d=>1.5503488120347102}, {:a=>-1.6701101504501112, :b=>-4.087637688062639, :c=>-1.5371211654951225, :d=>-1.8711431955851447}, {:a=>-0.037052564454070756, :b=>-2.0463157055675882, :c=>0.25924217910052216, :d=>0.251831666209708}, {:a=>-0.644930388666285, :b=>-2.8061629858328563, :c=>-0.40942342753291366, :d=>-0.5384095052661706}, {:a=>0.11667028092611059, :b=>-1.8541621488423619, :c=>0.4283373090187217, :d=>0.4516713652039438}, {:a=>0.77808826474145, :b=>-1.0273896690731874, :c=>1.155897091215595, :d=>1.311514744163885}, {:a=>1.1748293062238964, :b=>-0.5314633672201297, :c=>1.592312236846286, :d=>1.8272780980910655}, {:a=>-0.6725453060678049, :b=>-2.840681632584756, :c=>-0.4397998366745855, :d=>-0.5743088978881465}, {:a=>-1.2958922122276646, :b=>-3.619865265284581, :c=>-1.125481433450431, :d=>-1.384659875895964}, {:a=>0.38644005960213723, :b=>-1.5169499254973284, :c=>0.7250840655623509, :d=>0.8023720774827785}, {:a=>-2.2723943753768787, :b=>-4.840492969221098, :c=>-2.199633812914567, :d=>-2.654112687989943}, {:a=>1.2797275461008333, :b=>-0.4003405673739584, :c=>1.7077003007109168, :d=>1.9636458099310834}, {:a=>0.7844285671862504, :b=>-1.019464291017187, :c=>1.1628714239048756, :d=>1.3197571373421257}, {:a=>-0.17888499865389118, :b=>-2.223606248317364, :c=>0.10322650148071968, :d=>0.06744950174994144}, {:a=>1.5501813865127894, :b=>-0.062273266859013354, :c=>2.0051995251640684, :d=>2.315235802466626}, {:a=>0.1281420964084374, :b=>-1.8398223794894533, :c=>0.44095630604928115, :d=>0.4665847253309686}, {:a=>-0.8283398855230412, :b=>-3.035424856903801, :c=>-0.6111738740753454, :d=>-0.7768418511799535}, {:a=>-0.18506797025375823, :b=>-2.231334962817198, :c=>0.09642523272086592, :d=>0.059411638670114286}, {:a=>-0.8734392093209832, :b=>-3.091799011651229, :c=>-0.6607831302530816, :d=>-0.8354709721172782}, {:a=>-2.1430764098556248, :b=>-4.678845512319531, :c=>-2.0573840508411876, :d=>-2.4859993328123124}, {:a=>-2.215182465991862, :b=>-4.768978082489827, :c=>-2.1367007125910487, :d=>-2.579737205789421}, {:a=>-0.7115345106547764, :b=>-2.8894181383184705, :c=>-0.482687961720254, :d=>-0.6249948638512093}, {:a=>-0.9862927277439998, :b=>-3.2328659096799996, :c=>-0.7849220005183999, :d=>-0.9821805460671997}, {:a=>-0.6061667371665891, :b=>-2.7577084214582364, :c=>-0.366783410883248, :d=>-0.4880167583165658}, {:a=>0.4809675062547554, :b=>-1.3987906171815558, :c=>0.8290642568802309, :d=>0.925257758131182}, {:a=>0.2746934833882145, :b=>-1.6566331457647319, :c=>0.602162831727036, :d=>0.6571015284046788}, {:a=>-1.119607819863699, :b=>-3.3995097748296237, :c=>-0.9315686018500688, :d=>-1.1554901658228087}, {:a=>-0.3490656004816381, :b=>-2.4363320006020475, :c=>-0.08397216052980194, :d=>-0.15378528062612956}, {:a=>1.0565938747739705, :b=>-0.679257656532537, :c=>1.4622532622513678, :d=>1.6735720372061618}, {:a=>-0.8671892947644249, :b=>-3.0839866184555307, :c=>-0.6539082242408674, :d=>-0.8273460831937522}, {:a=>0.9780425193316977, :b=>-0.777446850835378, :c=>1.3758467712648677, :d=>1.5714552751312072}, {:a=>-2.103922160723281, :b=>-4.629902700904101, :c=>-2.0143143767956095, :d=>-2.435098808940266}, {:a=>0.32266416236123774, :b=>-1.596669797048453, :c=>0.6549305785973616, :d=>0.719463411069609}, {:a=>1.3398035197639373, :b=>-0.32524560029507854, :c=>1.7737838717403311, :d=>2.0417445756931185}, {:a=>0.44365102974452847, :b=>-1.4454362128193394, :c=>0.7880161327189814, :d=>0.8767463386678871}, {:a=>0.5425761516186856, :b=>-1.321779810476643, :c=>0.8968337667805542, :d=>1.0053489971042913}, {:a=>0.5703549276539969, :b=>-1.287056340432504, :c=>0.9273904204193966, :d=>1.0414614059501959}, {:a=>-1.1064759809820255, :b=>-3.3830949762275315, :c=>-0.9171235790802281, :d=>-1.138418775276633}, {:a=>0.3694051033889267, :b=>-1.5382436207638417, :c=>0.7063456137278193, :d=>0.7802266344056047}, {:a=>0.9603484460013583, :b=>-0.7995644424983022, :c=>1.3563832906014943, :d=>1.5484529798017659}, {:a=>-1.9568720687429166, :b=>-4.446090085928645, :c=>-1.8525592756172082, :d=>-2.2439336893657917}, {:a=>0.9455575380720737, :b=>-0.818053077409908, :c=>1.340113291879281, :d=>1.5292247994936958}, {:a=>1.362825962961023, :b=>-0.2964675462987212, :c=>1.7991085592571257, :d=>2.07167375184933}, {:a=>0.31018944409433874, :b=>-1.6122631948820767, :c=>0.6412083885037727, :d=>0.7032462773226404}, {:a=>0.4502518239847073, :b=>-1.4371852200191158, :c=>0.795277006383178, :d=>0.8853273711801195}, {:a=>0.1311150693333708, :b=>-1.8361061633332865, :c=>0.4442265762667079, :d=>0.47044959013338206}, {:a=>-0.3103434128701107, :b=>-2.3879292660876383, :c=>-0.041377754157121804, :d=>-0.1034464367311439}, {:a=>0.20651142797802327, :b=>-1.741860715027471, :c=>0.5271625707758256, :d=>0.5684648563714303}, {:a=>1.6627510274059967, :b=>0.07843878425749562, :c=>2.1290261301465963, :d=>2.4615763356277958}, {:a=>-0.5083063345151649, :b=>-2.6353829181439563, :c=>-0.25913696796668145, :d=>-0.36079823486971446}, {:a=>-1.0390908547554718, :b=>-3.2988635684443395, :c=>-0.8429999402310191, :d=>-1.0508181111821133}, {:a=>-0.3229178453764192, :b=>-2.403647306720524, :c=>-0.0552096299140612, :d=>-0.11979319898934498}, {:a=>0.5652446959002099, :b=>-1.2934441301247377, :c=>0.9217691654902309, :d=>1.034818104670273}, {:a=>-0.38663217831544433, :b=>-2.4832902228943055, :c=>-0.1252953961469888, :d=>-0.2026218318100777}, {:a=>-1.934183644165688, :b=>-4.41772955520711, :c=>-1.827602008582257, :d=>-2.214438737415395}, {:a=>-1.3821704133809969, :b=>-3.7277130167262458, :c=>-1.2203874547190967, :d=>-1.496821537395296}, {:a=>-1.1362948292218544, :b=>-3.420368536527318, :c=>-0.9499243121440399, :d=>-1.1771832779884108}, {:a=>0.161924180424336, :b=>-1.79759477446958, :c=>0.4781165984667696, :d=>0.5105014345516368}, {:a=>1.4644784459677818, :b=>-0.16940194254027285, :c=>1.91092629056456, :d=>2.2038219797581164}, {:a=>-1.4787760139074757, :b=>-3.8484700173843445, :c=>-1.3266536152982233, :d=>-1.6224088180797185}, {:a=>0.11427882560047599, :b=>-1.857151467999405, :c=>0.4257067081605236, :d=>0.44856247328061877}, {:a=>-1.5177168381532535, :b=>-3.897146047691567, :c=>-1.369488521968579, :d=>-1.6730318895992295}, {:a=>0.8399372477512054, :b=>-0.9500784403109934, :c=>1.2239309725263259, :d=>1.391918422076567}, {:a=>0.8923705006523034, :b=>-0.8845368741846209, :c=>1.2816075507175337, :d=>1.4600816508479946}, {:a=>0.6982747752177545, :b=>-1.1271565309778069, :c=>1.06810225273953, :d=>1.207757207783081}, {:a=>-0.3848593945004678, :b=>-2.4810742431255846, :c=>-0.12334533395051461, :d=>-0.20031721285060816}, {:a=>0.22925773129628718, :b=>-1.713427835879641, :c=>0.5521835044259159, :d=>0.5980350506851733}, {:a=>0.34004771491115854, :b=>-1.5749403563610518, :c=>0.6740524864022743, :d=>0.7420620293845062}, {:a=>0.05293952578820744, :b=>-1.9338255927647408, :c=>0.3582334783670282, :d=>0.36882138352466964}, {:a=>1.461272767039742, :b=>-0.1734090412003224, :c=>1.9074000437437164, :d=>2.199654597151665}, {:a=>-1.026047382751002, :b=>-3.2825592284387524, :c=>-0.8286521210261022, :d=>-1.0338615975763026}, {:a=>-0.01420767778632392, :b=>-2.0177595972329048, :c=>0.2843715544350437, :d=>0.2815300188777789}, {:a=>-0.9091067539659279, :b=>-3.1363834424574097, :c=>-0.7000174293625208, :d=>-0.8818387801557062}, {:a=>-1.7324629525682607, :b=>-4.165578690710326, :c=>-1.6057092478250867, :d=>-1.9522018383387387}, {:a=>-2.1938322353562216, :b=>-4.742290294195277, :c=>-2.1132154588918444, :d=>-2.5519819059630886}, {:a=>-0.14583327189979564, :b=>-2.1822915898747444, :c=>0.13958340091022478, :d=>0.11041674653026565}, {:a=>0.10310800836146407, :b=>-1.87111498954817, :c=>0.4134188091976105, :d=>0.4340404108699033}, {:a=>-0.17135801861356514, :b=>-2.2141975232669564, :c=>0.11150617952507832, :d=>0.07723457580236529}, {:a=>-1.5167337202942983, :b=>-3.8959171503678727, :c=>-1.3684070923237281, :d=>-1.671753836382588}, {:a=>-0.8408786715218656, :b=>-3.0510983394023317, :c=>-0.6249665386740522, :d=>-0.7931422729784252}, {:a=>-0.39121151713448205, :b=>-2.4890143964181024, :c=>-0.13033266884793032, :d=>-0.20857497227482674}, {:a=>-1.3843641628259722, :b=>-3.730455203532465, :c=>-1.2228005791085694, :d=>-1.4996734116737638}, {:a=>-0.15512196006597725, :b=>-2.1939024500824718, :c=>0.129365843927425, :d=>0.09834145191422955}, {:a=>-0.5357338567804381, :b=>-2.6696673209755475, :c=>-0.2893072424584819, :d=>-0.3964540138145695}, {:a=>-1.1876356220366349, :b=>-3.4845445275457934, :c=>-1.0063991842402984, :d=>-1.2439263086476253}, {:a=>-0.18841872429673204, :b=>-2.235523405370915, :c=>0.09273940327359473, :d=>0.05505565841424834}, {:a=>1.4522368594171047, :b=>-0.18470392572861916, :c=>1.8974605453588154, :d=>2.187907917242236}, {:a=>-0.8709063444203401, :b=>-3.088632930525425, :c=>-0.6579969788623743, :d=>-0.8321782477464421}, {:a=>-0.31912405079902106, :b=>-2.398905063498776, :c=>-0.05103645587892319, :d=>-0.11486126603872743}, {:a=>-2.3309891051108274, :b=>-4.913736381388534, :c=>-2.2640880156219105, :d=>-2.7302858366440756}, {:a=>1.5299903710731986, :b=>-0.08751203615850178, :c=>1.9829894081805186, :d=>2.288987482395158}, {:a=>-0.01015407694263698, :b=>-2.0126925961782964, :c=>0.2888305153630993, :d=>0.2867996999745719}, {:a=>0.5504035178470918, :b=>-1.3119956026911352, :c=>0.905443869631801, :d=>1.0155245732012195}, {:a=>0.4797701491616275, :b=>-1.4002873135479657, :c=>0.8277471640777903, :d=>0.9237011939101158}, {:a=>-0.9914953900785793, :b=>-3.239369237598224, :c=>-0.7906449290864372, :d=>-0.9889440071021531}, {:a=>-0.3807609509072853, :b=>-2.475951188634107, :c=>-0.11883704599801387, :d=>-0.1949892361794709}, {:a=>0.17486265678091764, :b=>-1.781421679023853, :c=>0.4923489224590094, :d=>0.5273214538151929}, {:a=>-0.919832313554358, :b=>-3.1497903919429477, :c=>-0.7118155449097938, :d=>-0.8957820076206655}, {:a=>-2.725891375783362, :b=>-5.407364219729202, :c=>-2.6984805133616985, :d=>-3.243658788518371}, {:a=>1.567621430910707, :b=>-0.04047321136161619, :c=>2.024383574001778, :d=>2.337907860183919}, {:a=>1.3740258628381619, :b=>-0.2824676714522978, :c=>1.8114284491219783, :d=>2.0862336216896105}, {:a=>0.02436647447854748, :b=>-1.9695419069018156, :c=>0.3268031219264022, :d=>0.3316764168221117}, {:a=>-2.9479594362584116, :b=>-5.6849492953230145, :c=>-2.9427553798842534, :d=>-3.5323472671359353}, {:a=>1.2513497145668568, :b=>-0.435812856791429, :c=>1.6764846860235427, :d=>1.926754628936914}, {:a=>0.321072263895685, :b=>-1.598659670130394, :c=>0.6531794902852535, :d=>0.7173939430643905}, {:a=>-0.07572159281735022, :b=>-2.0946519910216876, :c=>0.21670624790091475, :d=>0.2015619293374447}, {:a=>-0.3604623462496565, :b=>-2.4505779328120707, :c=>-0.09650858087462222, :d=>-0.1686010501245535}, {:a=>-0.6216652343260495, :b=>-2.777081542907562, :c=>-0.38383175775865447, :d=>-0.5081648046238643}, {:a=>0.7411726121817755, :b=>-1.0735342347727808, :c=>1.1152898733999532, :d=>1.2635243958363083}, {:a=>-0.47725646031177027, :b=>-2.5965705753897126, :c=>-0.2249821063429473, :d=>-0.32043339840530133}, {:a=>-0.5928436815668838, :b=>-2.741054601958605, :c=>-0.3521280497235723, :d=>-0.47069678603694903}, {:a=>-0.27444842516949647, :b=>-2.3430605314618704, :c=>-0.001893267686446154, :d=>-0.05678295272034545}, {:a=>-0.5064030106697731, :b=>-2.633003763337216, :c=>-0.2570433117367505, :d=>-0.3583239138707051}, {:a=>0.9304536098156067, :b=>-0.8369329877304919, :c=>1.3234989707971674, :d=>1.5095896927602888}, {:a=>-0.05908149406173167, :b=>-2.0738518675771647, :c=>0.23501035653209515, :d=>0.22319405771974882}, {:a=>1.974754530772205, :b=>0.46844316346525616, :c=>2.4722299838494255, :d=>2.8671808900038664}, {:a=>0.594376366944317, :b=>-1.257029541319604, :c=>0.9538140036387486, :d=>1.072689277027612}, {:a=>-0.1230503781910168, :b=>-2.153812972738771, :c=>0.1646445839898815, :d=>0.14003450835167813}, {:a=>-0.5682298065274529, :b=>-2.7102872581593163, :c=>-0.3250527871801983, :d=>-0.43869874848568885}, {:a=>-0.3030131729903438, :b=>-2.3787664662379298, :c=>-0.03331449028937822, :d=>-0.09391712488744697}, {:a=>-2.7080919589223464, :b=>-5.385114948652933, :c=>-2.6789011548145814, :d=>-3.220519546599051}, {:a=>-0.4837542667402422, :b=>-2.6046928334253026, :c=>-0.23212969341426642, :d=>-0.3288805467623149}, {:a=>-0.6334680437680343, :b=>-2.791835054710043, :c=>-0.39681484814483786, :d=>-0.5235084568984447}, {:a=>-0.40184898428525273, :b=>-2.502311230356566, :c=>-0.14203388271377804, :d=>-0.22240367957082857}, {:a=>1.1263861744258572, :b=>-0.5920172819676786, :c=>1.539024791868443, :d=>1.7643020267536145}, {:a=>-1.0960156826495642, :b=>-3.370019603311955, :c=>-0.9056172509145206, :d=>-1.1248203874444334}, {:a=>1.395308586762738, :b=>-0.25586426654657757, :c=>1.834839445439012, :d=>2.113901162791559}, {:a=>-0.05057997324460407, :b=>-2.063224966555755, :c=>0.2443620294309355, :d=>0.2342460347820147}, {:a=>-0.5429264790019825, :b=>-2.678658098752478, :c=>-0.29721912690218083, :d=>-0.4058044227025774}, {:a=>0.697672945282473, :b=>-1.1279088183969086, :c=>1.0674402398107203, :d=>1.2069748288672149}, {:a=>0.9518059136479559, :b=>-0.8102426079400553, :c=>1.3469865050127516, :d=>1.5373476877423427}, {:a=>0.43397432784473405, :b=>-1.4575320901940825, :c=>0.7773717606292074, :d=>0.8641666261981542}, {:a=>0.32054129591043484, :b=>-1.5993233801119564, :c=>0.6525954255014783, :d=>0.7167036846835653}, {:a=>0.1163101281410478, :b=>-1.8546123398236902, :c=>0.42794114095515257, :d=>0.4512031665833621}, {:a=>0.9658470679881972, :b=>-0.7926911650147537, :c=>1.362431774787017, :d=>1.5556011883846563}, {:a=>0.7957317776129923, :b=>-1.0053352779837597, :c=>1.1753049553742916, :d=>1.33445131089689}, {:a=>-1.0414845438069709, :b=>-3.3018556797587135, :c=>-0.845632998187668, :d=>-1.0539299069490622}, {:a=>2.577742250005595, :b=>1.2221778125069935, :c=>3.135516475006155, :d=>3.6510649250072738}, {:a=>0.7854974118826381, :b=>-1.0181282351467025, :c=>1.164047153070902, :d=>1.3211466354474297}, {:a=>1.379626333305082, :b=>-0.27546708336864767, :c=>1.8175889666355904, :d=>2.093514233296607}, {:a=>-1.218619028527793, :b=>-3.5232737856597414, :c=>-1.0404809313805723, :d=>-1.2842047370861307}, {:a=>-0.7481633741991155, :b=>-2.935204217748894, :c=>-0.5229797116190271, :d=>-0.6726123864588502}, {:a=>-1.092873668771026, :b=>-3.366092085963783, :c=>-0.9021610356481287, :d=>-1.1207357694023339}, {:a=>0.4323391281559241, :b=>-1.459576089805095, :c=>0.7755730409715166, :d=>0.8620408666027013}, {:a=>-0.8253766308207616, :b=>-3.031720788525952, :c=>-0.6079142939028379, :d=>-0.7729896200669901}, {:a=>0.6496015399945104, :b=>-1.187998075006862, :c=>1.0145616939939615, :d=>1.1444820019928637}, {:a=>0.030719429257908184, :b=>-1.9616007134276148, :c=>0.333791372183699, :d=>0.33993525803528063}, {:a=>1.8131994427030755, :b=>0.2664993033788443, :c=>2.2945193869733833, :d=>2.657159275513998}, {:a=>0.3098785883765644, :b=>-1.6126517645292946, :c=>0.6408664472142209, :d=>0.7028421648895338}, {:a=>-1.8149458343579474, :b=>-4.2686822929474335, :c=>-1.6964404177937422, :d=>-2.059429584665332}, {:a=>0.05541888980608634, :b=>-1.9307263877423921, :c=>0.36096077878669497, :d=>0.37204455674791226}, {:a=>-1.1469981384842487, :b=>-3.4337476731053105, :c=>-0.9616979523326736, :d=>-1.1910975800295234}, {:a=>-1.1462916708385786, :b=>-3.432864588548223, :c=>-0.9609208379224365, :d=>-1.1901791720901522}, {:a=>-0.6976633822681635, :b=>-2.8720792278352043, :c=>-0.46742972049497994, :d=>-0.6069623969486126}, {:a=>-0.30656293053233913, :b=>-2.383203663165424, :c=>-0.03721922358557306, :d=>-0.0985318096920409}, {:a=>-0.2685705982299346, :b=>-2.3357132477874183, :c=>0.004572341947071901, :d=>-0.049141777698915035}, {:a=>-0.4854635845472224, :b=>-2.606829480684028, :c=>-0.23400994300194472, :d=>-0.33110265991138915}, {:a=>0.20210646507662436, :b=>-1.7473669186542196, :c=>0.5223171115842868, :d=>0.5627384045996117}, {:a=>-0.4414080642793361, :b=>-2.5517600803491702, :c=>-0.18554887070726978, :d=>-0.27383048356313694}, {:a=>0.23600419707823972, :b=>-1.7049947536522003, :c=>0.5596046167860638, :d=>0.6068054562017116}, {:a=>0.9861745988226371, :b=>-0.7672817514717036, :c=>1.384792058704901, :d=>1.5820269784694283}, {:a=>0.17505286452676594, :b=>-1.7811839193415426, :c=>0.49255815097944255, :d=>0.5275687238847957}, {:a=>-0.4884502516954177, :b=>-2.6105628146192723, :c=>-0.2372952768649596, :d=>-0.3349853272040431}, {:a=>1.7802617942137424, :b=>0.22532724276717797, :c=>2.2582879736351167, :d=>2.614340332477865}, {:a=>0.04587272815069683, :b=>-1.942659089811629, :c=>0.3504600009657665, :d=>0.3596345465959059}, {:a=>-0.5084225731263305, :b=>-2.6355282164079132, :c=>-0.2592648304389637, :d=>-0.36094934506422977}, {:a=>1.3794130934192137, :b=>-0.275733633225983, :c=>1.8173544027611352, :d=>2.0932370214449776}, {:a=>-1.1496935054924016, :b=>-3.437116881865502, :c=>-0.9646628560416417, :d=>-1.194601557140122}, {:a=>-1.5079209504901385, :b=>-3.884901188112673, :c=>-1.3587130455391525, :d=>-1.6602972356371801}, {:a=>0.30343915796082815, :b=>-1.620701052548965, :c=>0.633783073756911, :d=>0.6944709053490766}, {:a=>-0.7010026282802475, :b=>-2.8762532853503093, :c=>-0.47110289110827236, :d=>-0.6113034167643219}, {:a=>-0.3260651824570284, :b=>-2.4075814780712856, :c=>-0.05867170070273131, :d=>-0.12388473719413695}, {:a=>-0.8954579879627071, :b=>-3.1193224849533836, :c=>-0.685003786758978, :d=>-0.8640953843515193}, {:a=>0.6881087620004197, :b=>-1.1398640474994755, :c=>1.0569196382004618, :d=>1.1945413906005455}, {:a=>-0.7764359964408448, :b=>-2.970544995551056, :c=>-0.5540795960849294, :d=>-0.7093667953730982}, {:a=>-0.8006941581644708, :b=>-3.0008676977055884, :c=>-0.5807635739809178, :d=>-0.740902405613812}, {:a=>-0.45812274474053205, :b=>-2.572653430925665, :c=>-0.2039350192145853, :d=>-0.29555956816269174}, {:a=>0.259266215923368, :b=>-1.67591723009579, :c=>0.5851928375157048, :d=>0.6370460807003784}, {:a=>0.2415543479845566, :b=>-1.6980570650193043, :c=>0.5657097827830122, :d=>0.6140206523799236}, {:a=>-0.7751014894221584, :b=>-2.968876861777698, :c=>-0.5526116383643742, :d=>-0.7076319362488059}, {:a=>1.095834381000939, :b=>-0.6302070237488264, :c=>1.505417819101033, :d=>1.7245846953012207}, {:a=>-0.4620270235078913, :b=>-2.577533779384864, :c=>-0.20822972585868055, :d=>-0.30063513056025876}, {:a=>-0.6525624068755205, :b=>-2.815703008594401, :c=>-0.4178186475630726, :d=>-0.5483311289381767}, {:a=>0.851326473557673, :b=>-0.9358419080529088, :c=>1.2364591209134403, :d=>1.406724415624975}, {:a=>-0.044074235120117086, :b=>-2.055092793900146, :c=>0.2515183413678712, :d=>0.24270349434384778}, {:a=>-2.4380153442471824, :b=>-5.047519180308978, :c=>-2.381816878671901, :d=>-2.8694199475213376}, {:a=>-0.21404074445465296, :b=>-2.267550930568316, :c=>0.0645551810998817, :d=>0.021747032208951134}, {:a=>-0.03286498421025448, :b=>-2.0410812302628183, :c=>0.26384851736872006, :d=>0.25727552052666913}, {:a=>0.7921500349904638, :b=>-1.0098124562619204, :c=>1.1713650384895102, :d=>1.329795045487603}, {:a=>0.8669118886711922, :b=>-0.9163601391610099, :c=>1.2536030775383114, :d=>1.4269854552725498}, {:a=>1.0158776421016946, :b=>-0.7301529473728818, :c=>1.4174654063118641, :d=>1.620640934732203}, {:a=>0.09570840740773036, :b=>-1.880364490740337, :c=>0.4052792481485034, :d=>0.42442092963004946}, {:a=>-1.5078109433232654, :b=>-3.884763679154082, :c=>-1.358592037655592, :d=>-1.6601542263202451}, {:a=>0.4419265780053744, :b=>-1.447591777493282, :c=>0.7861192358059119, :d=>0.8745045514069867}, {:a=>-0.3377410523657327, :b=>-2.422176315457166, :c=>-0.07151515760230603, :d=>-0.13906336807545255}, {:a=>-1.2600944980253959, :b=>-3.5751181225317445, :c=>-1.0861039478279355, :d=>-1.3381228474330147}, {:a=>0.14173812264244862, :b=>-1.8228273466969394, :c=>0.45591193490669346, :d=>0.4842595594351832}, {:a=>-1.6346522788878297, :b=>-4.043315348609787, :c=>-1.4981175067766128, :d=>-1.8250479625541784}, {:a=>-1.2365188120942896, :b=>-3.545648515117862, :c=>-1.0601706933037187, :d=>-1.3074744557225766}, {:a=>0.26739661901581113, :b=>-1.665754226230236, :c=>0.5941362809173922, :d=>0.6476156047205545}, {:a=>-0.09474713770257033, :b=>-2.118433922128213, :c=>0.19577814852717262, :d=>0.17682872098665856}, {:a=>-0.041129566738984664, :b=>-2.051411958423731, :c=>0.25475747658711684, :d=>0.2465315632393199}, {:a=>0.48160880006930906, :b=>-1.3979889999133637, :c=>0.82976968007624, :d=>0.9260914400901017}, {:a=>-0.36200133275602875, :b=>-2.452501665945036, :c=>-0.09820146603163166, :d=>-0.1706017325828374}, {:a=>0.41389593050797163, :b=>-1.4826300868650355, :c=>0.7552855235587688, :d=>0.8380647096603631}, {:a=>0.09805892231146897, :b=>-1.8774263471106638, :c=>0.40786481454261586, :d=>0.42747659900490964}, {:a=>2.146824957328515, :b=>0.6835311966606437, :c=>2.661507453061367, :d=>3.09087244452707}, {:a=>1.1007869249503055, :b=>-0.6240163438121182, :c=>1.510865617445336, :d=>1.7310230024353972}, {:a=>-0.8471318889414402, :b=>-3.0589148611768002, :c=>-0.6318450778355844, :d=>-0.8012714556238723}, {:a=>-0.058450058835490905, :b=>-2.0730625735443637, :c=>0.23570493528095998, :d=>0.22401492351386182}, {:a=>0.13643439598117302, :b=>-1.8294570050235337, :c=>0.4500778355792903, :d=>0.4773647147755249}, {:a=>0.9435106224453507, :b=>-0.8206117219433118, :c=>1.3378616846898859, :d=>1.526563809178956}, {:a=>-1.4581157713052497, :b=>-3.8226447141315623, :c=>-1.3039273484357747, :d=>-1.5955505026968246}, {:a=>-0.6058286838141468, :b=>-2.7572858547676833, :c=>-0.3664115521955615, :d=>-0.48757728895839086}, {:a=>-1.0479018346632465, :b=>-3.309877293329058, :c=>-0.8526920181295712, :d=>-1.0622723850622204}, {:a=>-0.9781128313281735, :b=>-3.2226410391602167, :c=>-0.775924114460991, :d=>-0.9715466807266255}, {:a=>-0.19333622926018645, :b=>-2.241670286575233, :c=>0.08733014781379486, :d=>0.0486629019617576}, {:a=>-0.27292545159321824, :b=>-2.341156814491523, :c=>-0.00021799675254008388, :d=>-0.054803087071183754}, {:a=>0.6648493335258103, :b=>-1.1689383330927372, :c=>1.0313342668783914, :d=>1.1643041335835533}, {:a=>-0.7541871025197562, :b=>-2.9427338781496952, :c=>-0.5296058127717318, :d=>-0.6804432332756831}, {:a=>-0.8274895127361123, :b=>-3.03436189092014, :c=>-0.6102384640097236, :d=>-0.7757363665569459}, {:a=>-0.5610132016427187, :b=>-2.7012665020533984, :c=>-0.3171145218069907, :d=>-0.42931716213553434}, {:a=>-0.8636335965165334, :b=>-3.0795419956456667, :c=>-0.6499969561681869, :d=>-0.8227236754714933}, {:a=>-0.873044113480879, :b=>-3.0913051418510986, :c=>-0.6603485248289669, :d=>-0.8349573475251426}, {:a=>-1.0591983088594124, :b=>-3.3239978860742654, :c=>-0.8651181397453536, :d=>-1.076957801517236}, {:a=>-1.443428109709142, :b=>-3.8042851371364272, :c=>-1.2877709206800563, :d=>-1.5764565426218846}, {:a=>-0.31626102423895236, :b=>-2.3953262802986903, :c=>-0.04788712666284761, :d=>-0.1111393315106381}, {:a=>1.1438396409606475, :b=>-0.5702004487991907, :c=>1.5582236050567124, :d=>1.7869915332488417}, {:a=>0.3533718456308704, :b=>-1.558285192961412, :c=>0.6887090301939574, :d=>0.7593833993201315}, {:a=>-0.2229286711814707, :b=>-2.2786608389768386, :c=>0.0547784617003822, :d=>0.010192727464088058}, {:a=>1.1299887577838978, :b=>-0.5875140527701277, :c=>1.5429876335622879, :d=>1.7689853851190673}, {:a=>0.9569234803784444, :b=>-0.8038456495269446, :c=>1.352615828416289, :d=>1.5440005244919779}, {:a=>0.051111125800587846, :b=>-1.9361110927492653, :c=>0.3562222383806466, :d=>0.3664444635407642}, {:a=>0.2542659085067284, :b=>-1.6821676143665896, :c=>0.5796924993574013, :d=>0.630545681058747}, {:a=>0.027682844289215615, :b=>-1.9653964446384804, :c=>0.33045112871813714, :d=>0.3359876975759803}, {:a=>-1.2499008816505293, :b=>-3.5623761020631615, :c=>-1.0748909698155822, :d=>-1.3248711461456881}, {:a=>0.26592869663429636, :b=>-1.6675891292071297, :c=>0.592521566297726, :d=>0.6457073056245852}, {:a=>0.24085889216755807, :b=>-1.6989263847905525, :c=>0.5649447813843138, :d=>0.6131165598178254}, {:a=>0.07641067235953757, :b=>-1.904486659550578, :c=>0.3840517395954913, :d=>0.39933387406739884}, {:a=>0.8506988058278259, :b=>-0.9366264927152177, :c=>1.2357686864106086, :d=>1.4059084475761736}, {:a=>-1.1524366092399716, :b=>-3.4405457615499646, :c=>-0.9676802701639688, :d=>-1.198167592011963}, {:a=>-0.8664817129061625, :b=>-3.083102141132703, :c=>-0.6531298841967788, :d=>-0.8264262267780111}, {:a=>-1.2738845576271267, :b=>-3.5923556970339083, :c=>-1.1012730133898394, :d=>-1.3560499249152647}, {:a=>0.06916627229281333, :b=>-1.9135421596339834, :c=>0.37608289952209467, :d=>0.3899161539806573}, {:a=>-1.4619950259176924, :b=>-3.8274937823971156, :c=>-1.3081945285094616, :d=>-1.6005935336930002}, {:a=>-0.2862786978794479, :b=>-2.3578483723493098, :c=>-0.014906567667392678, :d=>-0.07216230724328226}, {:a=>-0.4133501149988696, :b=>-2.516687643748587, :c=>-0.1546851264987566, :d=>-0.23735514949853048}, {:a=>-0.6255988267614132, :b=>-2.7819985334517665, :c=>-0.38815870943755465, :d=>-0.5132784747898371}, {:a=>0.05072399201101295, :b=>-1.936595009986234, :c=>0.35579639121211426, :d=>0.3659411896143168}, {:a=>0.5253678257588882, :b=>-1.34329021780139, :c=>0.877904608334777, :d=>0.9829781734865546}, {:a=>1.4219507542131447, :b=>-0.2225615572335693, :c=>1.8641458296344593, :d=>2.148535980477088}, {:a=>0.601957744466384, :b=>-1.2475528194170202, :c=>0.9621535189130224, :d=>1.082545067806299}, {:a=>-0.472728370106886, :b=>-2.5909104626336075, :c=>-0.2200012071175747, :d=>-0.31454688113895185}, {:a=>-1.151162053880973, :b=>-3.4389525673512162, :c=>-0.9662782592690704, :d=>-1.196510670045265}, {:a=>-0.22154124169674774, :b=>-2.2769265521209348, :c=>0.05630463413357745, :d=>0.011996385794227904}, {:a=>0.6783178166349553, :b=>-1.152102729206306, :c=>1.0461495982984508, :d=>1.181813161625442}, {:a=>-1.181798292169872, :b=>-3.47724786521234, :c=>-0.9999781213868593, :d=>-1.2363377798208335}, {:a=>-0.33258267506567685, :b=>-2.4157283438320962, :c=>-0.0658409425722446, :d=>-0.1323574775853799}, {:a=>-0.605887501030617, :b=>-2.757359376288271, :c=>-0.3664762511336787, :d=>-0.4876537513398021}, {:a=>1.382653605263281, :b=>-0.27168299342089886, :c=>1.8209189657896092, :d=>2.0974496868422654}, {:a=>-0.2894743771880858, :b=>-2.3618429714851072, :c=>-0.018421814906894374, :d=>-0.07631669034451155}, {:a=>-0.40694416292433344, :b=>-2.508680203655417, :c=>-0.14763857921676682, :d=>-0.2290274118016335}, {:a=>1.1950292545019716, :b=>-0.5062134318725355, :c=>1.614532179952169, :d=>1.8535380308525633}, {:a=>-0.6999751840084729, :b=>-2.874968980010591, :c=>-0.46997270240932026, :d=>-0.6099677392110148}, {:a=>0.48563077606044813, :b=>-1.39296152992444, :c=>0.834193853666493, :d=>0.9313200088785827}, {:a=>1.1199641180485946, :b=>-0.6000448524392568, :c=>1.5319605298534542, :d=>1.755953353463173}, {:a=>1.1938479641659057, :b=>-0.507690044792618, :c=>1.6132327605824963, :d=>1.8520023534156775}, {:a=>-1.1134505562694321, :b=>-3.3918131953367903, :c=>-0.9247956118963754, :d=>-1.1474857231502618}, {:a=>-0.5568373177465797, :b=>-2.6960466471832247, :c=>-0.31252104952123777, :d=>-0.4238885130705537}, {:a=>0.4243422569131077, :b=>-1.4695721788586154, :c=>0.7667764826044184, :d=>0.85164493398704}, {:a=>-0.889570590202704, :b=>-3.11196323775338, :c=>-0.6785276492229746, :d=>-0.8564417672635152}, {:a=>0.3603009809739519, :b=>-1.5496237737825602, :c=>0.6963310790713471, :d=>0.7683912752661375}, {:a=>0.9477843379421499, :b=>-0.8152695775723127, :c=>1.342562771736365, :d=>1.532119639324795}, {:a=>-1.7139125337521608, :b=>-4.142390667190201, :c=>-1.585303787127377, :d=>-1.928086293877809}, {:a=>1.133522771537749, :b=>-0.5830965355778139, :c=>1.546875048691524, :d=>1.7735796029990738}, {:a=>-0.1531760979450203, :b=>-2.1914701224312756, :c=>0.13150629226047766, :d=>0.1008710726714736}, {:a=>-0.11809694791897989, :b=>-2.1476211848987248, :c=>0.17009335728912212, :d=>0.14647396770532614}, {:a=>-2.1429175700215275, :b=>-4.678646962526909, :c=>-2.0572093270236804, :d=>-2.485792841027986}, {:a=>0.455934355005195, :b=>-1.4300820562435064, :c=>0.8015277905057145, :d=>0.8927146615067536}, {:a=>2.1515647456082188, :b=>0.6894559320102731, :c=>2.6667212201690407, :d=>3.0970341692906844}, {:a=>-0.42521915300951074, :b=>-2.5315239412618884, :c=>-0.16774106831046187, :d=>-0.25278489891236394}, {:a=>2.187629490163053, :b=>0.7345368627038162, :c=>2.7063924391793583, :d=>3.143918337211969}, {:a=>-0.509110809264556, :b=>-2.636388511580695, :c=>-0.2600218901910117, :d=>-0.36184405204392284}, {:a=>0.6233364296278733, :b=>-1.2208294629651584, :c=>0.9856700725906606, :d=>1.1103373585162353}, {:a=>-1.0030718304179629, :b=>-3.2538397880224537, :c=>-0.8033790134597592, :d=>-1.0039933795433518}, {:a=>-0.6754184588581503, :b=>-2.8442730735726878, :c=>-0.44296030474396547, :d=>-0.5780439965155955}, {:a=>0.40464413148576844, :b=>-1.4941948356427894, :c=>0.7451085446343453, :d=>0.826037370931499}, {:a=>-1.9333306256177496, :b=>-4.416663282022187, :c=>-1.8266636881795246, :d=>-2.2133298133030745}, {:a=>-0.22427990427401265, :b=>-2.280349880342516, :c=>0.05329210529858605, :d=>0.008436124443783555}, {:a=>0.006315896988800497, :b=>-1.9921051287639995, :c=>0.3069474866876805, :d=>0.3082106660854406}, {:a=>-2.3093952173569687, :b=>-4.886744021696211, :c=>-2.240334739092666, :d=>-2.7022137825640598}, {:a=>0.31720263212071464, :b=>-1.6034967098491066, :c=>0.6489228953327861, :d=>0.712363421756929}, {:a=>-1.7704847227474507, :b=>-4.213105903434313, :c=>-1.6475331950221959, :d=>-2.0016301395716862}, {:a=>-0.7086590052669006, :b=>-2.8858237565836258, :c=>-0.4795249057935908, :d=>-0.6212567068469708}, {:a=>-0.08475337425139798, :b=>-2.1059417178142477, :c=>0.2067712883234622, :d=>0.18982061347318263}, {:a=>1.3826405708375966, :b=>-0.27169928645300434, :c=>1.8209046279213565, :d=>2.0974327420888756}, {:a=>-1.624953336263618, :b=>-4.031191670329522, :c=>-1.4874486698899798, :d=>-1.8124393371427032}, {:a=>0.37363924385007863, :b=>-1.5329509451874017, :c=>0.7110031682350866, :d=>0.7857310170051022}, {:a=>-1.2721754013634174, :b=>-3.590219251704272, :c=>-1.0993929414997592, :d=>-1.3538280217724428}, {:a=>-0.9145235932208563, :b=>-3.1431544915260705, :c=>-0.7059759525429419, :d=>-0.8888806711871131}, {:a=>-0.6916515993919785, :b=>-2.864564499239973, :c=>-0.46081675933117644, :d=>-0.5991470792095721}, {:a=>0.16420642356175208, :b=>-1.7947419705478098, :c=>0.48062706591792725, :d=>0.5134683506302777}, {:a=>-0.14433309136404585, :b=>-2.1804163642050574, :c=>0.14123359949954956, :d=>0.11236698122674038}, {:a=>-0.5890589573258609, :b=>-2.736323696657326, :c=>-0.347964853058447, :d=>-0.46577664452361917}, {:a=>-0.45847456232400424, :b=>-2.5730932029050053, :c=>-0.2043220185564047, :d=>-0.2960169310212056}, {:a=>-0.0927803359075647, :b=>-2.115975419884456, :c=>0.19794163050167882, :d=>0.17938556332016586}, {:a=>-0.12533031594613528, :b=>-2.156662894932669, :c=>0.16213665245925116, :d=>0.1370705892700241}, {:a=>1.7477272706241045, :b=>0.18465908828013067, :c=>2.222499997686515, :d=>2.5720454518113356}, {:a=>-0.16004947925460355, :b=>-2.2000618490682546, :c=>0.12394557281993607, :d=>0.09193567696901536}, {:a=>0.2470156750585775, :b=>-1.6912304061767782, :c=>0.5717172425644352, :d=>0.6211203775761507}, {:a=>0.5997926992302597, :b=>-1.2502591259621756, :c=>0.9597719691532858, :d=>1.0797305089993376}, {:a=>1.5517608775984673, :b=>-0.06029890300191609, :c=>2.0069369653583142, :d=>2.317289140878007}, {:a=>0.2887962054008024, :b=>-1.639004743248997, :c=>0.6176758259408827, :d=>0.6754350670210432}, {:a=>0.5067134709046114, :b=>-1.3666081613692358, :c=>0.8573848179950725, :d=>0.9587275121759948}, {:a=>-0.47258210954852553, :b=>-2.590727636935657, :c=>-0.21984032050337815, :d=>-0.31435674241308326}, {:a=>0.5083196081554114, :b=>-1.3646004898057358, :c=>0.8591515689709526, :d=>0.960815490602035}, {:a=>-1.2416194234210227, :b=>-3.5520242792762784, :c=>-1.065781365763125, :d=>-1.3141052504473296}, {:a=>1.66344644432276, :b=>0.07930805540344954, :c=>2.1297910887550358, :d=>2.462480377619588}, {:a=>-0.26931883296122344, :b=>-2.336648541201529, :c=>0.0037492837426541525, :d=>-0.050114482849590525}, {:a=>0.009057510779215261, :b=>-1.9886781115259808, :c=>0.3099632618571368, :d=>0.3117747640129798}, {:a=>1.3866052884188875, :b=>-0.26674338947639065, :c=>1.8252658172607765, :d=>2.1025868749445538}, {:a=>1.2032804736801042, :b=>-0.49589940789986997, :c=>1.6236085210481148, :d=>1.8642646157841356}, {:a=>0.6391316155450872, :b=>-1.2010854805686408, :c=>1.003044777099596, :d=>1.1308711002086134}, {:a=>-2.023015256967075, :b=>-4.528769071208844, :c=>-1.925316782663783, :d=>-2.329919834057198}, {:a=>1.4124353339579614, :b=>-0.23445583255254832, :c=>1.8536788673537576, :d=>2.1361659341453496}, {:a=>0.7661917339210607, :b=>-1.0422603325986741, :c=>1.1428109073131667, :d=>1.296049254097379}, {:a=>0.8931539328305037, :b=>-0.8835575839618703, :c=>1.2824693261135542, :d=>1.461100112679655}, {:a=>-1.6639613607878738, :b=>-4.079951700984842, :c=>-1.5303574968666613, :d=>-1.863149769024236}, {:a=>1.097614286497132, :b=>-0.6279821418785849, :c=>1.5073757151468454, :d=>1.7268985724462718}, {:a=>2.3691574344510253, :b=>0.9614467930637813, :c=>2.9060731778961277, :d=>3.379904664786333}, {:a=>-2.2488150699766645, :b=>-4.81101883747083, :c=>-2.1736965769743315, :d=>-2.6234595909696643}, {:a=>0.6071654879756607, :b=>-1.241043140030424, :c=>0.9678820367732268, :d=>1.089315134368359}, {:a=>-0.2113204224571532, :b=>-2.2641505280714416, :c=>0.06754753529713145, :d=>0.025283450805700824}, {:a=>0.24966179674116892, :b=>-1.6879227540735389, :c=>0.5746279764152858, :d=>0.6245603357635197}, {:a=>0.8105260658771911, :b=>-0.9868424176535111, :c=>1.1915786724649102, :d=>1.3536838856403486}, {:a=>-1.5065172623669467, :b=>-3.8831465779586836, :c=>-1.3571689886036415, :d=>-1.6584724410770308}, {:a=>-2.030251249168233, :b=>-4.537814061460291, :c=>-1.9332763740850563, :d=>-2.339326623918703}, {:a=>-0.609006201682274, :b=>-2.7612577521028427, :c=>-0.36990682185050155, :d=>-0.49170806218695634}, {:a=>1.0867395046053605, :b=>-0.6415756192432995, :c=>1.4954134550658966, :d=>1.7127613559869688}, {:a=>0.043390098008753396, :b=>-1.9457623774890582, :c=>0.34772910780962873, :d=>0.3564071274113794}, {:a=>-0.6173479435656646, :b=>-2.7716849294570807, :c=>-0.37908273792223107, :d=>-0.502552326635364}, {:a=>0.6481295427893715, :b=>-1.1898380715132857, :c=>1.0129424970683087, :d=>1.142568405626183}, {:a=>-0.7988254765360442, :b=>-2.998531845670055, :c=>-0.5787080241896487, :d=>-0.7384731194968575}, {:a=>-0.5723300090241126, :b=>-2.7154125112801406, :c=>-0.32956300992652393, :d=>-0.4440290117313464}, {:a=>1.3580873971421517, :b=>-0.3023907535723105, :c=>1.793896136856367, :d=>2.065513616284797}, {:a=>-0.9701556827297925, :b=>-3.2126946034122406, :c=>-0.7671712510027717, :d=>-0.9612023875487301}, {:a=>1.9820891287924325, :b=>0.4776114109905403, :c=>2.480298041671676, :d=>2.8767158674301623}, {:a=>-1.9627597350027992, :b=>-4.453449668753499, :c=>-1.859035708503079, :d=>-2.251587655503639}, {:a=>0.9332203394491781, :b=>-0.8334745756885273, :c=>1.3265423733940962, :d=>1.5131864412839318}, {:a=>0.8675638028554443, :b=>-0.9155452464306946, :c=>1.254320183140989, :d=>1.4278329437120778}, {:a=>-0.5581380114642872, :b=>-2.697672514330359, :c=>-0.313951812610716, :d=>-0.42557941490357337}, {:a=>-2.8623959989942622, :b=>-5.5779949987428274, :c=>-2.8486355988936887, :d=>-3.421114798692541}, {:a=>-0.8853235035052107, :b=>-3.1066543793815136, :c=>-0.673855853855732, :d=>-0.850920554556774}, {:a=>0.832045161189319, :b=>-0.9599435485133512, :c=>1.215249677308251, :d=>1.3816587095461148}, {:a=>1.876900864107672, :b=>0.34612608013459, :c=>2.3645909505184393, :d=>2.7399711233399735}, {:a=>-1.1750649041084995, :b=>-3.4688311301356243, :c=>-0.9925713945193495, :d=>-1.2275843753410494}, {:a=>0.9408034201928575, :b=>-0.8239957247589282, :c=>1.3348837622121432, :d=>1.5230444462507147}, {:a=>0.9372192265930815, :b=>-0.8284759667586481, :c=>1.33094114925239, :d=>1.5183849945710062}, {:a=>1.2546541145937349, :b=>-0.4316823567578314, :c=>1.6801195260531085, :d=>1.9310503489718553}, {:a=>-0.8865721916863456, :b=>-3.108215239607932, :c=>-0.6752294108549803, :d=>-0.8525438491922492}, {:a=>-0.18474094233095503, :b=>-2.2309261779136937, :c=>0.09678496343594944, :d=>0.05983677496975845}, {:a=>0.1816325614107338, :b=>-1.7729592982365827, :c=>0.4997958175518072, :d=>0.5361223298339539}, {:a=>-0.42311158398189486, :b=>-2.5288894799773685, :c=>-0.16542274238008436, :d=>-0.2500450591764633}, {:a=>-1.0572470616101783, :b=>-3.3215588270127228, :c=>-0.8629717677711963, :d=>-1.074421180093232}, {:a=>-0.5111789506777565, :b=>-2.6389736883471957, :c=>-0.2622968457455323, :d=>-0.3645326358810836}, {:a=>-1.4408923724203468, :b=>-3.8011154655254336, :c=>-1.2849816096623816, :d=>-1.5731600841464508}, {:a=>0.6004766937582122, :b=>-1.2494041328022347, :c=>0.9605243631340334, :d=>1.0806197018856758}, {:a=>0.6864237959152376, :b=>-1.141970255105953, :c=>1.0550661755067614, :d=>1.192350934689809}, {:a=>-2.4390556959631, :b=>-5.048819619953875, :c=>-2.3829612655594103, :d=>-2.87077240475203}, {:a=>1.1296424011205917, :b=>-0.5879469985992605, :c=>1.542606641232651, :d=>1.7685351214567693}, {:a=>0.17550283754054416, :b=>-1.7806214530743198, :c=>0.49305312129459855, :d=>0.5281536888027074}, {:a=>0.1744627392203638, :b=>-1.7819215759745453, :c=>0.4919090131424002, :d=>0.5268015609864729}, {:a=>-0.9679869942307389, :b=>-3.2099837427884235, :c=>-0.7647856936538129, :d=>-0.9583830924999606}, {:a=>-0.020484090079774402, :b=>-2.025605112599718, :c=>0.27746750091224814, :d=>0.2733706828962933}, {:a=>1.1145569292764237, :b=>-0.6068038384044705, :c=>1.5260126222040662, :d=>1.7489240080593509}, {:a=>-2.0035654710435535, :b=>-4.504456838804442, :c=>-1.9039220181479088, :d=>-2.3046351123566198}, {:a=>0.19594688650049005, :b=>-1.7550663918743874, :c=>0.515541575150539, :d=>0.5547309524506371}, {:a=>-2.6218560514215716, :b=>-5.277320064276964, :c=>-2.584041656563729, :d=>-3.1084128668480435}, {:a=>0.5377387178749082, :b=>-1.3278266026563648, :c=>0.891512589662399, :d=>0.9990603332373806}, {:a=>0.7565018210508343, :b=>-1.0543727236864573, :c=>1.1321520031559178, :d=>1.2834523673660847}, {:a=>2.204068122819468, :b=>0.7550851535243348, :c=>2.724474935101415, :d=>3.165288559665308}, {:a=>-1.3760525541779394, :b=>-3.7200656927224243, :c=>-1.2136578095957333, :d=>-1.4888683204313211}, {:a=>-0.5902090216663415, :b=>-2.7377612770829267, :c=>-0.34922992383297574, :d=>-0.467271728166244}, {:a=>-0.10970302250700545, :b=>-2.1371287781337567, :c=>0.17932667524229398, :d=>0.1573860707408929}, {:a=>2.655860669926077, :b=>1.319825837407596, :c=>3.2214467369186846, :d=>3.7526188709039}, {:a=>0.30110121429830716, :b=>-1.623623482127116, :c=>0.6312113357281379, :d=>0.6914315785877994}, {:a=>-1.0906910521112072, :b=>-3.363363815139009, :c=>-0.899760157322328, :d=>-1.1178983677445693}, {:a=>0.6934576993726165, :b=>-1.1331778757842295, :c=>1.0628034693098782, :d=>1.2014950091844014}, {:a=>0.24481538484758067, :b=>-1.6939807689405242, :c=>0.5692969233323387, :d=>0.6182600003018548}, {:a=>-0.8743612943283509, :b=>-3.0929516179104386, :c=>-0.6617974237611861, :d=>-0.836669682626856}, {:a=>-1.4815936711677087, :b=>-3.8519920889596357, :c=>-1.3297530382844795, :d=>-1.6260717725180214}, {:a=>1.0993855627140567, :b=>-0.6257680466074291, :c=>1.5093241189854625, :d=>1.7292012315282739}, {:a=>0.3691254085127554, :b=>-1.5385932393590558, :c=>0.706037949364031, :d=>0.779863031066582}, {:a=>0.18519725621559766, :b=>-1.768503429730503, :c=>0.5037169818371574, :d=>0.540756433080277}, {:a=>-0.5928533275314141, :b=>-2.7410666594142676, :c=>-0.3521386602845555, :d=>-0.4707093257908383}, {:a=>-1.1737269523773, :b=>-3.467158690471625, :c=>-0.99109964761503, :d=>-1.22584503809049}, {:a=>0.8869335800180885, :b=>-0.8913330249773894, :c=>1.2756269380198975, :d=>1.4530136540235152}, {:a=>-1.4570231217602907, :b=>-3.8212789022003633, :c=>-1.30272543393632, :d=>-1.594130058288378}, {:a=>0.22497709719277145, :b=>-1.7187786285090356, :c=>0.5474748069120486, :d=>0.5924702263506029}, {:a=>0.12610853452385834, :b=>-1.842364331845177, :c=>0.4387193879762442, :d=>0.46394109488101587}, {:a=>-0.03417860082702564, :b=>-2.042723251033782, :c=>0.2624035390902718, :d=>0.2555678189248667}, {:a=>0.8349989736905463, :b=>-0.9562512828868173, :c=>1.218498871059601, :d=>1.3854986657977102}, {:a=>-0.05893658896082991, :b=>-2.0736707362010374, :c=>0.23516975214308708, :d=>0.2233824343509211}, {:a=>0.3319601536834926, :b=>-1.5850498078956343, :c=>0.6651561690518418, :d=>0.7315481997885404}, {:a=>1.0067285406308752, :b=>-0.741589324211406, :c=>1.407401394693963, :d=>1.6087471028201379}, {:a=>3.977941809129133, :b=>2.9724272614114158, :c=>4.675735990042046, :d=>5.471324351867873}, {:a=>0.007491920517562494, :b=>-1.9906350993530468, :c=>0.30824111256931874, :d=>0.30973949667283124}, {:a=>-1.863506039743389, :b=>-4.329382549679236, :c=>-1.749856643717728, :d=>-2.122557851666406}, {:a=>0.38306676377859794, :b=>-1.5211665452767527, :c=>0.7213734401564578, :d=>0.7979867929121773}, {:a=>0.07864131008453806, :b=>-1.9016983623943273, :c=>0.3865054410929919, :d=>0.4022337031098995}, {:a=>-0.5410630229765359, :b=>-2.67632877872067, :c=>-0.29516932527418954, :d=>-0.40338192986949667}, {:a=>-0.6525472334758307, :b=>-2.815684041844788, :c=>-0.41780195682341376, :d=>-0.5483114035185799}, {:a=>-0.09013590046806273, :b=>-2.1126698755850786, :c=>0.20085050948513097, :d=>0.18282332939151844}, {:a=>-0.6128371205336868, :b=>-2.7660464006671086, :c=>-0.3741208325870555, :d=>-0.49668825669379285}, {:a=>0.3587888386609661, :b=>-1.5515139516737924, :c=>0.6946677225270628, :d=>0.766425490259256}, {:a=>-0.4908520499540613, :b=>-2.613565062442577, :c=>-0.23993725494946744, :d=>-0.3381076649402797}, {:a=>0.5571102129961962, :b=>-1.3036122337547549, :c=>0.912821234295816, :d=>1.0242432768950551}, {:a=>-1.4242086259419147, :b=>-3.7802607824273933, :c=>-1.2666294885361062, :d=>-1.551471213724489}, {:a=>-1.0160336479699723, :b=>-3.2700420599624653, :c=>-0.8176370127669697, :d=>-1.020843742360964}, {:a=>-1.2437621825287613, :b=>-3.554702728160952, :c=>-1.0681384007816375, :d=>-1.3168908372873895}, {:a=>0.13379081133703946, :b=>-1.8327614858287007, :c=>0.4471698924707434, :d=>0.4739280547381513}, {:a=>0.8040348736797712, :b=>-0.9949564079002859, :c=>1.1844383610477485, :d=>1.3452453357837026}, {:a=>0.22516595642027956, :b=>-1.7185425544746504, :c=>0.5476825520623075, :d=>0.5927157433463635}, {:a=>-0.8901763185377826, :b=>-3.112720398172228, :c=>-0.6791939503915609, :d=>-0.8572292140991173}, {:a=>-2.142133975449686, :b=>-4.677667469312107, :c=>-2.0563473729946553, :d=>-2.4847741680845923}, {:a=>-1.3495120265620573, :b=>-3.6868900332025714, :c=>-1.184463229218263, :d=>-1.4543656345306744}, {:a=>1.1025116074212915, :b=>-0.6218604907233858, :c=>1.5127627681634208, :d=>1.7332650896476791}, {:a=>-0.03330606458239804, :b=>-2.0416325807279976, :c=>0.26336332895936215, :d=>0.2567021160428825}, {:a=>-0.730386016341018, :b=>-2.9129825204262723, :c=>-0.5034246179751198, :d=>-0.6495018212433235}, {:a=>-0.5678065792613055, :b=>-2.709758224076632, :c=>-0.32458723718743615, :d=>-0.4381485530396972}, {:a=>-1.0054966208549476, :b=>-3.256870776068684, :c=>-0.8060462829404424, :d=>-1.007145607111432}, {:a=>0.6803710989915149, :b=>-1.1495361262606063, :c=>1.0484082088906665, :d=>1.1844824286889695}, {:a=>-0.043826411275519145, :b=>-2.054783014094399, :c=>0.25179094759692894, :d=>0.2430256653418251}, {:a=>0.4620407441391826, :b=>-1.4224490698260217, :c=>0.8082448185531008, :d=>0.9006529673809374}, {:a=>-0.44549613087432993, :b=>-2.5568701635929125, :c=>-0.190045743961763, :d=>-0.2791449701366289}, {:a=>-0.401385031402095, :b=>-2.5017312892526187, :c=>-0.1415235345423046, :d=>-0.22180054082272355}, {:a=>0.43110059385045696, :b=>-1.461124257686929, :c=>0.7742106532355026, :d=>0.8604307720055941}, {:a=>0.04171643560058443, :b=>-1.9478544554992694, :c=>0.34588807916064285, :d=>0.35423136628075974}, {:a=>1.0392003287418665, :b=>-0.700999589072667, :c=>1.4431203616160533, :d=>1.6509604273644265}, {:a=>0.730608592986804, :b=>-1.086739258766495, :c=>1.1036694522854844, :d=>1.2497911708828453}, {:a=>-0.03169875798150226, :b=>-2.039623447476878, :c=>0.2651313662203475, :d=>0.25879161462404704}, {:a=>0.9697930604237365, :b=>-0.7877586744703295, :c=>1.3667723664661102, :d=>1.5607309785508574}, {:a=>-0.06816729629395223, :b=>-2.0852091203674403, :c=>0.22501597407665253, :d=>0.21138251481786208}, {:a=>0.5054381874376227, :b=>-1.3682022657029718, :c=>0.855982006181385, :d=>0.9570696436689095}, {:a=>0.7850822558695597, :b=>-1.0186471801630503, :c=>1.1635904814565157, :d=>1.3206069326304277}, {:a=>0.703907141040828, :b=>-1.120116073698965, :c=>1.0742978551449107, :d=>1.2150792833530764}, {:a=>-0.5586300091709416, :b=>-2.698287511463677, :c=>-0.3144930100880358, :d=>-0.42621901192222417}, {:a=>0.9564427317854939, :b=>-0.8044465852681326, :c=>1.3520870049640434, :d=>1.5433755513211422}, {:a=>-1.0499960612521066, :b=>-3.312495076565133, :c=>-0.8549956673773174, :d=>-1.0649948796277386}, {:a=>-0.22892346982449624, :b=>-2.28615433728062, :c=>0.04818418319305412, :d=>0.0023994892281548608}, {:a=>1.599721982186952, :b=>-0.0003475222663100741, :c=>2.0596941804056472, :d=>2.3796385768430373}, {:a=>-0.32730363800959084, :b=>-2.4091295475119887, :c=>-0.060034001810549964, :d=>-0.1254947294124681}, {:a=>0.579215343658329, :b=>-1.2759808204270886, :c=>0.937136878024162, :d=>1.0529799467558278}, {:a=>-0.6766951722187722, :b=>-2.845868965273465, :c=>-0.4443646894406495, :d=>-0.5797037238844038}, {:a=>-1.3099279834733797, :b=>-3.6374099793417245, :c=>-1.1409207818207177, :d=>-1.4029063785153937}, {:a=>-2.616515628473426, :b=>-5.270644535591782, :c=>-2.578167191320769, :d=>-3.101470317015454}, {:a=>0.8095131389813927, :b=>-0.9881085762732593, :c=>1.190464452879532, :d=>1.3523670806758106}, {:a=>0.13908072575856598, :b=>-1.8261490928017925, :c=>0.45298879833442257, :d=>0.4808049434861358}, {:a=>-1.7474697583768166, :b=>-4.18433719797102, :c=>-1.6222167342144984, :d=>-1.9717106858898614}, {:a=>0.16120789407725913, :b=>-1.7984901324034261, :c=>0.47732868348498503, :d=>0.5095702623004369}, {:a=>0.07873555806708926, :b=>-1.9015805524161384, :c=>0.3866091138737982, :d=>0.40235622548721606}, {:a=>-0.7345370702131561, :b=>-2.918171337766445, :c=>-0.5079907772344718, :d=>-0.654898191277103}, {:a=>-0.8714416299439324, :b=>-3.089302037429915, :c=>-0.6585857929383256, :d=>-0.832874118927112}, {:a=>1.5990310460881971, :b=>-0.0012111923897537569, :c=>2.058934150697017, :d=>2.3787403599146564}, {:a=>1.0053090843659676, :b=>-0.7433636445425407, :c=>1.4058399928025644, :d=>1.606901809675758}, {:a=>0.37905883118277856, :b=>-1.5261764610215267, :c=>0.7169647143010565, :d=>0.7927764805376121}, {:a=>-0.7616616682556665, :b=>-2.952077085319583, :c=>-0.5378278350812333, :d=>-0.6901601687323664}, {:a=>0.10812683949624337, :b=>-1.8648414506296958, :c=>0.4189395234458677, :d=>0.44056489134511634}, {:a=>1.5335480418588792, :b=>-0.08306494767640116, :c=>1.9869028460447673, :d=>2.293612454416543}, {:a=>1.7927132998024586, :b=>0.24089162475307324, :c=>2.2719846297827044, :d=>2.630527289743196}, {:a=>-2.030724610155223, :b=>-4.538405762694028, :c=>-1.9337970711707453, :d=>-2.33994199320179}, {:a=>-0.7648479314092288, :b=>-2.956059914261536, :c=>-0.5413327245501518, :d=>-0.6943023108319974}, {:a=>1.7957976848112105, :b=>0.24474710601401295, :c=>2.2753774532923314, :d=>2.6345369902545737}, {:a=>-0.005126322333389425, :b=>-2.0064079029167368, :c=>0.29436104543327163, :d=>0.29333578096659374}, {:a=>-0.047104408904387905, :b=>-2.058880511130485, :c=>0.2481851502051733, :d=>0.2387642684242957}, {:a=>1.4373802501381963, :b=>-0.20327468732725484, :c=>1.8811182751520161, :d=>2.1685943251796553}, {:a=>-1.4490221415310993, :b=>-3.811277676913874, :c=>-1.2939243556842093, :d=>-1.583728783990429}, {:a=>0.12854020808798372, :b=>-1.8393247398900203, :c=>0.4413942288967821, :d=>0.4671022705143788}, {:a=>0.0940183127057115, :b=>-1.8824771091178607, :c=>0.4034201439762827, :d=>0.42222380651742497}, {:a=>-1.8473339949148633, :b=>-4.309167493643579, :c=>-1.7320673944063498, :d=>-2.1015341933893223}, {:a=>1.9604881169961967, :b=>0.45061014624524587, :c=>2.4565369286958165, :d=>2.8486345520950556}, {:a=>2.2143474310408164, :b=>0.7679342888010203, :c=>2.735782174144898, :d=>3.1786516603530615}, {:a=>1.7138974237102858, :b=>0.1423717796378572, :c=>2.1852871660813142, :d=>2.5280666508233716}, {:a=>-0.692425980238593, :b=>-2.865532475298241, :c=>-0.4616685782624524, :d=>-0.600153774310171}, {:a=>-0.8343536280380226, :b=>-3.0429420350475285, :c=>-0.617788990841825, :d=>-0.7846597164494293}, {:a=>-0.13116710080245217, :b=>-2.1639588760030652, :c=>0.1557161891173026, :d=>0.12948276895681216}, {:a=>1.5434154585517372e-05, :b=>-1.9999807073067681, :c=>0.3000169775700441, :d=>0.3000200644009612}, {:a=>1.2836251377458423, :b=>-0.3954685778176972, :c=>1.7119876515204266, :d=>1.968712679069595}, {:a=>0.7046220125932524, :b=>-1.1192224842584344, :c=>1.0750842138525778, :d=>1.2160086163712283}, {:a=>0.04330825769054843, :b=>-1.9458646778868145, :c=>0.34763908345960326, :d=>0.356300734997713}, {:a=>-0.5597706584944878, :b=>-2.6997133231181096, :c=>-0.31574772434393666, :d=>-0.4277018560428342}, {:a=>0.2847197945874898, :b=>-1.6441002567656378, :c=>0.6131917740462388, :d=>0.6701357329637367}, {:a=>0.5646101339533437, :b=>-1.2942373325583203, :c=>0.9210711473486781, :d=>1.0339931741393469}, {:a=>-0.8213865198394084, :b=>-3.0267331497992602, :c=>-0.6035251718233492, :d=>-0.767802475791231}, {:a=>0.6216732765702332, :b=>-1.2229084042872085, :c=>0.9838406042272565, :d=>1.1081752595413032}, {:a=>0.7059732384595592, :b=>-1.117533451925551, :c=>1.076570562305515, :d=>1.217765209997427}, {:a=>-0.9491333758529835, :b=>-3.186416719816229, :c=>-0.744046713438282, :d=>-0.9338733886088786}, {:a=>-0.2521784062524143, :b=>-2.3152230078155176, :c=>0.02260375312234425, :d=>-0.02783192812813856}, {:a=>-0.2237735128557867, :b=>-2.279716891069733, :c=>0.0538491358586346, :d=>0.009094433287477277}, {:a=>-1.1391180724936778, :b=>-3.423897590617097, :c=>-0.9530298797430456, :d=>-1.1808534942417812}, {:a=>0.8712635889043419, :b=>-0.9109205138695728, :c=>1.2583899477947762, :d=>1.4326426655756446}, {:a=>-0.8592558737377706, :b=>-3.0740698421722135, :c=>-0.6451814611115476, :d=>-0.8170326358591018}, {:a=>0.6706550544978096, :b=>-1.161681181877738, :c=>1.0377205599475907, :d=>1.1718515708471524}, {:a=>0.2850976494902722, :b=>-1.6436279381371597, :c=>0.6136074144392994, :d=>0.6706269443373538}, {:a=>0.7981286260770192, :b=>-1.0023392174037262, :c=>1.1779414886847213, :d=>1.3375672139001251}, {:a=>-1.048647679145734, :b=>-3.3108095989321673, :c=>-0.8535124470603075, :d=>-1.0632419828894542}, {:a=>-1.3132272444356508, :b=>-3.6415340555445637, :c=>-1.144549968879216, :d=>-1.407195417766346}, {:a=>-1.6470486144765388, :b=>-4.0588107680956735, :c=>-1.5117534759241928, :d=>-1.8411631988195005}, {:a=>1.6181069128363883, :b=>0.022633641045485042, :c=>2.0799176041200274, :d=>2.4035389866873045}, {:a=>-0.23427981556573368, :b=>-2.2928497694571672, :c=>0.04229220287769292, :d=>-0.004563760235453795}, {:a=>0.7618798016208688, :b=>-1.047650247973914, :c=>1.1380677817829556, :d=>1.2904437421071295}, {:a=>1.1829272643290896, :b=>-0.521340919588638, :c=>1.6012199907619986, :d=>1.8378054436278166}, {:a=>-0.740330437263805, :b=>-2.9254130465797563, :c=>-0.5143634809901856, :d=>-0.6624295684429464}, {:a=>0.06607841347816937, :b=>-1.9174019831522884, :c=>0.3726862548259863, :d=>0.38590193752162016}, {:a=>-0.03415415364341394, :b=>-2.0426926920542674, :c=>0.26243043099224467, :d=>0.2555996002635619}, {:a=>-0.2664768458570193, :b=>-2.3330960573212742, :c=>0.006875469557278746, :d=>-0.046419899614125126}, {:a=>-1.4056142527919462, :b=>-3.757017815989933, :c=>-1.2461756780711408, :d=>-1.52729852862953}, {:a=>-0.001298063177704676, :b=>-2.001622578972131, :c=>0.29857213050452486, :d=>0.2983125178689839}, {:a=>0.31609900845328875, :b=>-1.604876239433389, :c=>0.6477089092986177, :d=>0.7109287109892755}, {:a=>-1.1220980364581705, :b=>-3.4026225455727133, :c=>-0.9343078401039877, :d=>-1.1587274473956217}, {:a=>-0.2911050631658347, :b=>-2.3638813289572935, :c=>-0.020215569482418205, :d=>-0.07843658211558513}, {:a=>0.21137142284141935, :b=>-1.735785721448226, :c=>0.5325085651255613, :d=>0.5747828496938452}, {:a=>-1.4525447190451193, :b=>-3.815680898806399, :c=>-1.2977991909496314, :d=>-1.5883081347586552}, {:a=>0.049201068413660495, :b=>-1.9384986644829243, :c=>0.3541211752550265, :d=>0.36396138893775865}, {:a=>-0.48579224230449447, :b=>-2.607240302880618, :c=>-0.23437146653494395, :d=>-0.3315299149958429}, {:a=>0.017331369457763063, :b=>-1.978335788177796, :c=>0.31906450640353934, :d=>0.32253078029509197}, {:a=>-1.5259293239756122, :b=>-3.9074116549695153, :c=>-1.3785222563731736, :d=>-1.6837081211682958}, {:a=>-0.41494921126068635, :b=>-2.518686514075858, :c=>-0.15644413238675503, :d=>-0.23943397463889232}, {:a=>-0.21137338464225341, :b=>-2.2642167308028167, :c=>0.06748927689352122, :d=>0.025214599965070528}, {:a=>1.5215127690328019, :b=>-0.09810903870899779, :c=>1.9736640459360821, :d=>2.2779665997426424}, {:a=>0.7363799583094125, :b=>-1.0795250521132345, :c=>1.1100179541403539, :d=>1.2572939458022363}, {:a=>0.7487479546474847, :b=>-1.0640650566906442, :c=>1.1236227501122331, :d=>1.2733723410417301}, {:a=>0.1750905091492039, :b=>-1.7811368635634952, :c=>0.4925995600641243, :d=>0.5276176618939651}, {:a=>0.4287567789493793, :b=>-1.464054026313276, :c=>0.7716324568443172, :d=>0.857383812634193}, {:a=>-0.9404300796799218, :b=>-3.1755375995999024, :c=>-0.734473087647914, :d=>-0.9225591035838983}, {:a=>1.2442804929786322, :b=>-0.4446493837767098, :c=>1.6687085422764956, :d=>1.917564640872222}, {:a=>1.1115412955959785, :b=>-0.6105733805050271, :c=>1.5226954251555764, :d=>1.745003684274772}, {:a=>-1.43724231328088, :b=>-3.7965528916010998, :c=>-1.2809665446089682, :d=>-1.5684150072651442}, {:a=>0.187220563533967, :b=>-1.7659742955825413, :c=>0.5059426198873637, :d=>0.543386732594157}, {:a=>-1.282150547398106, :b=>-3.602688184247633, :c=>-1.1103656021379167, :d=>-1.366795711617538}, {:a=>-0.919054795668642, :b=>-3.1488184945858024, :c=>-0.7109602752355062, :d=>-0.8947712343692347}, {:a=>2.3934062405600818, :b=>0.991757800700102, :c=>2.93274686461609, :d=>3.4114281127281063}, {:a=>-1.0909501930885293, :b=>-3.3636877413606614, :c=>-0.9000452123973823, :d=>-1.1182352510150881}, {:a=>0.829320568785889, :b=>-0.9633492890176387, :c=>1.212252625664478, :d=>1.3781167394216558}, {:a=>0.6274981089694872, :b=>-1.215627363788141, :c=>0.990247919866436, :d=>1.1157475416603333}, {:a=>-0.5925470506429038, :b=>-2.7406838133036295, :c=>-0.35180175570719424, :d=>-0.470311165835775}, {:a=>-0.2847699628292002, :b=>-2.3559624535365002, :c=>-0.01324695911212026, :d=>-0.07020095167796025}, {:a=>0.574009376656379, :b=>-1.2824882791795265, :c=>0.9314103143220169, :d=>1.0462121896532928}, {:a=>0.0925081653049623, :b=>-1.884364793368797, :c=>0.40175898183545855, :d=>0.42026061489645095}, {:a=>-0.15619830682708133, :b=>-2.1952478835338516, :c=>0.12818186249021052, :d=>0.09694220112479426}, {:a=>0.5622615720185602, :b=>-1.2971730349767998, :c=>0.9184877292204163, :d=>1.0309400436241283}, {:a=>-1.2263622206998248, :b=>-3.532952775874781, :c=>-1.0489984427698074, :d=>-1.2942708869097723}, {:a=>0.0012697518060871915, :b=>-1.998412810242391, :c=>0.3013967269866959, :d=>0.30165067734791334}, {:a=>0.32611508346872065, :b=>-1.592356145664099, :c=>0.6587265918155927, :d=>0.7239496085093369}, {:a=>0.9664714773343679, :b=>-0.7919106533320401, :c=>1.363118625067805, :d=>1.5564129205346784}, {:a=>-0.583352964723557, :b=>-2.729191205904446, :c=>-0.34168826119591283, :d=>-0.4583588541406242}, {:a=>-0.20961805457415716, :b=>-2.2620225682176964, :c=>0.06942013996842708, :d=>0.027496529053595675}, {:a=>0.8220919604192063, :b=>-0.9723850494759922, :c=>1.204301156461127, :d=>1.3687195485449684}, {:a=>-2.307808083404959, :b=>-4.884760104256198, :c=>-2.2385888917454553, :d=>-2.700150508426447}, {:a=>-0.5956339335441513, :b=>-2.744542416930189, :c=>-0.3551973268985665, :d=>-0.47432411360739674}, {:a=>-0.0015177055955397478, :b=>-2.0018971319944248, :c=>0.29833052384490627, :d=>0.2980269827257983}, {:a=>0.17004837343063095, :b=>-1.7874395332117112, :c=>0.487053210773694, :d=>0.5210628854598203}, {:a=>0.9505177699336577, :b=>-0.811852787582928, :c=>1.3455695469270235, :d=>1.535673100913755}, {:a=>-0.7469676784428737, :b=>-2.933709598053592, :c=>-0.5216644462871611, :d=>-0.6710579819757359}, {:a=>-0.5235943412665125, :b=>-2.6544929265831407, :c=>-0.27595377539316385, :d=>-0.3806726436464663}, {:a=>-0.23296400581253518, :b=>-2.291205007265669, :c=>0.04373959360621127, :d=>-0.002853207556295756}, {:a=>0.9343830990021874, :b=>-0.8320211262472659, :c=>1.3278214089024063, :d=>1.5146980287028438}, {:a=>-0.6922334714314935, :b=>-2.865291839289367, :c=>-0.4614568185746429, :d=>-0.5999035128609416}, {:a=>-0.5317176426028257, :b=>-2.6646470532535322, :c=>-0.2848894068631083, :d=>-0.3912329353836735}, {:a=>1.126755249043193, :b=>-0.591555938696009, :c=>1.5394307739475124, :d=>1.7647818237561508}, {:a=>-0.17462082691554243, :b=>-2.218276033644428, :c=>0.10791709039290331, :d=>0.07299292500979482}, {:a=>1.115391167520205, :b=>-0.6057610405997438, :c=>1.5269302842722257, :d=>1.7500085177762668}, {:a=>-0.3486397927971972, :b=>-2.4357997409964964, :c=>-0.08350377207691695, :d=>-0.15323173063635637}, {:a=>-0.6119204002748292, :b=>-2.7649005003435363, :c=>-0.3731124403023122, :d=>-0.49549652035727804}, {:a=>-1.0538936147965392, :b=>-3.317367018495674, :c=>-0.8592829762761931, :d=>-1.070061699235501}, {:a=>1.1736410046388606, :b=>-0.5329487442014245, :c=>1.5910051051027467, :d=>1.8257333060305188}, {:a=>-0.06649279926244656, :b=>-2.0831159990780583, :c=>0.2268579208113088, :d=>0.21355936095881944}, {:a=>-0.8244283971725007, :b=>-3.030535496465626, :c=>-0.6068712368897509, :d=>-0.771756916324251}, {:a=>-1.210017104623463, :b=>-3.5125213807793285, :c=>-1.0310188150858093, :d=>-1.2730222360105017}, {:a=>1.3535377756664548, :b=>-0.30807778041693146, :c=>1.7888915532331005, :d=>2.0595991083663914}, {:a=>-1.635152180815226, :b=>-4.043940226019032, :c=>-1.4986673988967487, :d=>-1.8256978350597939}, {:a=>-0.23503397600528672, :b=>-2.2937924700066086, :c=>0.041462626394184576, :d=>-0.005544168806872751}, {:a=>-0.6224917479842484, :b=>-2.7781146849803107, :c=>-0.3847409227826733, :d=>-0.5092392723795229}, {:a=>0.5400888382053037, :b=>-1.3248889522433704, :c=>0.8940977220258342, :d=>1.002115489666895}, {:a=>0.9701986557689136, :b=>-0.7872516802888581, :c=>1.367218521345805, :d=>1.5612582524995877}, {:a=>-0.8671653488215143, :b=>-3.0839566860268928, :c=>-0.6538818837036657, :d=>-0.8273149534679687}, {:a=>1.346822442753486, :b=>-0.3164719465581425, :c=>1.781504687028835, :d=>2.050869175579532}, {:a=>1.1597036110967156, :b=>-0.5503704861291057, :c=>1.5756739722063873, :d=>1.8076146944257303}, {:a=>2.3252822431740947, :b=>0.9066028039676182, :c=>2.8578104674915044, :d=>3.322866916126323}, {:a=>-0.24216837087596854, :b=>-2.302710463594961, :c=>0.03361479203643458, :d=>-0.014818882138759149}, {:a=>1.2439677077560611, :b=>-0.44504036530492375, :c=>1.6683644785316674, :d=>1.9171580200828795}, {:a=>-0.7182920907913121, :b=>-2.89786511348914, :c=>-0.49012129987044334, :d=>-0.6337797180287057}, {:a=>-0.2642481578854117, :b=>-2.3303101973567646, :c=>0.009327026326047039, :d=>-0.043522605251035296}, {:a=>0.7827337698186806, :b=>-1.0215827877266492, :c=>1.1610071468005487, :d=>1.317553900764285}, {:a=>0.7778405145207593, :b=>-1.027699356849051, :c=>1.1556245659728352, :d=>1.3111926688769873}, {:a=>0.20945955696431345, :b=>-1.7381755537946082, :c=>0.5304055126607448, :d=>0.5722974240536075}, {:a=>-0.3370424970334271, :b=>-2.4213031212917837, :c=>-0.07074674673676984, :d=>-0.13815524614345526}, {:a=>-0.5701009118676702, :b=>-2.7126261398345877, :c=>-0.32711100305443724, :d=>-0.4411311854279713}, {:a=>-1.6590417063547631, :b=>-4.073802132943454, :c=>-1.5249458769902395, :d=>-1.856754218261192}, {:a=>-1.0350207264558406, :b=>-3.293775908069801, :c=>-0.8385227991014248, :d=>-1.0455269443925927}, {:a=>0.285773398999364, :b=>-1.642783251250795, :c=>0.6143507388993004, :d=>0.6715054186991731}, {:a=>-1.0372591956702453, :b=>-3.2965739945878063, :c=>-0.8409851152372698, :d=>-1.0484369543713188}, {:a=>-0.6173548426930923, :b=>-2.771693553366365, :c=>-0.3790903269624016, :d=>-0.5025612955010199}, {:a=>-0.186969763940926, :b=>-2.2337122049261575, :c=>0.09433325966498138, :d=>0.056939306876796186}, {:a=>0.10675390211042751, :b=>-1.8665576223619655, :c=>0.41742929232147025, :d=>0.4387800727435558}, {:a=>-1.576985172008981, :b=>-3.9712314650112264, :c=>-1.434683689209879, :d=>-1.7500807236116753}, {:a=>0.8965231782947468, :b=>-0.8793460271315665, :c=>1.2861754961242216, :d=>1.465480131783171}, {:a=>-0.544717612804128, :b=>-2.6808970160051597, :c=>-0.2991893740845409, :d=>-0.4081328966453664}, {:a=>1.0778785395878143, :b=>-0.6526518255152323, :c=>1.485666393546596, :d=>1.7012421014641588}, {:a=>-0.618726915776086, :b=>-2.7734086447201074, :c=>-0.38059960735369464, :d=>-0.5043449905089117}, {:a=>0.2276095765224791, :b=>-1.715488029346901, :c=>0.550370534174727, :d=>0.5958924494792228}, {:a=>0.04194925452501962, :b=>-1.9475634318437254, :c=>0.34614417997752156, :d=>0.3545340308825255}, {:a=>-0.19030759318000162, :b=>-2.2378844914750022, :c=>0.09066164750199818, :d=>0.05260012886599788}, {:a=>1.9898795991394866, :b=>0.4873494989243583, :c=>2.4888675590534355, :d=>2.8868434788813326}, {:a=>-0.11852588834308557, :b=>-2.148157360428857, :c=>0.16962152282260584, :d=>0.14591634515398874}, {:a=>1.5706938796737946, :b=>-0.03663265040775676, :c=>2.0277632676411743, :d=>2.341902043575933}, {:a=>0.9346344944358731, :b=>-0.8317068819551587, :c=>1.3280979438794605, :d=>1.515024842766635}, {:a=>-0.5216884647444099, :b=>-2.652110580930512, :c=>-0.273857311218851, :d=>-0.37819500416773294}, {:a=>-1.2810710624552664, :b=>-3.601338828069083, :c=>-1.109178168700793, :d=>-1.3653923811918462}, {:a=>1.5284293075005928, :b=>-0.08946336562425916, :c=>1.9812722382506522, :d=>2.2869580997507706}, {:a=>-0.6205663078354936, :b=>-2.775707884794367, :c=>-0.382622938619043, :d=>-0.5067362001861417}, {:a=>-0.0769908154849928, :b=>-2.096238519356241, :c=>0.2153101029665079, :d=>0.19991193986950934}, {:a=>1.0890114824326436, :b=>-0.6387356469591956, :c=>1.497912630675908, :d=>1.7157149271624368}, {:a=>-0.42793328391197394, :b=>-2.5349166048899674, :c=>-0.17072661230317138, :d=>-0.2563132690855661}, {:a=>-1.4887096257301977, :b=>-3.860887032162747, :c=>-1.3375805883032175, :d=>-1.635322513449257}, {:a=>-0.45486094522526005, :b=>-2.568576181531575, :c=>-0.20034703974778606, :d=>-0.29131922879283806}, {:a=>-2.2280708181720654, :b=>-4.785088522715082, :c=>-2.1508778999892724, :d=>-2.5964920636236855}, {:a=>0.6811437480119624, :b=>-1.148570314985047, :c=>1.0492581228131588, :d=>1.1854868724155512}, {:a=>0.11783142068977125, :b=>-1.852710724137786, :c=>0.4296145627587484, :d=>0.4531808468967026}, {:a=>0.8805310494367684, :b=>-0.8993361882040396, :c=>1.2685841543804453, :d=>1.444690364267799}, {:a=>0.6713573779466718, :b=>-1.1608032775666604, :c=>1.038493115741339, :d=>1.1727645913306735}, {:a=>-0.8746395091672696, :b=>-3.093299386459087, :c=>-0.6621034600839966, :d=>-0.8370313619174505}, {:a=>1.5319758449651892, :b=>-0.08503019379351362, :c=>1.9851734294617083, :d=>2.291568598454746}, {:a=>0.5724880959354784, :b=>-1.284389880080652, :c=>0.9297369055290263, :d=>1.044234524716122}, {:a=>0.35765262479022125, :b=>-1.5529342190122235, :c=>0.6934178872692434, :d=>0.7649484122272876}, {:a=>0.8496871314165366, :b=>-0.9378910857293292, :c=>1.2346558445581903, :d=>1.4045932708414977}, {:a=>0.015173031672069093, :b=>-1.9810337104099136, :c=>0.316690334839276, :d=>0.3197249411736898}, {:a=>1.2557586479857334, :b=>-0.43030169001783336, :c=>1.681334512784307, :d=>1.9324862423814535}, {:a=>-0.13292028909374856, :b=>-2.1661503613671855, :c=>0.15378768199687656, :d=>0.12720362417812686}, {:a=>-0.6642309458098224, :b=>-2.830288682262278, :c=>-0.43065404039080474, :d=>-0.5635002295527691}, {:a=>0.4567196521891526, :b=>-1.4291004347635594, :c=>0.8023916174080679, :d=>0.8937355478458984}, {:a=>0.5023985800007045, :b=>-1.3720017749991196, :c=>0.852638438000775, :d=>0.9531181540009159}, {:a=>-1.2762261652611033, :b=>-3.595282706576379, :c=>-1.1038487817872138, :d=>-1.3590940148394344}, {:a=>-0.1449601292384854, :b=>-2.181200161548107, :c=>0.14054385783766604, :d=>0.11155183198996899}, {:a=>-1.016591325347515, :b=>-3.2707391566843933, :c=>-0.8182504578822665, :d=>-1.0215687229517694}, {:a=>-1.1155334527429335, :b=>-3.3944168159286665, :c=>-0.9270867980172268, :d=>-1.1501934885658136}, {:a=>0.8192680183667856, :b=>-0.9759149770415181, :c=>1.2011948202034644, :d=>1.3650484238768215}, {:a=>-0.2576289838354915, :b=>-2.322036229794364, :c=>0.01660811778095933, :d=>-0.034917678986138956}, {:a=>1.1629489380947673, :b=>-0.5463138273815409, :c=>1.579243831904244, :d=>1.8118336195231977}, {:a=>-0.5409141992839426, :b=>-2.6761427491049283, :c=>-0.29500561921233687, :d=>-0.4031884590691254}, {:a=>-0.15520743993644304, :b=>-2.1940092999205536, :c=>0.12927181606991264, :d=>0.09823032808262402}, {:a=>0.6055967531917873, :b=>-1.243004058510266, :c=>0.9661564285109661, :d=>1.0872757791493235}, {:a=>0.5267851534046532, :b=>-1.3415185582441835, :c=>0.8794636687451185, :d=>0.9848206994260491}, {:a=>0.013611335268284506, :b=>-1.9829858309146444, :c=>0.3149724687951129, :d=>0.31769473584876984}, {:a=>-0.7035727907344765, :b=>-2.8794659884180955, :c=>-0.47393006980792424, :d=>-0.6146446279548194}, {:a=>0.4166396860597298, :b=>-1.4792003924253379, :c=>0.7583036546657027, :d=>0.8416315918776487}, {:a=>-1.1688843487568785, :b=>-3.4611054359460978, :c=>-0.9857727836325665, :d=>-1.219549653383942}, {:a=>0.3496729185071659, :b=>-1.5629088518660426, :c=>0.6846402103578826, :d=>0.7545747940593157}, {:a=>1.3863899172006597, :b=>-0.2670126034991753, :c=>1.825028908920726, :d=>2.1023068923608577}, {:a=>-0.4020607735927356, :b=>-2.5025759669909196, :c=>-0.14226685095200925, :d=>-0.22267900567055637}, {:a=>1.3838086873671291, :b=>-0.2702391407910887, :c=>1.8221895561038421, :d=>2.098951293577268}, {:a=>-1.565688103962784, :b=>-3.95711012995348, :c=>-1.4222569143590624, :d=>-1.7353945351516191}, {:a=>1.9707539423494629, :b=>0.4634424279368283, :c=>2.4678293365844093, :d=>2.8619801250543015}, {:a=>-2.083794282059952, :b=>-4.60474285257494, :c=>-1.9921737102659474, :d=>-2.408932566677938}, {:a=>-0.6008317751817626, :b=>-2.751039718977203, :c=>-0.36091495269993884, :d=>-0.4810813077362914}, {:a=>-0.09251421992461281, :b=>-2.115642774905766, :c=>0.1982343580829259, :d=>0.17973151409800334}, {:a=>-1.2206632941253903, :b=>-3.5258291176567376, :c=>-1.0427296235379293, :d=>-1.2868622823630074}, {:a=>-0.8614612742298019, :b=>-3.0768265927872522, :c=>-0.6476074016527822, :d=>-0.8198996564987424}, {:a=>1.8125344747403145, :b=>0.265668093425393, :c=>2.2937879222143462, :d=>2.656294817162409}, {:a=>0.48245876899881274, :b=>-1.396926538751484, :c=>0.830704645898694, :d=>0.9271963996984565}, {:a=>0.6546271195291834, :b=>-1.1817161005885208, :c=>1.0200898314821019, :d=>1.1510152553879385}, {:a=>-0.06575434839791759, :b=>-2.082192935497397, :c=>0.22767021676229063, :d=>0.21451934708270712}, {:a=>-0.45368326332206155, :b=>-2.567104079152577, :c=>-0.19905158965426778, :d=>-0.28978824231868}, {:a=>0.2118784226809843, :b=>-1.7351519716487696, :c=>0.5330662649490827, :d=>0.5754419494852796}, {:a=>1.4017683516153991, :b=>-0.24778956048075118, :c=>1.8419451867769392, :d=>2.1222988571000188}, {:a=>0.34664059837166383, :b=>-1.5666992520354202, :c=>0.6813046582088302, :d=>0.750632777883163}, {:a=>0.5139313918892083, :b=>-1.3575857601384897, :c=>0.8653245310781292, :d=>0.9681108094559709}, {:a=>-0.019523707393985627, :b=>-2.024404634242482, :c=>0.2785239218666158, :d=>0.2746191803878187}, {:a=>-0.8517737127586521, :b=>-3.064717140948315, :c=>-0.6369510840345174, :d=>-0.8073058265862478}, {:a=>1.7485653647811703, :b=>0.18570670597646277, :c=>2.2234219012592873, :d=>2.573134974215521}, {:a=>0.5851549202017119, :b=>-1.2685563497478602, :c=>0.9436704122218831, :d=>1.0607013962622254}, {:a=>0.03172428100538959, :b=>-1.960344648743263, :c=>0.33489670910592856, :d=>0.34124156530700644}, {:a=>-1.4853725661869097, :b=>-3.8567157077336374, :c=>-1.3339098228056008, :d=>-1.6309843360429825}, {:a=>-0.8826414261033134, :b=>-3.103301782629142, :c=>-0.6709055687136449, :d=>-0.8474338539343074}, {:a=>-1.2191433914390695, :b=>-3.5239292392988366, :c=>-1.0410577305829765, :d=>-1.2848864088707903}, {:a=>-1.0946372034826923, :b=>-3.3682965043533653, :c=>-0.9041009238309616, :d=>-1.1230283645275}, {:a=>-0.8619769886706863, :b=>-3.077471235838358, :c=>-0.648174687537755, :d=>-0.8205700852718922}, {:a=>-2.20060312984709, :b=>-4.750753912308863, :c=>-2.1206634428317996, :d=>-2.5607840688012176}, {:a=>1.168247681024921, :b=>-0.5396903987188488, :c=>1.585072449127413, :d=>1.8187219853323973}, {:a=>-0.8204038939957609, :b=>-3.0255048674947007, :c=>-0.602444283395337, :d=>-0.766525062194489}, {:a=>-0.4470057680485916, :b=>-2.5587572100607394, :c=>-0.19170634485345084, :d=>-0.2811074984631691}, {:a=>0.5629816108428952, :b=>-1.2962729864463811, :c=>0.9192797719271848, :d=>1.0318760940957639}, {:a=>1.3179919642115359, :b=>-0.35251004473558023, :c=>1.7497911606326897, :d=>2.0133895534749966}, {:a=>-0.6165868893242251, :b=>-2.7707336116552814, :c=>-0.3782455782566477, :d=>-0.5015629561214927}, {:a=>0.15490277787399545, :b=>-1.8063715276575056, :c=>0.470393055661395, :d=>0.5013736112361941}, {:a=>2.1338058298711844, :b=>0.6672572873389804, :c=>2.6471864128583027, :d=>3.0739475788325397}, {:a=>1.6550854461613071, :b=>0.06885680770163383, :c=>2.120593990777438, :d=>2.451611080009699}, {:a=>1.8098950336991604, :b=>0.26236879212395037, :c=>2.2908845370690765, :d=>2.6528635438089085}, {:a=>-1.7667663717434643, :b=>-4.20845796467933, :c=>-1.643443008917811, :d=>-1.9967962832665036}, {:a=>1.942512379213247, :b=>0.42814047401655886, :c=>2.436763617134572, :d=>2.825266092977221}, {:a=>1.2806915057088304, :b=>-0.399135617863962, :c=>1.7087606562797135, :d=>1.9648989574214797}, {:a=>1.2835180339289287, :b=>-0.3956024575888393, :c=>1.7118698373218217, :d=>1.9685734441076075}, {:a=>-0.29316673568325213, :b=>-2.366458419604065, :c=>-0.02248340925157738, :d=>-0.0811167563882278}, {:a=>-0.38279807495079854, :b=>-2.4784975936884983, :c=>-0.12107788244587842, :d=>-0.19763749743603815}, {:a=>0.5389818398470245, :b=>-1.3262727001912193, :c=>0.8928800238317269, :d=>1.0006763918011319}, {:a=>0.6849493023092214, :b=>-1.1438133721134733, :c=>1.0534442325401436, :d=>1.1904340930019879}, {:a=>1.2355325771981018, :b=>-0.4555842785023727, :c=>1.659085834917912, :d=>1.9061923503575324}, {:a=>-0.3251392548447445, :b=>-2.4064240685559306, :c=>-0.057653180329218956, :d=>-0.12268103129816788}, {:a=>0.3262874495298731, :b=>-1.5921406880876585, :c=>0.6589161944828604, :d=>0.724173684388835}, {:a=>0.3127510228885895, :b=>-1.609061221389263, :c=>0.6440261251774485, :d=>0.7065763297551664}, {:a=>-1.2802284537849489, :b=>-3.600285567231186, :c=>-1.108251299163444, :d=>-1.3642969899204336}, {:a=>0.782532866213249, :b=>-1.0218339172334387, :c=>1.160786152834574, :d=>1.3172927260772238}, {:a=>1.0477448579929947, :b=>-0.6903189275087567, :c=>1.4525193437922943, :d=>1.662068315390893}, {:a=>-0.40693761256890415, :b=>-2.50867201571113, :c=>-0.1476313738257946, :d=>-0.22901889633957545}, {:a=>1.4560088370736708, :b=>-0.17998895365791157, :c=>1.901609720781038, :d=>2.192811488195772}, {:a=>1.202298172633377, :b=>-0.4971272842082788, :c=>1.6225279898967149, :d=>1.8629876244233903}, {:a=>0.849934735053574, :b=>-0.9375815811830326, :c=>1.2349282085589315, :d=>1.4049151555696462}, {:a=>0.8226566320338903, :b=>-0.9716792099576372, :c=>1.2049222952372793, :d=>1.3694536216440574}, {:a=>-1.252960613360327, :b=>-3.5662007667004088, :c=>-1.0782566746963598, :d=>-1.328848797368425}, {:a=>0.11533353676940657, :b=>-1.8558330790382418, :c=>0.42686689044634724, :d=>0.44993359780022857}, {:a=>-1.252023233223346, :b=>-3.5650290415291828, :c=>-1.0772255565456808, :d=>-1.32763020319035}, {:a=>-2.3073737100118734, :b=>-4.884217137514842, :c=>-2.238111081013061, :d=>-2.6995858230154357}, {:a=>0.6299103403339299, :b=>-1.2126120745825877, :c=>0.992901374367323, :d=>1.118883442434109}, {:a=>1.8549296374492799, :b=>0.3186620468115997, :c=>2.340422601194208, :d=>2.7114085286840637}, {:a=>-1.3537374931369903, :b=>-3.692171866421238, :c=>-1.1891112424506893, :d=>-1.4598587410780874}, {:a=>0.8707386666331374, :b=>-0.9115766667085783, :c=>1.2578125332964512, :d=>1.4319602666230786}, {:a=>0.008977758734499809, :b=>-1.9887778015818753, :c=>0.30987553460794975, :d=>0.31167108635484975}, {:a=>1.280215385342958, :b=>-0.3997307683213025, :c=>1.7082369238772541, :d=>1.9642800009458457}, {:a=>1.0875156671574193, :b=>-0.640605416053226, :c=>1.4962672338731613, :d=>1.7137703673046452}, {:a=>1.1855492989593772, :b=>-0.5180633763007785, :c=>1.6041042288553151, :d=>1.8412140886471904}, {:a=>-0.6377056013736305, :b=>-2.797132001717038, :c=>-0.4014761615109937, :d=>-0.5290172817857197}, {:a=>-0.7418177375832893, :b=>-2.9272721719791117, :c=>-0.5159995113416183, :d=>-0.6643630588582761}, {:a=>0.7204237677142334, :b=>-1.0994702903572082, :c=>1.092466144485657, :d=>1.2365508980285036}, {:a=>-0.22048478974861332, :b=>-2.2756059871857666, :c=>0.057466731276525324, :d=>0.01336977332680267}, {:a=>-1.3478175120046336, :b=>-3.684771890005792, :c=>-1.182599263205097, :d=>-1.4521627656060236}, {:a=>1.009999591898925, :b=>-0.7375005101263437, :c=>1.4109995510888178, :d=>1.6129994694686027}, {:a=>-1.3927857471144265, :b=>-3.740982183893033, :c=>-1.2320643218258691, :d=>-1.5106214712487545}, {:a=>-0.04798557948477867, :b=>-2.0599819743559733, :c=>0.24721586256674344, :d=>0.23761874666978772}, {:a=>-0.8043143197805555, :b=>-3.0053928997256945, :c=>-0.584745751758611, :d=>-0.7456086157147221}, {:a=>-0.9548952592355779, :b=>-3.1936190740444723, :c=>-0.7503847851591359, :d=>-0.9413638370062514}, {:a=>-0.24308939728092294, :b=>-2.3038617466011537, :c=>0.032601662990984714, :d=>-0.01601621646519985}, {:a=>-1.1801346812304472, :b=>-3.475168351538059, :c=>-0.998148149353492, :d=>-1.2341750855995814}, {:a=>-0.5068801209084648, :b=>-2.633600151135581, :c=>-0.2575681329993113, :d=>-0.3589441571810043}, {:a=>-0.6791360087938686, :b=>-2.8489200109923356, :c=>-0.4470496096732555, :d=>-0.5828768114320293}, {:a=>-0.8435982381011159, :b=>-3.0544977976263947, :c=>-0.6279580619112275, :d=>-0.7966777095314506}, {:a=>-0.0026305639627042347, :b=>-2.0032882049533804, :c=>0.2971063796410253, :d=>0.2965802668484845}, {:a=>0.9324784998923856, :b=>-0.8344018751345181, :c=>1.3257263498816243, :d=>1.5122220498601013}, {:a=>0.8567105677975925, :b=>-0.9291117902530095, :c=>1.2423816245773518, :d=>1.4137237381368704}, {:a=>0.9408548952963519, :b=>-0.8239313808795601, :c=>1.3349403848259873, :d=>1.5231113638852576}, {:a=>0.1648319489870361, :b=>-1.793960063766205, :c=>0.4813151438857397, :d=>0.5142815336831469}, {:a=>-1.1713439051885546, :b=>-3.464179881485693, :c=>-0.9884782957074101, :d=>-1.222747076745121}, {:a=>0.03726902486715796, :b=>-1.9534137189160525, :c=>0.34099592735387374, :d=>0.34844973232730536}, {:a=>-0.9897597811548328, :b=>-3.237199726443541, :c=>-0.7887357592703161, :d=>-0.9866877155012825}, {:a=>-0.5805046414210508, :b=>-2.7256308017763136, :c=>-0.338555105563156, :d=>-0.45465603384736614}, {:a=>0.2655526775267787, :b=>-1.6680591530915265, :c=>0.5921079452794566, :d=>0.6452184807848123}, {:a=>1.930848091193177, :b=>0.41356011399147086, :c=>2.4239329003124945, :d=>2.8101025185511297}, {:a=>0.5431387866010852, :b=>-1.3210765167486436, :c=>0.8974526652611938, :d=>1.0060804225814108}, {:a=>0.980883716486626, :b=>-0.7738953543917175, :c=>1.3789720881352887, :d=>1.5751488314326139}, {:a=>0.9122262210124538, :b=>-0.8597172237344328, :c=>1.3034488431136992, :d=>1.4858940873161899}, {:a=>1.1279466769313058, :b=>-0.5900666538358679, :c=>1.5407413446244365, :d=>1.7663306800106977}, {:a=>-0.5027284702333291, :b=>-2.6284105877916613, :c=>-0.25300131725666214, :d=>-0.35354701130332794}, {:a=>0.09567530591941967, :b=>-1.8804058676007254, :c=>0.4052428365113616, :d=>0.4243778976952456}, {:a=>-1.245062275397524, :b=>-3.556327844246905, :c=>-1.0695685029372766, :d=>-1.3185809580167813}, {:a=>1.3948129464180874, :b=>-0.25648381697739087, :c=>1.8342942410598964, :d=>2.1132568303435137}, {:a=>-0.22010790865557597, :b=>-2.2751348858194698, :c=>0.05788130047886639, :d=>0.013859718747751215}, {:a=>-0.02918283410789787, :b=>-2.0364785426348724, :c=>0.26789888248131233, :d=>0.26206231565973276}, {:a=>-0.7981624736616121, :b=>-2.997703092077015, :c=>-0.5779787210277734, :d=>-0.7376112157600958}, {:a=>1.6967530813682412, :b=>0.12094135171030151, :c=>2.1664283895050653, :d=>2.5057790057787135}, {:a=>-0.47287238310029495, :b=>-2.5910904788753686, :c=>-0.22015962141032447, :d=>-0.3147340980303835}, {:a=>-0.7119766518360072, :b=>-2.889970814795009, :c=>-0.48317431701960806, :d=>-0.6255696473868095}, {:a=>0.019460450754355884, :b=>-1.975674436557055, :c=>0.32140649582979147, :d=>0.32529858598066264}, {:a=>-0.3770586575902293, :b=>-2.4713233219877866, :c=>-0.11476452334925225, :d=>-0.1901762548672981}, {:a=>-0.6645355113696053, :b=>-2.8306693892120065, :c=>-0.43098906250656593, :d=>-0.563896164780487}, {:a=>1.4587486296850005, :b=>-0.17656421289374946, :c=>1.9046234926535008, :d=>2.1963732185905007}, {:a=>-0.2778485995036883, :b=>-2.34731074937961, :c=>-0.0056334594540571326, :d=>-0.0612031793547948}, {:a=>0.4297253774352328, :b=>-1.462843278205959, :c=>0.7726979151787561, :d=>0.8586429906658026}, {:a=>0.1485416278114828, :b=>-1.8143229652356465, :c=>0.4633957905926311, :d=>0.49310411615492766}, {:a=>-1.119057434838369, :b=>-3.3988217935479614, :c=>-0.9309631783222061, :d=>-1.1547746652898798}, {:a=>-0.9188858155231323, :b=>-3.1486072694039153, :c=>-0.7107743970754457, :d=>-0.894551560180072}, {:a=>-0.20164803526071753, :b=>-2.252060044075897, :c=>0.07818716121321068, :d=>0.037857554161067175}, {:a=>-1.78398529330958, :b=>-4.229981616636975, :c=>-1.662383822640538, :d=>-2.019180881302454}, {:a=>1.7002619215647794, :b=>0.12532740195597425, :c=>2.1702881137212575, :d=>2.510340498034213}, {:a=>1.5300127785596893, :b=>-0.08748402680038847, :c=>1.9830140564156584, :d=>2.2890166121275963}, {:a=>-0.2532494884490647, :b=>-2.3165618605613307, :c=>0.0214255627060288, :d=>-0.029224334983784128}, {:a=>-0.516562450064831, :b=>-2.6457030625810387, :c=>-0.2682186950713142, :d=>-0.37153118508428035}, {:a=>1.198301718392691, :b=>-0.5021228520091363, :c=>1.6181318902319601, :d=>1.8577922339104984}, {:a=>0.13426388733006853, :b=>-1.8321701408374143, :c=>0.4476902760630754, :d=>0.4745430535290891}, {:a=>-0.29799869026443976, :b=>-2.37249836283055, :c=>-0.027798559290883762, :d=>-0.08739829734377169}, {:a=>2.1272560698826264, :b=>0.6590700873532827, :c=>2.6399816768708892, :d=>3.0654328908474144}, {:a=>0.11663018181523743, :b=>-1.8542122727309531, :c=>0.4282931999967612, :d=>0.45161923635980866}, {:a=>-0.747910335474007, :b=>-2.9348879193425086, :c=>-0.5227013690214077, :d=>-0.6722834361162091}, {:a=>-0.6741788680340149, :b=>-2.8427235850425188, :c=>-0.4415967548374165, :d=>-0.5764325284442195}, {:a=>-0.19466067222707256, :b=>-2.2433258402838407, :c=>0.08587326055022015, :d=>0.046941126104805664}, {:a=>0.42906846450389047, :b=>-1.463664419370137, :c=>0.7719753109542795, :d=>0.8577890038550575}, {:a=>0.7741033208420419, :b=>-1.0323708489474477, :c=>1.1515136529262462, :d=>1.3063343170946546}, {:a=>0.9260639659787272, :b=>-0.8424200425265911, :c=>1.3186703625766, :d=>1.5038831557723455}, {:a=>0.16107863530921662, :b=>-1.7986517058634792, :c=>0.4771864988401383, :d=>0.5094022259019816}, {:a=>1.5198913969921986, :b=>-0.10013575375975181, :c=>1.9718805366914185, :d=>2.2758588160898583}, {:a=>-1.9786248208374706, :b=>-4.473281026046838, :c=>-1.8764873029212177, :d=>-2.272212267088712}, {:a=>0.6350127697159513, :b=>-1.206234037855061, :c=>0.9985140466875466, :d=>1.1255166006307367}, {:a=>1.430016344821194, :b=>-0.2124795689735075, :c=>1.8730179793033135, :d=>2.1590212482675524}, {:a=>1.1978198230191028, :b=>-0.5027252212261215, :c=>1.6176018053210133, :d=>1.8571657699248338}, {:a=>0.17482522450617058, :b=>-1.7814684693672869, :c=>0.49230774695678764, :d=>0.5272727918580218}, {:a=>-0.6203526518899123, :b=>-2.7754408148623906, :c=>-0.38238791707890357, :d=>-0.5064584474568861}, {:a=>1.1978559161509468, :b=>-0.5026801048113165, :c=>1.6176415077660415, :d=>1.857212690996231}, {:a=>-0.3822900448602815, :b=>-2.477862556075352, :c=>-0.12051904934630969, :d=>-0.19697705831836598}, {:a=>0.7152556355601507, :b=>-1.1059304555498115, :c=>1.0867811991161658, :d=>1.2298323262281958}, {:a=>2.27893008098328, :b=>0.8486626012290999, :c=>2.806823089081608, :d=>3.2626091052782638}, {:a=>-0.6199339304961924, :b=>-2.7749174131202405, :c=>-0.38192732354581166, :d=>-0.5059141096450501}, {:a=>0.31320845537685355, :b=>-1.608489430778933, :c=>0.644529300914539, :d=>0.7071709919899096}, {:a=>0.6027261995440834, :b=>-1.2465922505698959, :c=>0.9629988194984918, :d=>1.0835440594073085}, {:a=>0.5549940985213355, :b=>-1.3062573768483308, :c=>0.9104935083734691, :d=>1.0214923280777362}, {:a=>-1.7459760323919238, :b=>-4.182470040489905, :c=>-1.6205736356311162, :d=>-1.9697688421095008}, {:a=>-1.4510886359688626, :b=>-3.8138607949610783, :c=>-1.296197499565749, :d=>-1.5864152267595215}, {:a=>0.2767188933452212, :b=>-1.6541013833184735, :c=>0.6043907826797433, :d=>0.6597345613487875}, {:a=>-0.15475518614149103, :b=>-2.1934439826768637, :c=>0.12976929524435984, :d=>0.09881825801606164}, {:a=>-1.1333785329979327, :b=>-3.416723166247416, :c=>-0.9467163862977259, :d=>-1.1733920928973125}, {:a=>0.3823743061788717, :b=>-1.5220321172764104, :c=>0.7206117367967588, :d=>0.7970865980325332}, {:a=>1.7691519971154963, :b=>0.21143999639437006, :c=>2.2460671968270463, :d=>2.599897596250145}, {:a=>0.12853200260161599, :b=>-1.83933499674798, :c=>0.4413852028617776, :d=>0.46709160338210076}, {:a=>0.05714485675127475, :b=>-1.9285689290609065, :c=>0.3628593424264022, :d=>0.37428831377665717}, {:a=>-1.6319726290637961, :b=>-4.039965786329745, :c=>-1.495169891970176, :d=>-1.821564417782935}, {:a=>0.6109767997253295, :b=>-1.2362790003433382, :c=>0.9720744796978624, :d=>1.0942698396429282}, {:a=>-1.9449904762104266, :b=>-4.4312380952630335, :c=>-1.8394895238314695, :d=>-2.228487619073555}, {:a=>-0.4604913313666166, :b=>-2.575614164208271, :c=>-0.2065404645032783, :d=>-0.2986387307766016}, {:a=>-0.8462227673721413, :b=>-3.057778459215177, :c=>-0.6308450441093556, :d=>-0.8000895975837836}, {:a=>0.8425144461013241, :b=>-0.9468569423733451, :c=>1.2267658907114565, :d=>1.3952687799317214}, {:a=>-1.3337159796765257, :b=>-3.667144974595657, :c=>-1.1670875776441783, :d=>-1.4338307735794833}, {:a=>-0.4205765282145661, :b=>-2.525720660268208, :c=>-0.16263418103602273, :d=>-0.24674948667893598}, {:a=>1.8549331383136303, :b=>0.3186664228920377, :c=>2.3404264521449933, :d=>2.7114130798077194}, {:a=>-0.5115056793785802, :b=>-2.639382099223225, :c=>-0.2626562473164383, :d=>-0.36495738319215426}, {:a=>0.3330749536895188, :b=>-1.5836563078881016, :c=>0.6663824490584707, :d=>0.7329974397963744}, {:a=>-1.4641071362921927, :b=>-3.830133920365241, :c=>-1.310517849921412, :d=>-1.6033392771798505}, {:a=>-1.8505956027115253, :b=>-4.313244503389407, :c=>-1.7356551629826782, :d=>-2.1057742835249833}, {:a=>-0.7524945980173561, :b=>-2.9406182475216953, :c=>-0.5277440578190917, :d=>-0.6782429774225629}, {:a=>1.9564064477071779, :b=>0.4455080596339722, :c=>2.4520470924778954, :d=>2.843328382019331}, {:a=>1.0165670390552384, :b=>-0.729291201180952, :c=>1.4182237429607623, :d=>1.62153715077181}, {:a=>0.3110181527197834, :b=>-1.6112273091002707, :c=>0.6421199679917617, :d=>0.7043235985357184}, {:a=>0.695466440315971, :b=>-1.130666949605036, :c=>1.0650130843475683, :d=>1.2041063724107623}, {:a=>-0.030985318700993005, :b=>-2.0387316483762414, :c=>0.2659161494289077, :d=>0.2597190856887091}, {:a=>-0.8853520958923936, :b=>-3.106690119865492, :c=>-0.673887305481633, :d=>-0.8509577246601117}, {:a=>0.6448238184420491, :b=>-1.1939702269474388, :c=>1.009306200286254, :d=>1.1382709639746638}, {:a=>0.03844631985043787, :b=>-1.9519421001869526, :c=>0.34229095183548164, :d=>0.3499802158055692}, {:a=>-0.20444677970339986, :b=>-2.25555847462925, :c=>0.07510854232626013, :d=>0.034219186385580136}, {:a=>-0.6311671742314295, :b=>-2.788958967789287, :c=>-0.3942838916545726, :d=>-0.5205173265008585}, {:a=>0.5775963706913194, :b=>-1.2780045366358508, :c=>0.9353560077604515, :d=>1.0508752818987153}, {:a=>1.828742738516747, :b=>0.2859284231459336, :c=>2.3116170123684214, :d=>2.6773655600717707}, {:a=>0.1900554628038717, :b=>-1.7624306714951603, :c=>0.5090610090842589, :d=>0.5470721016450332}, {:a=>-0.4340683373396194, :b=>-2.5425854216745245, :c=>-0.1774751710735814, :d=>-0.26428883854150526}, {:a=>0.7887468308775187, :b=>-1.0140664614031016, :c=>1.1676215139652706, :d=>1.3253708801407744}, {:a=>-0.5827466837100768, :b=>-2.728433354637596, :c=>-0.3410213520810845, :d=>-0.45757068882309987}, {:a=>0.958726693426559, :b=>-0.8015916332168014, :c=>1.354599362769215, :d=>1.5463447014545268}, {:a=>0.494006638512081, :b=>-1.3824917018598988, :c=>0.8434073023632891, :d=>0.9422086300657053}, {:a=>0.12225114708689913, :b=>-1.8471860661413761, :c=>0.43447626179558907, :d=>0.45892649121296886}, {:a=>-0.37023055031449686, :b=>-2.4627881878931213, :c=>-0.10725360534594658, :d=>-0.18129971540884593}, {:a=>-2.075566754252202, :b=>-4.594458442815252, :c=>-1.9831234296774223, :d=>-2.3982367805278626}, {:a=>0.07932886595022491, :b=>-1.900838917562219, :c=>0.3872617525452474, :d=>0.40312752573529237}, {:a=>2.0223092156329567, :b=>0.5278865195411959, :c=>2.5245401371962526, :d=>2.9290019803228438}, {:a=>0.06189967102324391, :b=>-1.922625411220945, :c=>0.3680896381255683, :d=>0.38046957233021705}, {:a=>0.7560650319256617, :b=>-1.054918710092923, :c=>1.1316715351182278, :d=>1.2828845415033603}, {:a=>-0.7376698210470395, :b=>-2.9220872763087993, :c=>-0.5114368031517436, :d=>-0.6589707673611513}, {:a=>1.7726400710831194, :b=>0.21580008885389912, :c=>2.2499040781914315, :d=>2.604432092408055}, {:a=>0.26200106587562016, :b=>-1.672498667655475, :c=>0.5882011724631822, :d=>0.6406013856383062}, {:a=>-0.9397476671895857, :b=>-3.174684583986982, :c=>-0.7337224339085442, :d=>-0.9216719673464613}, {:a=>0.6217818127726343, :b=>-1.2227727340342072, :c=>0.9839599940498978, :d=>1.1083163566044247}, {:a=>-2.358991294966307, :b=>-4.948739118707884, :c=>-2.2948904244629382, :d=>-2.7666886834561994}, {:a=>-0.4006147193367171, :b=>-2.500768399170896, :c=>-0.14067619127038888, :d=>-0.22079913513773225}, {:a=>0.7317794255011703, :b=>-1.0852757181235373, :c=>1.1049573680512874, :d=>1.2513132531515214}, {:a=>-1.6768816029523497, :b=>-4.0961020036904365, :c=>-1.5445697632475848, :d=>-1.8799460838380544}, {:a=>-0.5456237081142478, :b=>-2.6820296351428095, :c=>-0.30018607892567256, :d=>-0.40931082054852214}, {:a=>-1.9355317335695155, :b=>-4.419414666961894, :c=>-1.829084906926467, :d=>-2.2161912536403703}, {:a=>0.23951129305055, :b=>-1.7006108836868126, :c=>0.5634624223556051, :d=>0.611364680965715}, {:a=>-0.03519234441468577, :b=>-2.0439904305183574, :c=>0.26128842114384565, :d=>0.25424995226090846}, {:a=>1.3280628379407535, :b=>-0.33992145257405815, :c=>1.7608691217348291, :d=>2.0264816893229796}, {:a=>0.4409246375803859, :b=>-1.4488442030245177, :c=>0.7850171013384246, :d=>0.8732020288545017}, {:a=>2.137904464464884, :b=>0.672380580581105, :c=>2.6516949109113725, :d=>3.0792758038043493}, {:a=>-2.0936164038110436, :b=>-4.617020504763804, :c=>-2.0029780441921483, :d=>-2.421701324954357}, {:a=>-0.6064286013843125, :b=>-2.7580357517303904, :c=>-0.3670714615227439, :d=>-0.48835718179960635}, {:a=>-1.9830923910021088, :b=>-4.478865488752636, :c=>-1.8814016301023198, :d=>-2.2780201083027416}, {:a=>-0.8687826539286831, :b=>-3.085978317410854, :c=>-0.6556609193215515, :d=>-0.8294174501072882}, {:a=>1.4274609776727856, :b=>-0.2156737779090181, :c=>1.8702070754400644, :d=>2.155699270974621}, {:a=>1.533896913952694, :b=>-0.08262885755913274, :c=>1.9872866053479634, :d=>2.294065988138502}, {:a=>-0.5369761446958898, :b=>-2.671220180869862, :c=>-0.29067375916547883, :d=>-0.3980689881046568}, {:a=>-0.23020751103722809, :b=>-2.287759388796535, :c=>0.04677173785904909, :d=>0.0007302356516034614}, {:a=>1.6539842111676042, :b=>0.06748026395950513, :c=>2.1193826322843647, :d=>2.4501794745178853}, {:a=>0.32663096105835765, :b=>-1.591711298677053, :c=>0.6592940571641934, :d=>0.7246202493758649}, {:a=>-0.8048320962256656, :b=>-3.0060401202820817, :c=>-0.5853153058482323, :d=>-0.7462817250933653}, {:a=>0.41802866565747093, :b=>-1.4774641679281615, :c=>0.7598315322232181, :d=>0.8434372653547122}, {:a=>1.0153679878276707, :b=>-0.7307900152154116, :c=>1.4169047866104378, :d=>1.619978384175972}, {:a=>-0.12256983103323707, :b=>-2.153212288791546, :c=>0.1651731858634392, :d=>0.1406592196567918}, {:a=>-0.7064125014510212, :b=>-2.8830156268137763, :c=>-0.47705375159612334, :d=>-0.6183362518863276}, {:a=>0.32101627603570976, :b=>-1.598729654955363, :c=>0.6531179036392807, :d=>0.7173211588464227}, {:a=>-0.1969120146688311, :b=>-2.246140018336039, :c=>0.08339678386428576, :d=>0.04401438093051957}, {:a=>1.5248211296365313, :b=>-0.09397358795433597, :c=>1.9773032426001846, :d=>2.2822674685274906}, {:a=>1.49954483941356, :b=>-0.1255689507330502, :c=>1.949499323354916, :d=>2.249408291237628}, {:a=>-0.7887733612984043, :b=>-2.9859667016230054, :c=>-0.5676506974282447, :d=>-0.7254053696879255}, {:a=>-0.4336875980087488, :b=>-2.542109497510936, :c=>-0.1770563578096237, :d=>-0.26379387741137345}, {:a=>0.4588922405365797, :b=>-1.4263846993292755, :c=>0.8047814645902376, :d=>0.8965599126975536}, {:a=>-0.48242610713115025, :b=>-2.603032633913938, :c=>-0.2306687178442653, :d=>-0.32715393927049535}, {:a=>-0.5435074178903324, :b=>-2.6793842723629155, :c=>-0.29785815967936574, :d=>-0.40655964325743216}, {:a=>0.0635186772134258, :b=>-1.9206016534832178, :c=>0.36987054493476834, :d=>0.38257428037745356}, {:a=>-1.1142435617756135, :b=>-3.392804452219517, :c=>-0.9256679179531748, :d=>-1.1485166303082974}, {:a=>2.467591402661671, :b=>1.0844892533270887, :c=>3.0143505429278385, :d=>3.5078688234601727}, {:a=>-0.46496288477385633, :b=>-2.5812036059673202, :c=>-0.21145917325124203, :d=>-0.3044517502060133}, {:a=>1.157478259547256, :b=>-0.5531521755659301, :c=>1.5732260855019817, :d=>1.8047217374114328}, {:a=>-1.8032514025543245, :b=>-4.254064253192905, :c=>-1.683576542809757, :d=>-2.044226823320622}, {:a=>-0.2431438150459642, :b=>-2.303929768807455, :c=>0.032541803449439355, :d=>-0.016086959559753478}, {:a=>0.18705431784021093, :b=>-1.7661821026997364, :c=>0.5057597496242321, :d=>0.5431706131922742}, {:a=>0.579573195370004, :b=>-1.2755335057874952, :c=>0.9375305149070043, :d=>1.0534451539810052}, {:a=>-0.271242973311513, :b=>-2.339053716639391, :c=>0.0016327293573356605, :d=>-0.052615865304966924}, {:a=>-1.7343151849862968, :b=>-4.16789398123287, :c=>-1.6077467034849267, :d=>-1.954609740482186}, {:a=>0.5363868053061706, :b=>-1.329516493367287, :c=>0.8900254858367878, :d=>0.9973028468980218}, {:a=>-0.4354130452497203, :b=>-2.5442663065621502, :c=>-0.17895434977469238, :d=>-0.26603695882463646}, {:a=>-0.994945443923506, :b=>-3.2436818049043827, :c=>-0.7944399883158566, :d=>-0.9934290771005578}, {:a=>0.6262605481404405, :b=>-1.2171743148244494, :c=>0.9888866029544847, :d=>1.1141387125825728}, {:a=>-0.2740388801873782, :b=>-2.3425486002342226, :c=>-0.0014427682061160518, :d=>-0.056250544243591716}, {:a=>-0.3348423026952185, :b=>-2.418552878369023, :c=>-0.06832653296474034, :d=>-0.13529499350378404}, {:a=>-0.23005412681998497, :b=>-2.2875676585249813, :c=>0.04694046049801648, :d=>0.0009296351340195019}, {:a=>-0.3233171427733529, :b=>-2.404146428466691, :c=>-0.05564885705068823, :d=>-0.12031228560535878}, {:a=>0.01990262863624893, :b=>-1.9751217142046888, :c=>0.3218928914998738, :d=>0.3258734172271236}, {:a=>-0.6753336780876937, :b=>-2.844167097609617, :c=>-0.44286704589646314, :d=>-0.577933781514002}, {:a=>0.837591070239598, :b=>-0.9530111622005026, :c=>1.2213501772635578, :d=>1.3888683913114774}, {:a=>0.26252627273552065, :b=>-1.6718421590805992, :c=>0.5887789000090727, :d=>0.6412841545561768}, {:a=>0.5374956979873459, :b=>-1.3281303775158178, :c=>0.8912452677860805, :d=>0.9987444073835496}, {:a=>-0.971950210347941, :b=>-3.2149377629349263, :c=>-0.7691452313827352, :d=>-0.9635352734523233}, {:a=>-0.24079720028414991, :b=>-2.3009965003551875, :c=>0.035123079687435055, :d=>-0.013036360369394928}, {:a=>2.1895481540835, :b=>0.736935192604375, :c=>2.70850296949185, :d=>3.1464126003085497}, {:a=>2.1688578686508606, :b=>0.7110723358135758, :c=>2.685743655515947, :d=>3.119515229246119}, {:a=>-0.22834620074177084, :b=>-2.2854327509272134, :c=>0.04881917918405204, :d=>0.0031499390356978796}, {:a=>0.1370691379958797, :b=>-1.8286635775051505, :c=>0.45077605179546765, :d=>0.47818987939464364}, {:a=>-0.3863724562819304, :b=>-2.482965570352413, :c=>-0.1250097019101235, :d=>-0.20228419316650953}, {:a=>-0.25384839992988456, :b=>-2.3173104999123555, :c=>0.020766760077126967, :d=>-0.030002919908849957}, {:a=>-0.051580386094509864, :b=>-2.0644754826181373, :c=>0.24326157529603915, :d=>0.23294549807713716}, {:a=>1.2799501977304786, :b=>-0.4000622528369018, :c=>1.7079452175035266, :d=>1.9639352570496222}, {:a=>0.30822140825133415, :b=>-1.6147232396858322, :c=>0.6390435490764677, :d=>0.7006878307267344}, {:a=>-0.4441627364504496, :b=>-2.5552034205630623, :c=>-0.18857901009549466, :d=>-0.2774115573855846}, {:a=>0.377966961223287, :b=>-1.5275412984708914, :c=>0.7157636573456156, :d=>0.7913570495902731}, {:a=>-0.22512263188499548, :b=>-2.2814032898562444, :c=>0.052365104926504924, :d=>0.007340578549505872}, {:a=>-0.3165542226163609, :b=>-2.395692778270451, :c=>-0.04820964487799706, :d=>-0.11152048940126918}, {:a=>-1.2180996183354365, :b=>-3.5226245229192954, :c=>-1.0399095801689802, :d=>-1.2835295038360675}, {:a=>-0.05107805952661888, :b=>-2.063847574408274, :c=>0.2438141345207192, :d=>0.23359852261539543}, {:a=>-1.0775555452966203, :b=>-3.3469444316207753, :c=>-0.8853110998262825, :d=>-1.1008222088856066}, {:a=>0.3693931233074278, :b=>-1.5382585958657153, :c=>0.7063324356381706, :d=>0.7802110602996561}, {:a=>-0.15195030041811122, :b=>-2.189937875522639, :c=>0.13285466954007763, :d=>0.10246460945645539}, {:a=>-0.35922389871626187, :b=>-2.449029873395327, :c=>-0.0951462885878881, :d=>-0.16699106833114047}, {:a=>-1.6026547309909196, :b=>-4.003318413738649, :c=>-1.4629202040900116, :d=>-1.7834511502881953}, {:a=>-0.6457253174630301, :b=>-2.8071566468287874, :c=>-0.41029784920933315, :d=>-0.5394429127019391}, {:a=>-1.0213951112004758, :b=>-3.2767438890005947, :c=>-0.8235346223205233, :d=>-1.0278136445606185}, {:a=>0.4117788310431208, :b=>-1.485276461196099, :c=>0.7529567141474329, :d=>0.835312480356057}, {:a=>-1.2587938233583986, :b=>-3.573492279197998, :c=>-1.0846732056942385, :d=>-1.3364319703659182}, {:a=>0.1590234658325454, :b=>-1.8012206677093183, :c=>0.47492581241579995, :d=>0.506730505582309}, {:a=>0.1823010103282135, :b=>-1.7721237370897331, :c=>0.5005311113610349, :d=>0.5369913134266775}, {:a=>-1.1683645679785581, :b=>-3.4604557099731976, :c=>-0.985201024776414, :d=>-1.2188739383721257}, {:a=>0.8730273749579216, :b=>-0.9087157813025981, :c=>1.2603301124537138, :d=>1.4349355874452983}, {:a=>-0.9679372190409521, :b=>-3.20992152380119, :c=>-0.7647309409450473, :d=>-0.9583183847532377}, {:a=>0.1635404921458853, :b=>-1.7955743848176433, :c=>0.4798945413604738, :d=>0.5126026397896509}, {:a=>-0.37710197365398673, :b=>-2.4713774670674833, :c=>-0.11481217101938546, :d=>-0.19023256575018277}, {:a=>0.2332663541380549, :b=>-1.7084170573274313, :c=>0.5565929895518604, :d=>0.6032462603794714}, {:a=>0.3731908851782558, :b=>-1.5335113935271802, :c=>0.7105099736960814, :d=>0.7851481507317326}, {:a=>0.25038155801558687, :b=>-1.6870230524805163, :c=>0.5754197138171455, :d=>0.625496025420263}, {:a=>-1.3186905227303325, :b=>-3.6483631534129155, :c=>-1.150559575003366, :d=>-1.4142976795494322}, {:a=>-0.4523392243940471, :b=>-2.565424030492559, :c=>-0.1975731468334519, :d=>-0.28804099171226133}, {:a=>-0.1191863968029517, :b=>-2.1489829960036895, :c=>0.1688949635167531, :d=>0.14505768415616277}, {:a=>-0.829881237317033, :b=>-3.037351546646291, :c=>-0.6128693610487363, :d=>-0.7788456085121429}, {:a=>0.1957098939928723, :b=>-1.7553626325089096, :c=>0.5152808833921596, :d=>0.554422862190734}, {:a=>1.7942143223087066, :b=>0.24276790288588312, :c=>2.2736357545395776, :d=>2.6324786190013185}, {:a=>1.839111678231645, :b=>0.29888959778955604, :c=>2.3230228460548097, :d=>2.6908451817011385}, {:a=>-1.0428002995770989, :b=>-3.3035003744713736, :c=>-0.8470803295348088, :d=>-1.0556403894502284}, {:a=>-1.3384047302740363, :b=>-3.6730059128425454, :c=>-1.1722452033014399, :d=>-1.4399261493562472}, {:a=>-1.1264347208345862, :b=>-3.4080434010432326, :c=>-0.939078192918045, :d=>-1.1643651370849621}, {:a=>-0.04894137694053139, :b=>-2.061176721175664, :c=>0.24616448536541546, :d=>0.23637620997730918}, {:a=>0.10969938734213491, :b=>-1.8628757658223314, :c=>0.42066932607634844, :d=>0.4426092035447754}, {:a=>0.7028760411686078, :b=>-1.1214049485392403, :c=>1.0731636452854687, :d=>1.2137388535191902}, {:a=>0.2908750711611964, :b=>-1.6364061610485046, :c=>0.619962578277316, :d=>0.6781375925095553}, {:a=>-0.8536431222453108, :b=>-3.0670539028066384, :c=>-0.639007434469842, :d=>-0.809736058918904}, {:a=>0.3774274794571718, :b=>-1.5282156506785354, :c=>0.715170227402889, :d=>0.7906557232943234}, {:a=>0.6647989749590101, :b=>-1.1690012813012376, :c=>1.0312788724549111, :d=>1.1642386674467131}, {:a=>-0.04324784899356504, :b=>-2.0540598112419564, :c=>0.25242736610707844, :d=>0.24377779630836544}, {:a=>0.20500175158357078, :b=>-1.7437478105205364, :c=>0.5255019267419279, :d=>0.5665022770586421}, {:a=>0.680878437815977, :b=>-1.1489019527300288, :c=>1.0489662815975747, :d=>1.18514196916077}, {:a=>-0.6298515676242159, :b=>-2.7873144595302697, :c=>-0.3928367243866376, :d=>-0.5188070379114806}, {:a=>0.09324002213306072, :b=>-1.8834499723336742, :c=>0.4025640243463668, :d=>0.4212120287729789}, {:a=>-0.531631369050414, :b=>-2.6645392113130173, :c=>-0.28479450595545547, :d=>-0.3911207797655382}, {:a=>1.6977451638463303, :b=>0.12218145480791298, :c=>2.1675196802309635, :d=>2.5070687130002294}, {:a=>1.6657905744915873, :b=>0.08223821811448406, :c=>2.132369631940746, :d=>2.4655277468390633}, {:a=>0.19701844686507372, :b=>-1.7537269414186578, :c=>0.5167202915515812, :d=>0.5561239809245959}, {:a=>0.35537987440746244, :b=>-1.555775156990672, :c=>0.6909178618482087, :d=>0.7619938367297012}, {:a=>-0.595021059642325, :b=>-2.7437763245529063, :c=>-0.35452316560655756, :d=>-0.47352737753502255}, {:a=>0.5975327651718575, :b=>-1.2530840435351782, :c=>0.9572860416890432, :d=>1.0767925947234147}, {:a=>-0.0059075291206308195, :b=>-2.0073844114007886, :c=>0.29350171796730606, :d=>0.29232021214317994}, {:a=>-0.32064869709456145, :b=>-2.400810871368202, :c=>-0.05271356680401762, :d=>-0.11684330622292993}, {:a=>1.8976360598403197, :b=>0.3720450748003996, :c=>2.3873996658243515, :d=>2.7669268777924154}, {:a=>2.0595372157033025, :b=>0.5744215196291278, :c=>2.565490937273633, :d=>2.9773983804142934}, {:a=>0.16655949142051998, :b=>-1.79180063572435, :c=>0.483215440562572, :d=>0.516527338846676}, {:a=>0.16192373003953098, :b=>-1.7975953374505862, :c=>0.47811610304348406, :d=>0.5105008490513903}, {:a=>-1.480338012774993, :b=>-3.850422515968741, :c=>-1.3283718140524923, :d=>-1.624439416607491}, {:a=>-0.39415510070290816, :b=>-2.492693875878635, :c=>-0.13357061077319904, :d=>-0.21240163091378067}, {:a=>-0.7993210096855387, :b=>-2.999151262106923, :c=>-0.5792531106540926, :d=>-0.7391173125912003}, {:a=>-0.6349741479692209, :b=>-2.793717684961526, :c=>-0.3984715627661431, :d=>-0.5254663923599872}, {:a=>1.2094553127287309, :b=>-0.4881808590890866, :c=>1.630400844001604, :d=>1.8722919065473502}]>}, :extension=>[]}>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "require 'distribution'\n", "rng = Distribution::Normal.rng\n", "# Daru.lazy_update = false\n", "\n", "arr = []\n", "1000.times {arr.push(rng.call)}\n", "\n", "arr1 = arr.map{|val| val/0.8-2}\n", "arr2 = arr.map{|val| val*1.1+0.3}\n", "arr3 = arr.map{|val| val*1.3+0.3}\n", "\n", "df = Daru::DataFrame.new({ a: arr, b: arr1, c: arr2, d: arr3 })\n", "box_1 = Daru::View::Plot.new(df, type: :box)\n", "box_1.show_in_iruby" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Line Graphs\n", "\n", "Line graphs can be easily generated by passing `:line` to the `:type` option.\n", "\n", "For example, lets plot a simple line graph showing the temperature of New York City over a week." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:line, :options=>{:x=>:day, :y=>:temperature, :title=>\"Temperature in NYC\"}, :data=>\"a5abf840-3eb6-47c4-a9e1-ce5490590465\"}, @xrange=[1, 6], @yrange=[43, 59]>], :options=>{:x_label=>\"Day\", :y_label=>\"Temperature\", :yrange=>[20, 60], :xrange=>[1, 6], :legend=>true, :zoom=>true, :width=>800}}>" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = Daru::DataFrame.new({\n", " temperature: [43,53,50,57,59,47],\n", " day: [1,2,3,4,5,6]\n", "})\n", "\n", "line_1 = Daru::View::Plot.new(df,type: :line, x: :day, y: :temperature).chart\n", "line_1.tap do |plot|\n", " plot.x_label \"Day\"\n", " plot.y_label \"Temperature\"\n", " plot.yrange [20,60]\n", " plot.xrange [1,6]\n", " plot.legend true\n", " plot.diagrams[0].title \"Temperature in NYC\"\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Histogram\n", "\n", "Specify `:histogram` to `:type` will make a histogram from the data.\n", "\n", "Histograms dont need a X axis label (because they show the frequency of elements in each bin) so you need to specify the name of the vector you want to plot by passing its name into the `:x` option." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:histogram, :options=>{:value=>:a}, :data=>\"6c70349a-50f2-45f0-93ea-b99fa42a49e5\"}, @xrange=[0, 0.9975215098702691], @yrange=[0, 1000]>], :options=>{:yrange=>[0, 150], :y_label=>\"Frequency\", :x_label=>\"Bins\", :width=>700, :xrange=>[0, 0.9975215098702691]}}>" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v = 1000.times.map { rand }\n", "\n", "df = Daru::DataFrame.new({\n", " a: v\n", " })\n", "\n", "Daru::View::Plot.new(df, type: :histogram, x: :a).chart.tap do |plot|\n", " plot.yrange [0,150]\n", " plot.y_label \"Frequency\"\n", " plot.x_label \"Bins\"\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Multiple Diagrams on the same PlotĀ¶\n", "\n", "##### Scatter Diagrams on the same Plot\n", "\n", "Daru allows you to plot as many columns of your dataframe as you want on the same plot.\n", "\n", "This can allow you to plot data from the dataframe onto the same graph and visually compare results from observations. You can individually set the color or point shape of each diagram on the plot.\n", "\n", "As a first demostration, lets create a DataFrame of the temperatures of three different cities over the period of a week. Then, we'll plot them all on the same graph by passing options to the plot method which tell it the Vectors that are to be used for each of the diagrams." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:scatter, :options=>{:x=>:day, :y=>:nyc_temp, :title=>\"Temprature in NYC\", :color=>\"#00FF00\"}, :data=>\"d542c388-aa6d-464e-85b4-eddf3b67001c\"}, @xrange=[1, 6], @yrange=[43, 59]>, #:scatter, :options=>{:x=>:day, :y=>:chicago_temp, :title=>\"Temprature in Chicago\", :color=>\"#FFFF00\"}, :data=>\"d542c388-aa6d-464e-85b4-eddf3b67001c\"}, @xrange=[1, 6], @yrange=[20, 38]>, #:scatter, :options=>{:x=>:day, :y=>:sf_temp, :title=>\"Temprature in SF\", :color=>\"#0000FF\"}, :data=>\"d542c388-aa6d-464e-85b4-eddf3b67001c\"}, @xrange=[1, 6], @yrange=[52, 73]>], :options=>{:legend=>true, :yrange=>[0, 100], :x_label=>\"Day\", :y_label=>\"Temperature\", :zoom=>true, :width=>800, :xrange=>[1, 6]}}>" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = Daru::DataFrame.new({\n", " nyc_temp: [43,53,50,57,59,47],\n", " chicago_temp: [23,30,35,20,26,38],\n", " sf_temp: [60,65,73,67,55,52],\n", " day: [1 ,2 ,3 ,4 ,5 , 6]\n", " })\n", "\n", "# As you can see, the options passed denote the x and y axes that are to be used by each diagram.\n", "# You can add as many x any y axes as you want, just make sure the relevant vectors are present\n", "# in your DataFrame!\n", "#\n", "# Heres an explanation of all the options passed:\n", "#\n", "# * type - The type of graph to be drawn. All the diagrams will be of the same type in this case.\n", "# * x1/x2/x3 - The Vector from the DataFrame that is to be treated as the X axis for each of the \n", "# three diagrams. In this case all of them need the :day Vector.\n", "# * y1/y2/y3 - The Vector from the DataFrame that is to be treated as the Y axis for each of the\n", "# three diagrams. As you can see the 1st diagram will plot nyc_temp, the 2nd chicago_temp and the\n", "# the 3rd sf_temp.\n", "# \n", "# The values yielded in the block are also slightly different in this case.\n", "# The first argument ('plot') is the same as in all the above examples (Nyaplot::Plot), but the \n", "# second argument ('diagrams') is now an Array of Nyaplot::Diagram objects. Each of the elements\n", "# in the Array represents the diagrams that you want to plot according to the sorting sequence\n", "# of the options specifying the axes.\n", "\n", "graph = Daru::View::Plot.new(df, type: :scatter, x1: :day, y1: :nyc_temp, x2: :day, y2: :chicago_temp, x3: :day, y3: :sf_temp) \n", "\n", "graph.chart.tap do |plot|\n", " nyc = plot.diagrams[0]\n", " chicago = plot.diagrams[1]\n", " sf = plot.diagrams[2]\n", " \n", " nyc.title \"Temprature in NYC\"\n", " nyc.color \"#00FF00\"\n", " \n", " chicago.title \"Temprature in Chicago\"\n", " chicago.color \"#FFFF00\"\n", " \n", " sf.title \"Temprature in SF\"\n", " sf.color \"#0000FF\"\n", " \n", " plot.legend true\n", " plot.yrange [0,100]\n", " plot.x_label \"Day\"\n", " plot.y_label \"Temperature\"\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Scatter and Line Diagram on the same Plot\n", "\n", "It is also possible to plot two different kinds of diagrams on the same plot. To show you how this works, I will plot a scatter graph and a line graph on the same plot.\n", "\n", "To elaborate, we will be plotting the a set of points on a scatter plot alongwith their line of best fit." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ " Daru::DataFrame(11x3) \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", "\n", "
burgerfatcalories
0Hamburger9260
1Cheeseburger13320
2Quarter Pounder21420
3Quarter Pounder with Cheese30530
4Big Mac31560
5Arch Sandwich Special31550
6Arch Special with Bacon34590
7Crispy Chicken25500
8Fish Fillet28560
9Grilled Chicken20440
10Grilled Chicken Light5300
" ], "text/plain": [ "#\n", " burger fat calories\n", " 0 Hamburger 9 260\n", " 1 Cheeseburg 13 320\n", " 2 Quarter Po 21 420\n", " 3 Quarter Po 30 530\n", " 4 Big Mac 31 560\n", " 5 Arch Sandw 31 550\n", " 6 Arch Speci 34 590\n", " 7 Crispy Chi 25 500\n", " 8 Fish Fille 28 560\n", " 9 Grilled Ch 20 440\n", " 10 Grilled Ch 5 300" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = Daru::DataFrame.new({\n", " burger: [\"Hamburger\",\"Cheeseburger\",\"Quarter Pounder\",\"Quarter Pounder with Cheese\",\"Big Mac\",\"Arch Sandwich Special\",\"Arch Special with Bacon\",\"Crispy Chicken\",\"Fish Fillet\",\"Grilled Chicken\",\"Grilled Chicken Light\"],\n", " fat: [9,13 ,21 ,30 ,31 ,31 ,34 ,25 ,28 ,20 ,5],\n", " calories: [260,320,420,530,560,550,590,500,560,440,300]\n", " },\n", " order: [:burger, :fat, :calories])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll now write a small algorithm to compute the slope of the line of best fit by placing the fat content as the X co-ordinates and calories as Y co-ordinates.\n", "\n", "The line of best fit will be a line graph of red color and the fat and calorie contents will be plotted as usual using a scatter plot." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:scatter, :options=>{:x=>:fat, :y=>:calories, :tooltip_contents=>[:burger]}, :data=>\"f22e46df-81b7-41e5-b332-37ddf471f6b4\"}, @xrange=[5, 34], @yrange=[260, 590]>, #:line, :options=>{:x=>:fat, :y=>:y_coords, :color=>\"#FF0000\"}, :data=>\"f22e46df-81b7-41e5-b332-37ddf471f6b4\"}, @xrange=[5, 34], @yrange=[252.5085518814139, 592.7156974534398]>], :options=>{:x_label=>\"Fat\", :y_label=>\"Calories\", :xrange=>[0, 50], :zoom=>true, :width=>700, :yrange=>[252.5085518814139, 592.7156974534398]}}>" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Algorithm for computing the line of best fit\n", "\n", "sum_x = df[:fat].sum\n", "sum2_x = (df[:fat]*df[:fat]).sum \n", "sum_xy = (df[:fat]*df[:calories]).sum\n", "mean_x = df[:fat].mean\n", "mean_y = df[:calories].mean\n", "\n", "slope = (sum_xy - sum_x * mean_y) / (sum2_x - sum_x * mean_x)\n", "yint = mean_y - slope * mean_x\n", "\n", "# Assign the computed Y co-ordinates of the line of best fit to a column \n", "# in the DataFrame called :y_coords\n", "df[:y_coords] = df[:fat].map {|f| f*slope + yint }\n", "\n", "# As you can see the options passed into plot are slightly different this time.\n", "#\n", "# Instead of passing Vector names into :x1, :x2... separately, this time we pass\n", "# the relevant names of the X and Y axes co-ordinates as an Array into the :x and \n", "# :y options.This is a simpler and easier way to plot multiple diagrams.\n", "# \n", "# As is demonstrated in the previous example, the first argument yields a Nyaplot::Plot\n", "# object and the second an Array of Nyaplot::Diagram objects. The diagrams are ordered\n", "# according to the types specified in the `:type` option.\n", "\n", "graph = Daru::View::Plot.new(df, type: [:scatter, :line], x: [:fat, :fat], y: [:calories, :y_coords]) \n", "graph.chart.tap do |plot|\n", " plot.x_label \"Fat\"\n", " plot.y_label \"Calories\"\n", " plot.xrange [0,50]\n", " \n", " scatter = plot.diagrams[0]\n", " line = plot.diagrams[1]\n", " \n", " line.color \"#FF0000\" #set color of the line to 'red'\n", " scatter.tooltip_contents [:burger] # set tool tip to :burger\n", "end" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Ruby 2.4.1", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": ".rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.4.1" } }, "nbformat": 4, "nbformat_minor": 2 }