{ "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": [ { "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.9244635254291494
110.4078829961658763
220.575978367306516
330.8260751629090767
440.6290753555119412
550.7568707123738613
660.8725228089064007
770.810870990055066
880.7326539038221916
990.2123542488747251
10100.7144330343441595
11110.14346332617245683
12120.5786029105402647
13130.3623639916196123
14140.08242104719908916
15150.2684387487160035
16160.4160352261437694
17170.27689702370119307
18180.19856906960264653
19190.19201447633206215
20200.6586007217656679
21210.615596881481214
22220.39103091156144076
23230.9368145932060671
24240.46141490224331483
25250.3132275236441233
26260.9065486301693224
27270.9742477552526635
28280.07253198100985081
29290.2842567321582231
.........
99990.9852550421331631
" ], "text/plain": [ "#\n", " a b\n", " 0 0 0.92446352\n", " 1 1 0.40788299\n", " 2 2 0.57597836\n", " 3 3 0.82607516\n", " 4 4 0.62907535\n", " 5 5 0.75687071\n", " 6 6 0.87252280\n", " 7 7 0.81087099\n", " 8 8 0.73265390\n", " 9 9 0.21235424\n", " 10 10 0.71443303\n", " 11 11 0.14346332\n", " 12 12 0.57860291\n", " 13 13 0.36236399\n", " 14 14 0.08242104\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.92446352\n", " 1 1 0.40788299\n", " 2 2 0.57597836\n", " 3 3 0.82607516\n", " 4 4 0.62907535\n", " 5 5 0.75687071\n", " 6 6 0.87252280\n", " 7 7 0.81087099\n", " 8 8 0.73265390\n", " 9 9 0.21235424\n", " 10 10 0.71443303\n", " 11 11 0.14346332\n", " 12 12 0.57860291\n", " 13 13 0.36236399\n", " 14 14 0.08242104\n", " ... ... ..., @options={:type=>:scatter, :x=>:a, :y=>:b}, @user_options={}, @adapter=Daru::View::Adapter::NyaplotAdapter, @chart=#[#:scatter, :options=>{:x=>:a, :y=>:b}, :data=>\"19dabf3a-b845-46cd-a1d2-1ea2e3d42d22\"}, @xrange=[0, 99], @yrange=[0.0011499619432241426, 0.9852550421331631]>], :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=>\"19dabf3a-b845-46cd-a1d2-1ea2e3d42d22\"}, @xrange=[0, 99], @yrange=[0.0011499619432241426, 0.9852550421331631]>], :options=>{:zoom=>true, :width=>700, :xrange=>[0, 99], :yrange=>[0.0011499619432241426, 0.9852550421331631]}}>], :data=>{\"19dabf3a-b845-46cd-a1d2-1ea2e3d42d22\"=>#0, :b=>0.9244635254291494}, {:a=>1, :b=>0.4078829961658763}, {:a=>2, :b=>0.575978367306516}, {:a=>3, :b=>0.8260751629090767}, {:a=>4, :b=>0.6290753555119412}, {:a=>5, :b=>0.7568707123738613}, {:a=>6, :b=>0.8725228089064007}, {:a=>7, :b=>0.810870990055066}, {:a=>8, :b=>0.7326539038221916}, {:a=>9, :b=>0.2123542488747251}, {:a=>10, :b=>0.7144330343441595}, {:a=>11, :b=>0.14346332617245683}, {:a=>12, :b=>0.5786029105402647}, {:a=>13, :b=>0.3623639916196123}, {:a=>14, :b=>0.08242104719908916}, {:a=>15, :b=>0.2684387487160035}, {:a=>16, :b=>0.4160352261437694}, {:a=>17, :b=>0.27689702370119307}, {:a=>18, :b=>0.19856906960264653}, {:a=>19, :b=>0.19201447633206215}, {:a=>20, :b=>0.6586007217656679}, {:a=>21, :b=>0.615596881481214}, {:a=>22, :b=>0.39103091156144076}, {:a=>23, :b=>0.9368145932060671}, {:a=>24, :b=>0.46141490224331483}, {:a=>25, :b=>0.3132275236441233}, {:a=>26, :b=>0.9065486301693224}, {:a=>27, :b=>0.9742477552526635}, {:a=>28, :b=>0.07253198100985081}, {:a=>29, :b=>0.2842567321582231}, {:a=>30, :b=>0.9544475634955567}, {:a=>31, :b=>0.16489743291060055}, {:a=>32, :b=>0.7724657848497427}, {:a=>33, :b=>0.17559364302165326}, {:a=>34, :b=>0.5274090702541021}, {:a=>35, :b=>0.8257398946121347}, {:a=>36, :b=>0.6353565640566328}, {:a=>37, :b=>0.1999493668702793}, {:a=>38, :b=>0.58406589032885}, {:a=>39, :b=>0.17544604585850232}, {:a=>40, :b=>0.256378008654243}, {:a=>41, :b=>0.3457588053337821}, {:a=>42, :b=>0.25518696618364756}, {:a=>43, :b=>0.9346860620286644}, {:a=>44, :b=>0.9360072079725819}, {:a=>45, :b=>0.5816210871832042}, {:a=>46, :b=>0.10571611454022822}, {:a=>47, :b=>0.5893727438040716}, {:a=>48, :b=>0.6460745960059333}, {:a=>49, :b=>0.4524486809321385}, {:a=>50, :b=>0.490643032496895}, {:a=>51, :b=>0.444290518745592}, {:a=>52, :b=>0.8877732085689102}, {:a=>53, :b=>0.5267190660021867}, {:a=>54, :b=>0.26047729150217935}, {:a=>55, :b=>0.8443865248592695}, {:a=>56, :b=>0.19571583250093916}, {:a=>57, :b=>0.5967573565053291}, {:a=>58, :b=>0.9382182331687632}, {:a=>59, :b=>0.05253172043699472}, {:a=>60, :b=>0.024289743923200713}, {:a=>61, :b=>0.7102300116588129}, {:a=>62, :b=>0.3928864773514046}, {:a=>63, :b=>0.1170628437778507}, {:a=>64, :b=>0.8029130661710168}, {:a=>65, :b=>0.47700466514267814}, {:a=>66, :b=>0.2493068617595936}, {:a=>67, :b=>0.2045019967412317}, {:a=>68, :b=>0.5404917819765036}, {:a=>69, :b=>0.6896093828498238}, {:a=>70, :b=>0.6725420611838263}, {:a=>71, :b=>0.6486644920188196}, {:a=>72, :b=>0.44040646932440797}, {:a=>73, :b=>0.30337040275121474}, {:a=>74, :b=>0.8343218744057617}, {:a=>75, :b=>0.8256980833467563}, {:a=>76, :b=>0.6116531207183976}, {:a=>77, :b=>0.9026198894201414}, {:a=>78, :b=>0.539514349989767}, {:a=>79, :b=>0.18157692563625594}, {:a=>80, :b=>0.4971397441520087}, {:a=>81, :b=>0.7084282290196656}, {:a=>82, :b=>0.4482792292684068}, {:a=>83, :b=>0.16362612920693875}, {:a=>84, :b=>0.6970835739084812}, {:a=>85, :b=>0.9366105638822448}, {:a=>86, :b=>0.3505953867361664}, {:a=>87, :b=>0.4848447874291022}, {:a=>88, :b=>0.7798461031863256}, {:a=>89, :b=>0.28437300024658785}, {:a=>90, :b=>0.9084986366556426}, {:a=>91, :b=>0.8540094066855044}, {:a=>92, :b=>0.5447192453820503}, {:a=>93, :b=>0.3413841589301736}, {:a=>94, :b=>0.02051279215622359}, {:a=>95, :b=>0.0011499619432241426}, {:a=>96, :b=>0.2720529375379239}, {:a=>97, :b=>0.47801057806023994}, {:a=>98, :b=>0.003775664091289044}, {:a=>99, :b=>0.9852550421331631}]>}, :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=>\"9559fc0a-55f0-4ef0-b80f-090a2030e01b\"}, @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=>\"9559fc0a-55f0-4ef0-b80f-090a2030e01b\"}, @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=>\"06039712-b7a8-4f3c-b8bb-6b93fb1b9ad7\"}, @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\", \"T\", \"A\", \"T\", \"C\", \"T\", \"G\", \"T\", \"G\", \"T\", \"T\", \"A\", \"T\", \"T\", \"T\", \"T\", \"G\", \"C\", \"T\", \"C\", \"G\", \"C\", \"T\", \"G\", \"T\", \"C\", \"G\", \"C\", \"T\", \"G\", \"G\", \"G\", \"T\", \"C\", \"T\", \"T\", \"A\", \"A\", \"A\", \"A\", \"A\", \"C\", \"C\", \"G\", \"T\", \"A\", \"T\", \"A\", \"A\", \"C\", \"C\", \"T\", \"C\", \"A\", \"C\", \"T\", \"T\", \"T\", \"G\", \"T\", \"C\", \"G\", \"A\", \"G\", \"C\", \"C\", \"G\", \"A\", \"C\", \"A\", \"A\", \"C\", \"A\", \"T\", \"G\", \"A\", \"T\", \"T\", \"A\", \"A\", \"A\", \"C\", \"G\", \"T\", \"C\", \"G\", \"C\", \"C\", \"T\", \"T\", \"C\", \"A\", \"T\", \"G\", \"G\", \"C\", \"A\", \"A\", \"T\", \"T\", \"T\", \"A\", \"T\", \"C\", \"A\", \"A\", \"A\", \"T\", \"A\", \"G\", \"G\", \"T\", \"A\", \"C\", \"C\", \"T\", \"T\", \"A\", \"G\", \"T\", \"G\", \"A\", \"A\", \"A\", \"C\", \"G\", \"C\", \"G\", \"G\", \"A\", \"T\", \"A\", \"T\", \"A\", \"G\", \"T\", \"A\", \"C\", \"G\", \"T\", \"A\", \"A\", \"C\", \"G\", \"C\", \"G\", \"T\", \"C\", \"T\", \"A\", \"G\", \"A\", \"C\", \"C\", \"C\", \"A\", \"C\", \"T\", \"C\", \"A\", \"G\", \"C\", \"C\", \"C\", \"T\", \"G\", \"T\", \"G\", \"A\", \"C\", \"C\", \"T\", \"C\", \"A\", \"G\", \"G\", \"T\", \"T\", \"T\", \"A\", \"C\", \"T\", \"A\", \"C\", \"A\", \"C\", \"T\", \"T\", \"T\", \"C\", \"C\", \"A\", \"C\", \"C\", \"C\", \"T\", \"T\", \"G\", \"T\", \"C\", \"C\", \"G\", \"T\", \"A\", \"C\", \"T\", \"T\", \"G\", \"A\", \"A\", \"C\", \"G\", \"A\", \"G\", \"C\", \"C\", \"C\", \"G\", \"C\", \"A\", \"G\", \"A\", \"T\", \"T\", \"T\", \"G\", \"A\", \"G\", \"G\", \"A\", \"T\", \"A\", \"C\", \"A\", \"C\", \"C\", \"C\", \"G\", \"A\", \"G\", \"G\", \"C\", \"A\", \"G\", \"G\", \"C\", \"T\", \"C\", \"A\", \"C\", \"A\", \"G\", \"G\", \"G\", \"C\", \"A\", \"T\", \"T\", \"C\", \"C\", \"G\", \"A\", \"A\", \"G\", \"G\", \"C\", \"A\", \"G\", \"G\", \"T\", \"C\", \"G\", \"A\", \"C\", \"A\", \"C\", \"A\", \"G\", \"G\", \"T\", \"G\", \"G\", \"G\", \"C\", \"C\", \"A\", \"T\", \"C\", \"T\", \"C\", \"A\", \"A\", \"C\", \"T\", \"G\", \"T\", \"A\", \"T\", \"T\", \"A\", \"G\", \"T\", \"C\", \"C\", \"G\", \"G\", \"T\", \"C\", \"T\", \"C\", \"T\", \"C\", \"G\", \"C\", \"T\", \"C\", \"T\", \"T\", \"A\", \"G\", \"G\", \"T\", \"C\", \"T\", \"G\", \"T\", \"T\", \"A\", \"T\", \"T\", \"G\", \"T\", \"A\", \"C\", \"C\", \"A\", \"A\", \"C\", \"C\", \"C\", \"C\", \"G\", \"T\", \"A\", \"A\", \"G\", \"C\", \"T\", \"C\", \"A\", \"A\", \"T\", \"G\", \"C\", \"A\", \"T\", \"T\", \"C\", \"C\", \"A\", \"T\", \"G\", \"C\", \"G\", \"C\", \"G\", \"G\", \"T\", \"A\", \"G\", \"A\", \"C\", \"T\", \"G\", \"T\", \"A\", \"T\", \"A\", \"G\", \"C\", \"C\", \"T\", \"G\", \"A\", \"C\", \"C\", \"T\", \"A\", \"G\", \"A\", \"T\", \"G\", \"T\", \"C\", \"C\", \"C\", \"T\", \"C\", \"C\", \"A\", \"G\", \"T\", \"A\", \"G\", \"C\", \"G\", \"G\", \"G\", \"C\", \"G\", \"C\", \"G\", \"A\", \"G\", \"T\", \"G\", \"T\", \"T\", \"G\", \"T\", \"T\", \"G\", \"G\", \"C\", \"A\", \"G\", \"T\", \"A\", \"A\", \"C\", \"A\", \"C\", \"C\", \"A\", \"C\", \"C\", \"G\", \"C\", \"T\", \"T\", \"C\", \"T\", \"G\", \"G\", \"C\", \"A\", \"C\", \"C\", \"A\", \"C\", \"T\", \"A\", \"A\", \"G\", \"C\", \"A\", \"T\", \"A\", \"C\", \"T\", \"T\", \"T\", \"C\", \"T\", \"A\", \"G\", \"G\", \"C\", \"C\", \"T\", \"C\", \"A\", \"C\", \"C\", \"C\", \"A\", \"T\", \"G\", \"A\", \"T\", \"T\", \"C\", \"A\", \"G\", \"C\", \"A\", \"A\", \"C\", \"C\", \"G\", \"T\", \"G\", \"A\", \"T\", \"C\", \"T\", \"G\", \"A\", \"T\", \"G\", \"A\", \"G\", \"A\", \"T\", \"A\", \"T\", \"C\", \"C\", \"G\", \"T\", \"T\", \"T\", \"T\", \"T\", \"G\", \"T\", \"G\", \"C\", \"A\", \"G\", \"A\", \"G\", \"C\", \"C\", \"C\", \"T\", \"C\", \"G\", \"C\", \"T\", \"A\", \"G\", \"T\", \"T\", \"G\", \"A\", \"C\", \"C\", \"A\", \"G\", \"A\", \"C\", \"A\", \"T\", \"A\", \"C\", \"T\", \"A\", \"A\", \"C\", \"A\", \"G\", \"T\", \"C\", \"G\", \"T\", \"A\", \"T\", \"G\", \"G\", \"T\", \"C\", \"C\", \"T\", \"A\", \"C\", \"C\", \"A\", \"T\", \"G\", \"A\", \"T\", \"A\", \"A\", \"C\", \"A\", \"G\", \"A\", \"C\", \"G\", \"G\", \"A\", \"A\", \"G\", \"G\", \"C\", \"A\", \"A\", \"G\", \"G\", \"A\", \"C\", \"A\", \"C\", \"G\", \"T\", \"C\", \"G\", \"G\", \"C\", \"G\", \"C\", \"T\", \"T\", \"G\", \"G\", \"A\", \"G\", \"G\", \"C\", \"A\", \"G\", \"G\", \"C\", \"C\", \"C\", \"G\", \"G\", \"T\", \"T\", \"A\", \"T\", \"G\", \"A\", \"T\", \"G\", \"C\", \"G\", \"A\", \"T\", \"G\", \"T\", \"T\", \"A\", \"T\", \"G\", \"G\", \"T\", \"G\", \"G\", \"C\", \"G\", \"G\", \"G\", \"T\", \"T\", \"T\", \"C\", \"C\", \"C\", \"A\", \"A\", \"C\", \"G\", \"G\", \"G\", \"G\", \"A\", \"G\", \"G\", \"A\", \"G\", \"A\", \"A\", \"T\", \"T\", \"C\", \"T\", \"A\", \"T\", \"A\", \"T\", \"A\", \"T\", \"T\", \"C\", \"C\", \"A\", \"G\", \"G\", \"C\", \"T\", \"C\", \"T\", \"A\", \"A\", \"A\", \"A\", \"A\", \"T\", \"G\", \"A\", \"A\", \"G\", \"A\", \"G\", \"A\", \"C\", \"A\", \"A\", \"C\", \"G\", \"A\", \"G\", \"G\", \"T\", \"A\", \"G\", \"T\", \"C\", \"T\", \"G\", \"G\", \"A\", \"C\", \"A\", \"T\", \"C\", \"G\", \"C\", \"G\", \"G\", \"G\", \"A\", \"T\", \"T\", \"A\", \"C\", \"A\", \"G\", \"T\", \"A\", \"C\", \"G\", \"T\", \"G\", \"T\", \"A\", \"T\", \"G\", \"G\", \"C\", \"G\", \"G\", \"A\", \"C\", \"T\", \"T\", \"T\", \"G\", \"G\", \"G\", \"C\", \"A\", \"G\", \"T\", \"C\", \"G\", \"G\", \"T\", \"A\", \"A\", \"T\", \"C\", \"T\", \"G\", \"A\", \"T\", \"A\", \"A\", \"A\", \"C\", \"C\", \"G\", \"G\", \"C\", \"A\", \"C\", \"C\", \"G\", \"C\", \"C\", \"A\", \"G\", \"C\", \"T\", \"G\", \"A\", \"T\", \"C\", \"G\", \"G\", \"G\", \"G\", \"T\", \"C\", \"G\", \"G\", \"G\", \"A\", \"C\", \"A\", \"C\", \"A\", \"A\", \"C\", \"G\", \"A\", \"T\", \"A\", \"C\", \"C\", \"A\", \"C\", \"C\", \"G\", \"G\", \"G\", \"T\", \"C\", \"C\", \"C\", \"A\", \"G\", \"T\", \"T\", \"C\", \"C\", \"G\", \"A\", \"C\", \"G\", \"C\", \"T\", \"G\", \"T\", \"C\", \"A\", \"C\", \"C\", \"T\", \"C\", \"G\", \"T\", \"C\", \"G\", \"T\", \"T\", \"T\", \"G\", \"C\", \"T\", \"G\", \"C\", \"G\", \"A\", \"C\", \"T\", \"C\", \"T\", \"A\", \"C\", \"G\", \"G\", \"T\", \"G\", \"C\", \"T\", \"C\", \"A\", \"C\", \"C\", \"C\", \"T\", \"A\", \"T\", \"T\", \"T\", \"G\", \"A\", \"C\", \"A\", \"T\", \"G\", \"T\", \"C\", \"G\", \"C\", \"C\", \"C\", \"A\", \"C\", \"G\", \"G\", \"C\", \"G\", \"A\", \"A\", \"T\", \"C\", \"C\", \"C\", \"G\", \"G\", \"C\", \"G\", \"A\", \"A\", \"T\", \"A\", \"G\", \"G\", \"C\", \"A\", \"A\", \"G\", \"C\", \"A\", \"G\", \"C\", \"C\", \"T\", \"G\", \"G\", \"G\", \"G\", \"T\", \"C\", \"A\", \"C\", \"G\", \"C\", \"T\", \"C\", \"G\", \"A\", \"G\", \"G\", \"A\", \"C\", \"C\", \"C\", \"G\", \"T\", \"T\", \"C\", \"A\", \"G\", \"A\", \"T\", \"C\", \"G\", \"G\", \"A\", \"A\", \"G\", \"T\", \"G\", \"G\", \"G\", \"C\", \"C\", \"G\", \"T\", \"G\", \"T\", \"A\", \"G\", \"G\", \"G\", \"C\", \"C\", \"C\", \"T\", \"A\", \"G\", \"T\", \"C\", \"T\", \"T\", \"A\", \"T\", \"A\", \"A\", \"A\", \"C\", \"G\", \"A\", \"A\", \"C\", \"A\", \"G\", \"C\", \"A\", \"G\", \"C\", \"A\", \"A\"]\n" ] }, { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#:bar, :options=>{:value=>:a}, :data=>\"2888f3ea-150f-48c3-9fc0-e4ae972435be\"}, @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, :_index]}, :data=>\"1961c683-355a-452c-82c4-31fd0a55d721\"}, @xrange=[:a, :b, :c, :d, :_index], @yrange=[-5.900886276121593, 999]>], :options=>{:width=>700, :xrange=>[:a, :b, :c, :d, :_index], :yrange=>[-5.900886276121593, 999]}}>], :data=>{\"1961c683-355a-452c-82c4-31fd0a55d721\"=>#0.692597819746317, :b=>-1.1342527253171037, :c=>1.0618576017209487, :d=>1.200377165670212, :_index=>0}, {:a=>-1.2646992652847966, :b=>-3.5808740816059954, :c=>-1.0911691918132764, :d=>-1.3441090448702355, :_index=>1}, {:a=>-0.3770002734649624, :b=>-2.471250341831203, :c=>-0.11470030081145871, :d=>-0.19010035550445115, :_index=>2}, {:a=>-0.05161064750233256, :b=>-2.0645133093779156, :c=>0.24322828774743416, :d=>0.23290615824696764, :_index=>3}, {:a=>-0.47257824493258027, :b=>-2.5907228061657253, :c=>-0.2198360694258384, :d=>-0.3143517184123544, :_index=>4}, {:a=>-1.2474388053740717, :b=>-3.5592985067175897, :c=>-1.072182685911479, :d=>-1.3216704469862932, :_index=>5}, {:a=>-0.7391638175272921, :b=>-2.923954771909115, :c=>-0.5130801992800214, :d=>-0.6609129627854797, :_index=>6}, {:a=>1.286996467390722, :b=>-0.3912544157615976, :c=>1.7156961141297944, :d=>1.9730954076079386, :_index=>7}, {:a=>-0.962919000682736, :b=>-3.2036487508534197, :c=>-0.7592109007510095, :d=>-0.9517947008875567, :_index=>8}, {:a=>0.7025691078347955, :b=>-1.1217886152065057, :c=>1.0728260186182752, :d=>1.2133398401852342, :_index=>9}, {:a=>-0.23172018551638376, :b=>-2.2896502318954797, :c=>0.045107795931977834, :d=>-0.0012362411712988908, :_index=>10}, {:a=>-2.656803360322252, :b=>-5.321004200402815, :c=>-2.6224836963544775, :d=>-3.153844368418928, :_index=>11}, {:a=>0.7844102070400941, :b=>-1.0194872411998825, :c=>1.1628512277441037, :d=>1.3197332691521224, :_index=>12}, {:a=>0.08527869408443599, :b=>-1.893401632394455, :c=>0.39380656349287957, :d=>0.4108623023097668, :_index=>13}, {:a=>-1.5320814775254288, :b=>-3.915101846906786, :c=>-1.3852896252779718, :d=>-1.6917059207830574, :_index=>14}, {:a=>-0.015881209080311605, :b=>-2.0198515113503897, :c=>0.2825306700116572, :d=>0.2793544281955949, :_index=>15}, {:a=>0.02918005095237594, :b=>-1.9635249363095302, :c=>0.33209805604761355, :d=>0.3379340662380887, :_index=>16}, {:a=>-1.4859488218487262, :b=>-3.8574360273109076, :c=>-1.334543704033599, :d=>-1.6317334684033442, :_index=>17}, {:a=>-0.5431317589884461, :b=>-2.6789146987355577, :c=>-0.2974449348872908, :d=>-0.40607128668498, :_index=>18}, {:a=>2.334772587492681, :b=>0.9184657343658507, :c=>2.868249846241949, :d=>3.335204363740485, :_index=>19}, {:a=>-0.06722898552963796, :b=>-2.0840362319120476, :c=>0.2260481159173982, :d=>0.21260231881147063, :_index=>20}, {:a=>0.4593410409582457, :b=>-1.4258236988021928, :c=>0.8052751450540703, :d=>0.8971433532457194, :_index=>21}, {:a=>-0.43497349382419076, :b=>-2.5437168672802386, :c=>-0.17847084320660989, :d=>-0.26546554197144806, :_index=>22}, {:a=>-1.2457611292849153, :b=>-3.557201411606144, :c=>-1.070337242213407, :d=>-1.31948946807039, :_index=>23}, {:a=>-1.0402641025344659, :b=>-3.300330128168082, :c=>-0.8442905127879126, :d=>-1.0523433332948056, :_index=>24}, {:a=>-0.544455385684546, :b=>-2.6805692321056824, :c=>-0.2989009242530007, :d=>-0.40779200138990984, :_index=>25}, {:a=>0.6576017031714702, :b=>-1.1779978710356622, :c=>1.0233618734886172, :d=>1.1548822141229111, :_index=>26}, {:a=>2.6075522183895994, :b=>1.259440272986999, :c=>3.1683074402285594, :d=>3.6898178839064792, :_index=>27}, {:a=>-0.3136398729894116, :b=>-2.3920498412367643, :c=>-0.04500386028835279, :d=>-0.10773183488623511, :_index=>28}, {:a=>-0.42170407575164737, :b=>-2.527130094689559, :c=>-0.16387448332681215, :d=>-0.24821529847714158, :_index=>29}, {:a=>-1.0284511326479493, :b=>-3.2855639158099366, :c=>-0.8312962459127442, :d=>-1.036986472442334, :_index=>30}, {:a=>0.7623387066481385, :b=>-1.0470766166898269, :c=>1.1385725773129525, :d=>1.29104031864258, :_index=>31}, {:a=>-1.3502654837663115, :b=>-3.6878318547078894, :c=>-1.1852920321429428, :d=>-1.455345128896205, :_index=>32}, {:a=>-1.8029007703690272, :b=>-4.253625962961284, :c=>-1.68319084740593, :d=>-2.0437710014797354, :_index=>33}, {:a=>-0.7682682122303585, :b=>-2.9603352652879478, :c=>-0.5450950334533944, :d=>-0.6987486758994661, :_index=>34}, {:a=>-1.1871225575253403, :b=>-3.4839031969066756, :c=>-1.0058348132778745, :d=>-1.2432593247829424, :_index=>35}, {:a=>-0.691037162331844, :b=>-2.863796452914805, :c=>-0.46014087856502844, :d=>-0.5983483110313972, :_index=>36}, {:a=>-0.7830464249444781, :b=>-2.9788080311805976, :c=>-0.5613510674389259, :d=>-0.7179603524278215, :_index=>37}, {:a=>-1.4612421083606981, :b=>-3.8265526354508728, :c=>-1.307366319196768, :d=>-1.5996147408689076, :_index=>38}, {:a=>0.17434850794849982, :b=>-1.7820643650643753, :c=>0.4917833587433498, :d=>0.5266530603330497, :_index=>39}, {:a=>-0.5665955506200184, :b=>-2.708244438275023, :c=>-0.32325510568202037, :d=>-0.436574215806024, :_index=>40}, {:a=>1.45482724655556, :b=>-0.18146594180554998, :c=>1.9003099712111162, :d=>2.1912754205222282, :_index=>41}, {:a=>0.745190127514872, :b=>-1.0685123406064099, :c=>1.1197091402663593, :d=>1.2687471657693337, :_index=>42}, {:a=>-0.22617263557487263, :b=>-2.282715794468591, :c=>0.05121010086764008, :d=>0.005975573752665553, :_index=>43}, {:a=>-1.1694369790286294, :b=>-3.461796223785787, :c=>-0.9863806769314925, :d=>-1.2202680727372182, :_index=>44}, {:a=>0.25543577848218363, :b=>-1.6807052768972706, :c=>0.580979356330402, :d=>0.6320665120268387, :_index=>45}, {:a=>-0.9499114580786208, :b=>-3.1873893225982757, :c=>-0.7449026038864828, :d=>-0.9348848955022069, :_index=>46}, {:a=>1.3029438047785586, :b=>-0.37132024402680175, :c=>1.7332381852564147, :d=>1.9938269462121263, :_index=>47}, {:a=>0.9787102718827083, :b=>-0.7766121601466147, :c=>1.3765812990709794, :d=>1.572323353447521, :_index=>48}, {:a=>0.15395750217532153, :b=>-1.807553122280848, :c=>0.4693532523928537, :d=>0.5001447528279179, :_index=>49}, {:a=>1.571792009793805, :b=>-0.03525998775774397, :c=>2.0289712107731854, :d=>2.3433296127319463, :_index=>50}, {:a=>-0.06185962475178392, :b=>-2.07732453093973, :c=>0.2319544127730377, :d=>0.2195824878226809, :_index=>51}, {:a=>-0.47055566167783364, :b=>-2.5881945770972923, :c=>-0.2176112278456171, :d=>-0.31172236018118377, :_index=>52}, {:a=>-0.16767992005659854, :b=>-2.209599900070748, :c=>0.11555208793774158, :d=>0.08201610392642189, :_index=>53}, {:a=>1.1615556231675517, :b=>-0.5480554710405605, :c=>1.5777111854843069, :d=>1.8100223101178172, :_index=>54}, {:a=>-0.5634263281474716, :b=>-2.7042829101843395, :c=>-0.3197689609622188, :d=>-0.4324542265917131, :_index=>55}, {:a=>0.2898594875990443, :b=>-1.6376756405011947, :c=>0.6188454363589487, :d=>0.6768173338787575, :_index=>56}, {:a=>1.3257317856729651, :b=>-0.3428352679087936, :c=>1.7583049642402617, :d=>2.023451321374855, :_index=>57}, {:a=>1.6089417786789173, :b=>0.011177223348646681, :c=>2.069835956546809, :d=>2.3916243122825924, :_index=>58}, {:a=>-0.656307160775757, :b=>-2.8203839509696964, :c=>-0.4219378768533328, :d=>-0.5531993090084841, :_index=>59}, {:a=>-0.9866165892694112, :b=>-3.233270736586764, :c=>-0.7852782481963523, :d=>-0.9826015660502345, :_index=>60}, {:a=>0.1436468979585462, :b=>-1.8204413775518173, :c=>0.4580115877544009, :d=>0.48674096734611005, :_index=>61}, {:a=>0.4231115824948227, :b=>-1.4711105218814717, :c=>0.765422740744305, :d=>0.8500450572432696, :_index=>62}, {:a=>-0.9201216690220931, :b=>-3.1501520862776164, :c=>-0.7121338359243026, :d=>-0.8961581697287211, :_index=>63}, {:a=>0.7361341528846193, :b=>-1.0798323088942259, :c=>1.1097475681730813, :d=>1.256974398750005, :_index=>64}, {:a=>0.5168320399340904, :b=>-1.3539599500823871, :c=>0.8685152439274995, :d=>0.9718816519143176, :_index=>65}, {:a=>-0.8925371234306325, :b=>-3.1156714042882907, :c=>-0.6817908357736959, :d=>-0.8602982604598222, :_index=>66}, {:a=>0.08963429149980393, :b=>-1.8879571356252451, :c=>0.3985977206497843, :d=>0.4165245789497451, :_index=>67}, {:a=>-1.2423385877047741, :b=>-3.552923234630968, :c=>-1.0665724464752515, :d=>-1.3150401640162064, :_index=>68}, {:a=>-0.5350871356223333, :b=>-2.6688589195279167, :c=>-0.28859584918456677, :d=>-0.39561327630903337, :_index=>69}, {:a=>1.6983815780057137, :b=>0.1229769725071419, :c=>2.168219735806285, :d=>2.5078960514074278, :_index=>70}, {:a=>0.07231340171750042, :b=>-1.9096082478531244, :c=>0.37954474188925047, :d=>0.39400742223275054, :_index=>71}, {:a=>0.5371595188698579, :b=>-1.3285506014126778, :c=>0.8908754707568438, :d=>0.9983073745308153, :_index=>72}, {:a=>-0.11694258481506167, :b=>-2.146178231018827, :c=>0.17136315670343213, :d=>0.1479746397404198, :_index=>73}, {:a=>-2.081968790077777, :b=>-4.602460987597221, :c=>-1.9901656690855545, :d=>-2.40655942710111, :_index=>74}, {:a=>0.04382581217526131, :b=>-1.9452177347809234, :c=>0.3482083933927874, :d=>0.3569735558278397, :_index=>75}, {:a=>-0.7301384474012853, :b=>-2.9126730592516066, :c=>-0.503152292141414, :d=>-0.649179981621671, :_index=>76}, {:a=>0.34332281530817055, :b=>-1.5708464808647868, :c=>0.6776550968389876, :d=>0.7463196599006217, :_index=>77}, {:a=>-0.08224714654863949, :b=>-2.1028089331857993, :c=>0.20952813879649654, :d=>0.19307870948676864, :_index=>78}, {:a=>2.0824096429903873, :b=>0.6030120537379839, :c=>2.590650607289426, :d=>3.0071325358875036, :_index=>79}, {:a=>-1.7662922089674886, :b=>-4.207865261209361, :c=>-1.6429214298642376, :d=>-1.9961798716577352, :_index=>80}, {:a=>2.2532402948208823, :b=>0.8165503685261029, :c=>2.7785643243029705, :d=>3.229212383267147, :_index=>81}, {:a=>1.419707955228574, :b=>-0.22536505596428258, :c=>1.8616787507514316, :d=>2.1456203417971462, :_index=>82}, {:a=>1.0151447495320796, :b=>-0.7310690630849006, :c=>1.4166592244852876, :d=>1.6196881743917035, :_index=>83}, {:a=>1.8957373967587656, :b=>0.3696717459484571, :c=>2.385311136434642, :d=>2.764458615786395, :_index=>84}, {:a=>-1.0117510082828534, :b=>-3.2646887603535664, :c=>-0.8129261091111388, :d=>-1.0152763107677094, :_index=>85}, {:a=>0.5064733293313146, :b=>-1.3669083383358567, :c=>0.857120662264446, :d=>0.9584153281307091, :_index=>86}, {:a=>-0.10964107932236701, :b=>-2.1370513491529586, :c=>0.17939481274539626, :d=>0.15746659688092288, :_index=>87}, {:a=>0.9635869055821453, :b=>-0.7955163680223185, :c=>1.35994559614036, :d=>1.552662977256789, :_index=>88}, {:a=>1.1299861784005425, :b=>-0.587517276999322, :c=>1.542984796240597, :d=>1.7689820319207052, :_index=>89}, {:a=>1.3428247115111065, :b=>-0.32146911061111694, :c=>1.7771071826622173, :d=>2.0456721249644385, :_index=>90}, {:a=>1.802755570134851, :b=>0.25344446266856346, :c=>2.283031127148336, :d=>2.6435822411753063, :_index=>91}, {:a=>-0.15985515850632792, :b=>-2.19981894813291, :c=>0.12415932564303925, :d=>0.09218829394177369, :_index=>92}, {:a=>0.7399295955887278, :b=>-1.0750880055140901, :c=>1.1139225551476006, :d=>1.2619084742653461, :_index=>93}, {:a=>1.536423939349233, :b=>-0.079470075813459, :c=>1.9900663332841564, :d=>2.2973511211540028, :_index=>94}, {:a=>2.055190008017112, :b=>0.5689875100213899, :c=>2.560709008818823, :d=>2.9717470104222454, :_index=>95}, {:a=>0.011724502294725632, :b=>-1.9853443721315929, :c=>0.3128969525241982, :d=>0.31524185298314333, :_index=>96}, {:a=>0.2272441797858409, :b=>-1.7159447752676988, :c=>0.549968597764425, :d=>0.5954174337215932, :_index=>97}, {:a=>-0.17381953120309723, :b=>-2.2172744140038714, :c=>0.10879851567659302, :d=>0.07403460943597359, :_index=>98}, {:a=>-0.04603429857029374, :b=>-2.057542873212867, :c=>0.24936227157267687, :d=>0.24015541185861813, :_index=>99}, {:a=>-1.6669091808819534, :b=>-4.083636476102441, :c=>-1.5336000989701488, :d=>-1.8669819351465395, :_index=>100}, {:a=>-1.2392442971703357, :b=>-3.5490553714629196, :c=>-1.0631687268873693, :d=>-1.3110175863214364, :_index=>101}, {:a=>0.744092083770503, :b=>-1.0698848952868714, :c=>1.1185012921475532, :d=>1.267319708901654, :_index=>102}, {:a=>0.15781967383676326, :b=>-1.802725407704046, :c=>0.4736016412204396, :d=>0.5051655759877922, :_index=>103}, {:a=>0.4898038791065912, :b=>-1.387745151116761, :c=>0.8387842670172503, :d=>0.9367450428385686, :_index=>104}, {:a=>-0.5136792605578655, :b=>-2.642099075697332, :c=>-0.26504718661365206, :d=>-0.36778303872522516, :_index=>105}, {:a=>0.9701517719300411, :b=>-0.7873102850874487, :c=>1.3671669491230454, :d=>1.5611973035090536, :_index=>106}, {:a=>0.3050468211746546, :b=>-1.6186914735316817, :c=>0.6355515032921201, :d=>0.6965608675270509, :_index=>107}, {:a=>1.1509294973989248, :b=>-0.5613381282513441, :c=>1.5660224471388173, :d=>1.7962083466186023, :_index=>108}, {:a=>0.4050080986053218, :b=>-1.4937398767433478, :c=>0.7455089084658539, :d=>0.8265105281869183, :_index=>109}, {:a=>-0.7017694634542675, :b=>-2.8772118293178344, :c=>-0.4719464097996943, :d=>-0.6123003024905478, :_index=>110}, {:a=>-1.8815796298229033, :b=>-4.351974537278629, :c=>-1.7697375928051937, :d=>-2.1460535187697745, :_index=>111}, {:a=>1.508272015378524, :b=>-0.11465998077684492, :c=>1.9590992169163766, :d=>2.2607536199920815, :_index=>112}, {:a=>0.539060009241221, :b=>-1.3261749884484737, :c=>0.8929660101653432, :d=>1.0007780120135874, :_index=>113}, {:a=>-2.401362974230947, :b=>-5.001703717788683, :c=>-2.3414992716540417, :d=>-2.821771866500231, :_index=>114}, {:a=>-0.42929564866803405, :b=>-2.5366195608350424, :c=>-0.1722252135348375, :d=>-0.25808434326844426, :_index=>115}, {:a=>1.4605676416593298, :b=>-0.1742904479258378, :c=>1.906624405825263, :d=>2.198737934157129, :_index=>116}, {:a=>-0.3789220855951821, :b=>-2.4736526069939777, :c=>-0.11681429415470035, :d=>-0.19259871127373673, :_index=>117}, {:a=>0.62554788844845, :b=>-1.2180651394394375, :c=>0.988102677293295, :d=>1.113212254982985, :_index=>118}, {:a=>-1.1952812667706347, :b=>-3.4941015834632934, :c=>-1.0148093934476983, :d=>-1.2538656468018252, :_index=>119}, {:a=>-0.7235477355846236, :b=>-2.9044346694807794, :c=>-0.49590250914308603, :d=>-0.6406120562600106, :_index=>120}, {:a=>0.7068881441747363, :b=>-1.1163898197815796, :c=>1.07757695859221, :d=>1.2189545874271572, :_index=>121}, {:a=>0.2676993670654331, :b=>-1.6653757911682086, :c=>0.5944693037719764, :d=>0.6480091771850631, :_index=>122}, {:a=>0.7617710929795829, :b=>-1.0477861337755214, :c=>1.1379482022775413, :d=>1.2903024208734577, :_index=>123}, {:a=>-0.09200021469486451, :b=>-2.1150002683685805, :c=>0.198799763835649, :d=>0.1803997208966761, :_index=>124}, {:a=>-0.5604740314546155, :b=>-2.7005925393182695, :c=>-0.31652143460007715, :d=>-0.4286162408910002, :_index=>125}, {:a=>-0.43353589383868013, :b=>-2.54191986729835, :c=>-0.17688948322254822, :d=>-0.26359666199028425, :_index=>126}, {:a=>0.65021073112527, :b=>-1.1872365860934126, :c=>1.015231804237797, :d=>1.1452739504628509, :_index=>127}, {:a=>0.6475850860843265, :b=>-1.190518642394592, :c=>1.0123435946927593, :d=>1.1418606119096244, :_index=>128}, {:a=>0.9021234877517382, :b=>-0.8723456403103274, :c=>1.2923358365269122, :d=>1.4727605340772598, :_index=>129}, {:a=>0.8583167985252435, :b=>-0.9271040018434458, :c=>1.2441484783777679, :d=>1.4158118380828166, :_index=>130}, {:a=>-0.15409095884552476, :b=>-2.192613698556906, :c=>0.13049994526992273, :d=>0.09968175350081779, :_index=>131}, {:a=>0.19259815920720896, :b=>-1.7592523009909888, :c=>0.5118579751279299, :d=>0.5503776069693717, :_index=>132}, {:a=>0.297899528636101, :b=>-1.6276255892048739, :c=>0.6276894814997112, :d=>0.6872693872269313, :_index=>133}, {:a=>0.25370665873457343, :b=>-1.6828666765817832, :c=>0.5790773246080307, :d=>0.6298186563549455, :_index=>134}, {:a=>-0.16483044802415686, :b=>-2.206038060030196, :c=>0.11868650717342744, :d=>0.08572041756859605, :_index=>135}, {:a=>0.961670434857702, :b=>-0.7979119564278725, :c=>1.3578374783434723, :d=>1.5501715653150128, :_index=>136}, {:a=>-1.8346126800008467, :b=>-4.293265850001058, :c=>-1.7180739480009313, :d=>-2.084996484001101, :_index=>137}, {:a=>-0.8022275633300834, :b=>-3.002784454162604, :c=>-0.5824503196630919, :d=>-0.7428958323291084, :_index=>138}, {:a=>-1.6579020310736607, :b=>-4.072377538842076, :c=>-1.5236922341810268, :d=>-1.8552726403957591, :_index=>139}, {:a=>-1.2908653500696674, :b=>-3.613581687587084, :c=>-1.1199518850766341, :d=>-1.3781249550905676, :_index=>140}, {:a=>-1.3120513400096099, :b=>-3.640064175012012, :c=>-1.1432564740105708, :d=>-1.4056667420124929, :_index=>141}, {:a=>0.5739662565882505, :b=>-1.282542179264687, :c=>0.9313628822470756, :d=>1.0461561335647256, :_index=>142}, {:a=>1.2192582615792384, :b=>-0.475927173025952, :c=>1.6411840877371624, :d=>1.88503574005301, :_index=>143}, {:a=>-1.3022343818907045, :b=>-3.627792977363381, :c=>-1.132457820079775, :d=>-1.392904696457916, :_index=>144}, {:a=>0.9289525844659153, :b=>-0.8388092694176059, :c=>1.321847842912507, :d=>1.50763835980569, :_index=>145}, {:a=>0.9446911360773707, :b=>-0.8191360799032867, :c=>1.3391602496851078, :d=>1.5280984769005819, :_index=>146}, {:a=>-0.6107412627212507, :b=>-2.7634265784015635, :c=>-0.3718153889933759, :d=>-0.493963641537626, :_index=>147}, {:a=>0.6786353950759432, :b=>-1.1517057561550712, :c=>1.0464989345835376, :d=>1.1822260135987261, :_index=>148}, {:a=>0.6758925418993886, :b=>-1.1551343226257642, :c=>1.0434817960893275, :d=>1.1786603044692052, :_index=>149}, {:a=>0.16994317921525287, :b=>-1.7875710259809339, :c=>0.48693749713677814, :d=>0.5209261329798287, :_index=>150}, {:a=>-0.7059835384076024, :b=>-2.882479423009503, :c=>-0.4765818922483627, :d=>-0.6177785999298833, :_index=>151}, {:a=>-0.7338592857518363, :b=>-2.9173241071897955, :c=>-0.5072452143270201, :d=>-0.6540170714773872, :_index=>152}, {:a=>1.178628933932483, :b=>-0.5267138325843965, :c=>1.5964918273257314, :d=>1.832217614112228, :_index=>153}, {:a=>0.11599414504623458, :b=>-1.8550073186922067, :c=>0.42759355955085804, :d=>0.45079238856010495, :_index=>154}, {:a=>1.0306506736143857, :b=>-0.711686657982018, :c=>1.4337157409758243, :d=>1.6398458756987015, :_index=>155}, {:a=>1.0912607489440436, :b=>-0.6359240638199457, :c=>1.5003868238384481, :d=>1.7186389736272567, :_index=>156}, {:a=>0.3218304913444451, :b=>-1.5977118858194437, :c=>0.6540135404788896, :d=>0.7183796387477785, :_index=>157}, {:a=>0.6703948754815495, :b=>-1.162006405648063, :c=>1.0374343630297045, :d=>1.1715133381260143, :_index=>158}, {:a=>0.426866799760797, :b=>-1.4664165002990037, :c=>0.7695534797368767, :d=>0.8549268396890362, :_index=>159}, {:a=>-0.50646207252547, :b=>-2.6330775906568373, :c=>-0.25710827977801715, :d=>-0.3584006942831111, :_index=>160}, {:a=>-2.2170128974137397, :b=>-4.771266121767175, :c=>-2.1387141871551143, :d=>-2.582116766637862, :_index=>161}, {:a=>0.2654428194300027, :b=>-1.6681964757124965, :c=>0.5919871013730029, :d=>0.6450756652590035, :_index=>162}, {:a=>-0.1767033311234381, :b=>-2.2208791639042977, :c=>0.10562633576421804, :d=>0.07028566953953044, :_index=>163}, {:a=>1.4458535106738502, :b=>-0.19268311165768748, :c=>1.8904388617412353, :d=>2.179609563876005, :_index=>164}, {:a=>1.0144087864795857, :b=>-0.7319890169005181, :c=>1.4158496651275443, :d=>1.6187314224234615, :_index=>165}, {:a=>-1.874779547122763, :b=>-4.343474433903454, :c=>-1.7622575018350395, :d=>-2.137213411259592, :_index=>166}, {:a=>1.1144281634486835, :b=>-0.6069647956891457, :c=>1.525870979793552, :d=>1.7487566124832885, :_index=>167}, {:a=>0.4304335951289377, :b=>-1.4619580060888278, :c=>0.7734769546418314, :d=>0.8595636736676191, :_index=>168}, {:a=>1.043943515233206, :b=>-0.6950706059584926, :c=>1.4483378667565268, :d=>1.6571265698031679, :_index=>169}, {:a=>0.5814802130422774, :b=>-1.2731497336971533, :c=>0.9396282343465052, :d=>1.0559242769549606, :_index=>170}, {:a=>0.4874636362118599, :b=>-1.3906704547351751, :c=>0.8362099998330459, :d=>0.9337027270754179, :_index=>171}, {:a=>-0.9901313959486167, :b=>-3.237664244935771, :c=>-0.7891445355434783, :d=>-0.9871708147332017, :_index=>172}, {:a=>-0.5928222998589574, :b=>-2.741027874823697, :c=>-0.35210452984485324, :d=>-0.4706689898166447, :_index=>173}, {:a=>1.6627172710486218, :b=>0.07839658881077716, :c=>2.128988998153484, :d=>2.4615324523632083, :_index=>174}, {:a=>1.6099069823704886, :b=>0.012383727963110491, :c=>2.0708976806075374, :d=>2.392879077081635, :_index=>175}, {:a=>-0.9722756169040948, :b=>-3.2153445211301186, :c=>-0.7695031785945043, :d=>-0.9639583019753233, :_index=>176}, {:a=>0.15538056203325049, :b=>-1.805774297458437, :c=>0.47091861823657555, :d=>0.5019947306432256, :_index=>177}, {:a=>-0.3562761961143114, :b=>-2.445345245142889, :c=>-0.09190381572574258, :d=>-0.16315905494860483, :_index=>178}, {:a=>-1.3748061100473852, :b=>-3.7185076375592314, :c=>-1.2122867210521238, :d=>-1.4872479430616008, :_index=>179}, {:a=>0.49269328984874433, :b=>-1.3841333876890696, :c=>0.8419626188336189, :d=>0.9405012768033676, :_index=>180}, {:a=>0.04315129581000852, :b=>-1.9460608802374892, :c=>0.34746642539100936, :d=>0.3560966845530111, :_index=>181}, {:a=>0.11710074971685686, :b=>-1.8536240628539289, :c=>0.42881082468854254, :d=>0.4522309746319139, :_index=>182}, {:a=>0.383381413767251, :b=>-1.5207732327909362, :c=>0.7217195551439761, :d=>0.7983958378974263, :_index=>183}, {:a=>1.5662935306304147, :b=>-0.04213308671198179, :c=>2.022922883693456, :d=>2.336181589819539, :_index=>184}, {:a=>-0.40748080131260955, :b=>-2.509351001640762, :c=>-0.14822888144387053, :d=>-0.22972504170639246, :_index=>185}, {:a=>0.4196885279954149, :b=>-1.4753893400057314, :c=>0.7616573807949565, :d=>0.8455950863940394, :_index=>186}, {:a=>1.3436602294864075, :b=>-0.3204247131419906, :c=>1.7780262524350485, :d=>2.0467582983323296, :_index=>187}, {:a=>-0.3154500557588966, :b=>-2.394312569698621, :c=>-0.046995061334786314, :d=>-0.11008507248656563, :_index=>188}, {:a=>-1.2408823730745515, :b=>-3.5511029663431892, :c=>-1.0649706103820067, :d=>-1.313147084996917, :_index=>189}, {:a=>-1.1932986439925846, :b=>-3.4916233049907306, :c=>-1.0126285083918432, :d=>-1.25128823719036, :_index=>190}, {:a=>0.08275245578512307, :b=>-1.8965594302685962, :c=>0.39102770136363535, :d=>0.40757819252065997, :_index=>191}, {:a=>0.09542136432925281, :b=>-1.880723294588434, :c=>0.4049635007621781, :d=>0.42404777362802865, :_index=>192}, {:a=>0.5520542530357425, :b=>-1.309932183705322, :c=>0.9072596783393168, :d=>1.0176705289464654, :_index=>193}, {:a=>-1.4846131088791386, :b=>-3.855766386098923, :c=>-1.3330744197670525, :d=>-1.6299970415428802, :_index=>194}, {:a=>-1.6823810128292136, :b=>-4.102976266036517, :c=>-1.550619114112135, :d=>-1.8870953166779778, :_index=>195}, {:a=>0.4063281728282372, :b=>-1.4920897839647036, :c=>0.746960990111061, :d=>0.8282266246767083, :_index=>196}, {:a=>-0.5334109190936661, :b=>-2.6667636488670827, :c=>-0.28675201100303277, :d=>-0.39343419482176595, :_index=>197}, {:a=>0.7917676424884464, :b=>-1.010290446889442, :c=>1.1709444067372912, :d=>1.3292979352349805, :_index=>198}, {:a=>-1.8404965353688802, :b=>-4.3006206692111, :c=>-1.7245461889057683, :d=>-2.0926454959795446, :_index=>199}, {:a=>0.7220890673908419, :b=>-1.0973886657614478, :c=>1.0942979741299261, :d=>1.2387157876080945, :_index=>200}, {:a=>-0.22142345924017592, :b=>-2.27677932405022, :c=>0.056434194835806445, :d=>0.012149502987771288, :_index=>201}, {:a=>1.163955836263335, :b=>-0.5450552046708312, :c=>1.5803514198896687, :d=>1.8131425871423357, :_index=>202}, {:a=>-0.09131941101488954, :b=>-2.114149263768612, :c=>0.19954864788362148, :d=>0.18128476568064358, :_index=>203}, {:a=>-0.6831984659207098, :b=>-2.8539980824008873, :c=>-0.4515183125127808, :d=>-0.5881580056969227, :_index=>204}, {:a=>-0.45411590986780515, :b=>-2.5676448873347564, :c=>-0.1995275008545857, :d=>-0.29035068282814674, :_index=>205}, {:a=>-0.9784059522006746, :b=>-3.2230074402508433, :c=>-0.7762465474207421, :d=>-0.971927737860877, :_index=>206}, {:a=>1.1163307919859968, :b=>-0.6045865100175041, :c=>1.5279638711845966, :d=>1.751230029581796, :_index=>207}, {:a=>-0.04909137088617827, :b=>-2.061364213607723, :c=>0.24599949202520388, :d=>0.23618121784796825, :_index=>208}, {:a=>0.9626602438703651, :b=>-0.7966746951620438, :c=>1.3589262682574017, :d=>1.5514583170314746, :_index=>209}, {:a=>-0.013278056096547641, :b=>-2.0165975701206844, :c=>0.28539413829379756, :d=>0.28273852707448804, :_index=>210}, {:a=>-0.3135096060564313, :b=>-2.391887007570539, :c=>-0.0448605666620745, :d=>-0.1075624878733607, :_index=>211}, {:a=>0.1030530338434129, :b=>-1.8711837076957338, :c=>0.41335833722775417, :d=>0.43396894399643676, :_index=>212}, {:a=>0.8167748745368009, :b=>-0.9790314068289989, :c=>1.198452361990481, :d=>1.3618073368978412, :_index=>213}, {:a=>0.37559918548575055, :b=>-1.5305010181428118, :c=>0.7131591040343257, :d=>0.7882789411314757, :_index=>214}, {:a=>-0.41688833629430233, :b=>-2.521110420367878, :c=>-0.1585771699237326, :d=>-0.24195483718259309, :_index=>215}, {:a=>-1.012417744484925, :b=>-3.265522180606156, :c=>-0.8136595189334175, :d=>-1.0161430678304024, :_index=>216}, {:a=>-0.6587929674949208, :b=>-2.823491209368651, :c=>-0.4246722642444129, :d=>-0.556430857743397, :_index=>217}, {:a=>-1.9638554986665648, :b=>-4.454819373333206, :c=>-1.8602410485332215, :d=>-2.2530121482665346, :_index=>218}, {:a=>0.41203648620958805, :b=>-1.484954392238015, :c=>0.7532401348305469, :d=>0.8356474320724645, :_index=>219}, {:a=>0.7654996442151513, :b=>-1.043125444731061, :c=>1.1420496086366665, :d=>1.2951495374796966, :_index=>220}, {:a=>-0.02483702715992918, :b=>-2.0310462839499115, :c=>0.2726792701240779, :d=>0.26771186469209207, :_index=>221}, {:a=>-0.4054703176181688, :b=>-2.506837897022711, :c=>-0.14601734937998573, :d=>-0.22711141290361953, :_index=>222}, {:a=>-1.7588548915063806, :b=>-4.1985686143829755, :c=>-1.6347403806570189, :d=>-1.986511358958295, :_index=>223}, {:a=>-0.1666819858488074, :b=>-2.2083524823110094, :c=>0.11664981556631185, :d=>0.08331341839655038, :_index=>224}, {:a=>0.6549124327181066, :b=>-1.1813594591023668, :c=>1.0204036759899173, :d=>1.1513861625335386, :_index=>225}, {:a=>0.25398639531987516, :b=>-1.6825170058501562, :c=>0.5793850348518628, :d=>0.6301823139158378, :_index=>226}, {:a=>1.9074760723776534, :b=>0.38434509047206644, :c=>2.398223679615419, :d=>2.779718894090949, :_index=>227}, {:a=>-0.8200168334673661, :b=>-3.025021041834208, :c=>-0.6020185168141028, :d=>-0.7660218835075758, :_index=>228}, {:a=>0.30967482656617346, :b=>-1.6129064667922832, :c=>0.6406423092227909, :d=>0.7025772745360255, :_index=>229}, {:a=>-0.08124426774936166, :b=>-2.101555334686702, :c=>0.21063130547570214, :d=>0.1943824519258298, :_index=>230}, {:a=>-1.1598461635420494, :b=>-3.4498077044275615, :c=>-0.9758307798962544, :d=>-1.2078000126046642, :_index=>231}, {:a=>-0.4722262609037896, :b=>-2.590282826129737, :c=>-0.2194488869941686, :d=>-0.31389413917492653, :_index=>232}, {:a=>0.3827116830796328, :b=>-1.521610396150459, :c=>0.7209828513875962, :d=>0.7975251880035227, :_index=>233}, {:a=>-0.14979487969884434, :b=>-2.1872435996235553, :c=>0.13522563233127122, :d=>0.10526665639150234, :_index=>234}, {:a=>0.9768678701217598, :b=>-0.7789151623478003, :c=>1.374554657133936, :d=>1.5699282311582878, :_index=>235}, {:a=>0.5319341175978339, :b=>-1.3350823530027076, :c=>0.8851275293576173, :d=>0.9915143528771841, :_index=>236}, {:a=>1.0550441174239575, :b=>-0.6811948532200531, :c=>1.4605485291663534, :d=>1.671557352651145, :_index=>237}, {:a=>0.008473391282859465, :b=>-1.9894082608964256, :c=>0.3093207304111454, :d=>0.3110154086677173, :_index=>238}, {:a=>-0.2698792953411976, :b=>-2.337349119176497, :c=>0.0031327751246826296, :d=>-0.05084308394355691, :_index=>239}, {:a=>0.19545737175807917, :b=>-1.755678285302401, :c=>0.5150031089338871, :d=>0.5540945832855029, :_index=>240}, {:a=>-1.119081814879022, :b=>-3.3988522685987776, :c=>-0.9309899963669244, :d=>-1.1548063593427287, :_index=>241}, {:a=>0.1303980331827305, :b=>-1.837002458521587, :c=>0.44343783650100355, :d=>0.4695174431375496, :_index=>242}, {:a=>1.0874139154257763, :b=>-0.6407326057177798, :c=>1.496155306968354, :d=>1.7136380900535093, :_index=>243}, {:a=>-0.48195721382589285, :b=>-2.602446517282366, :c=>-0.23015293520848218, :d=>-0.3265443779736607, :_index=>244}, {:a=>-1.6520431726238571, :b=>-4.065053965779821, :c=>-1.517247489886243, :d=>-1.8476561244110143, :_index=>245}, {:a=>-0.5580333875809408, :b=>-2.697541734476176, :c=>-0.313836726339035, :d=>-0.4254434038552231, :_index=>246}, {:a=>-0.3027729136136506, :b=>-2.3784661420170634, :c=>-0.03305020497501571, :d=>-0.09360478769774583, :_index=>247}, {:a=>-0.8403322459645522, :b=>-3.0504153074556903, :c=>-0.6243654705610076, :d=>-0.792431919753918, :_index=>248}, {:a=>0.019087799128978962, :b=>-1.9761402510887762, :c=>0.32099657904187684, :d=>0.32481413886767263, :_index=>249}, {:a=>0.08418667487994683, :b=>-1.8947666564000665, :c=>0.39260534236794153, :d=>0.40944267734393086, :_index=>250}, {:a=>-1.316518128739934, :b=>-3.6456476609249173, :c=>-1.1481699416139273, :d=>-1.411473567361914, :_index=>251}, {:a=>-1.1247704983233833, :b=>-3.405963122904229, :c=>-0.9372475481557216, :d=>-1.1622016478203983, :_index=>252}, {:a=>0.39047408973816417, :b=>-1.5119073878272948, :c=>0.7295214987119807, :d=>0.8076163166596135, :_index=>253}, {:a=>0.21403457007556384, :b=>-1.7324567874055452, :c=>0.5354380270831203, :d=>0.578244941098233, :_index=>254}, {:a=>-1.1340005636605253, :b=>-3.4175007045756565, :c=>-0.9474006200265779, :d=>-1.1742007327586828, :_index=>255}, {:a=>1.600711983367413, :b=>0.0008899792092660341, :c=>2.0607831817041546, :d=>2.380925578377637, :_index=>256}, {:a=>0.7241916078017452, :b=>-1.0947604902478185, :c=>1.0966107685819197, :d=>1.2414490901422688, :_index=>257}, {:a=>1.1285362610268856, :b=>-0.5893296737163931, :c=>1.5413898871295744, :d=>1.7670971393349515, :_index=>258}, {:a=>-0.8126060527382093, :b=>-3.015757565922762, :c=>-0.5938666580120302, :d=>-0.7563878685596721, :_index=>259}, {:a=>-0.30882991047950664, :b=>-2.3860373880993833, :c=>-0.03971290152745732, :d=>-0.10147888362335866, :_index=>260}, {:a=>2.753363790129241, :b=>1.441704737661551, :c=>3.328700169142165, :d=>3.879372927168013, :_index=>261}, {:a=>-0.14278660703427318, :b=>-2.1784832587928413, :c=>0.14293473226229947, :d=>0.11437741085544484, :_index=>262}, {:a=>0.467655899592832, :b=>-1.41543012550896, :c=>0.8144214895521151, :d=>0.9079526694706817, :_index=>263}, {:a=>0.11891860681369466, :b=>-1.8513517414828817, :c=>0.43081046749506413, :d=>0.45459418885780306, :_index=>264}, {:a=>0.5771169127551239, :b=>-1.278603859056095, :c=>0.9348286040306364, :d=>1.050251986581661, :_index=>265}, {:a=>-0.30146963113612585, :b=>-2.3768370389201574, :c=>-0.03161659424973845, :d=>-0.09191052047696363, :_index=>266}, {:a=>-1.5628300443062386, :b=>-3.9535375553827983, :c=>-1.4191130487368626, :d=>-1.7316790575981102, :_index=>267}, {:a=>1.4117782156116296, :b=>-0.23527723048546312, :c=>1.8529560371727927, :d=>2.1353116802951186, :_index=>268}, {:a=>-0.6581395810959434, :b=>-2.8226744763699294, :c=>-0.42395353920553785, :d=>-0.5555814554247265, :_index=>269}, {:a=>-0.2228652257096624, :b=>-2.278581532137078, :c=>0.05484825171937133, :d=>0.010275206577438856, :_index=>270}, {:a=>-0.8389960067140294, :b=>-3.0487450083925367, :c=>-0.6228956073854324, :d=>-0.7906948087282382, :_index=>271}, {:a=>0.5390226240238175, :b=>-1.3262217199702282, :c=>0.8929248864261994, :d=>1.0007294112309628, :_index=>272}, {:a=>0.07969682765079543, :b=>-1.9003789654365058, :c=>0.38766651041587497, :d=>0.40360587594603403, :_index=>273}, {:a=>-0.3221209707154308, :b=>-2.4026512133942886, :c=>-0.05433306778697389, :d=>-0.11875726193006003, :_index=>274}, {:a=>-0.34226622961332026, :b=>-2.4278327870166505, :c=>-0.07649285257465233, :d=>-0.14494609849731638, :_index=>275}, {:a=>-0.7682897000983909, :b=>-2.9603621251229884, :c=>-0.54511867010823, :d=>-0.6987766101279083, :_index=>276}, {:a=>-0.712073414585119, :b=>-2.8900917682313985, :c=>-0.4832807560436309, :d=>-0.6256954389606546, :_index=>277}, {:a=>0.314230401026736, :b=>-1.60721199871658, :c=>0.6456534411294096, :d=>0.7084995213347568, :_index=>278}, {:a=>0.3094907701258323, :b=>-1.6131365373427096, :c=>0.6404398471384156, :d=>0.702338001163582, :_index=>279}, {:a=>-1.111776291322203, :b=>-3.389720364152754, :c=>-0.9229539204544233, :d=>-1.1453091787188638, :_index=>280}, {:a=>1.2435840578788058, :b=>-0.44551992765149295, :c=>1.6679424636666864, :d=>1.9166592752424476, :_index=>281}, {:a=>0.7535532734200506, :b=>-1.058058408224937, :c=>1.1289086007620557, :d=>1.279619255446066, :_index=>282}, {:a=>0.36606639945622377, :b=>-1.5424170006797202, :c=>0.7026730394018461, :d=>0.7758863192930909, :_index=>283}, {:a=>0.40905127432314453, :b=>-1.4886859070960694, :c=>0.749956401755459, :d=>0.8317666566200879, :_index=>284}, {:a=>0.17944753609387865, :b=>-1.7756905798826517, :c=>0.49739228970326654, :d=>0.5332817969220423, :_index=>285}, {:a=>0.0369253986702648, :b=>-1.953843251662169, :c=>0.3406179385372913, :d=>0.3480030182713442, :_index=>286}, {:a=>-2.16058259663773, :b=>-4.700728245797162, :c=>-2.0766408563015033, :d=>-2.5087573756290493, :_index=>287}, {:a=>0.6292686261117331, :b=>-1.2134142173603337, :c=>0.9921954887229065, :d=>1.118049213945253, :_index=>288}, {:a=>-0.7638669855052892, :b=>-2.9548337318816116, :c=>-0.5402536840558183, :d=>-0.693027081156876, :_index=>289}, {:a=>0.4409049456783553, :b=>-1.448868817902056, :c=>0.784995440246191, :d=>0.873176429381862, :_index=>290}, {:a=>0.5984660464364225, :b=>-1.2519174419544719, :c=>0.9583126510800648, :d=>1.0780058603673492, :_index=>291}, {:a=>-0.40888146038112305, :b=>-2.5111018254764037, :c=>-0.14976960641923542, :d=>-0.23154589849545998, :_index=>292}, {:a=>1.3964890977360072, :b=>-0.25438862782999117, :c=>1.836138007509608, :d=>2.1154358270568094, :_index=>293}, {:a=>1.4291864606332592, :b=>-0.21351692420842605, :c=>1.8721051066965853, :d=>2.157942398823237, :_index=>294}, {:a=>-3.1207090208972743, :b=>-5.900886276121593, :c=>-3.132779922987002, :d=>-3.756921727166457, :_index=>295}, {:a=>-0.08065160939369813, :b=>-2.1008145117421226, :c=>0.21128322966693203, :d=>0.19515290778819241, :_index=>296}, {:a=>0.3254130492685705, :b=>-1.5932336884142868, :c=>0.6579543541954276, :d=>0.7230369640491416, :_index=>297}, {:a=>-0.31141995021426644, :b=>-2.389274937767833, :c=>-0.04256194523569312, :d=>-0.10484593527854641, :_index=>298}, {:a=>0.9478620382878569, :b=>-0.8151724521401791, :c=>1.3426482421166426, :d=>1.532220649774214, :_index=>299}, {:a=>0.08808537940091818, :b=>-1.8898932757488522, :c=>0.39689391734101, :d=>0.4145109932211936, :_index=>300}, {:a=>-1.0232203242439526, :b=>-3.2790254053049406, :c=>-0.825542356668348, :d=>-1.0301864215171384, :_index=>301}, {:a=>1.345907333705033, :b=>-0.31761583286870887, :c=>1.7804980670755364, :d=>2.0496795338165428, :_index=>302}, {:a=>1.0657889589105167, :b=>-0.6677638013618541, :c=>1.4723678548015686, :d=>1.6855256465836719, :_index=>303}, {:a=>-0.21875932458538003, :b=>-2.273449155731725, :c=>0.059364742956081934, :d=>0.015612878039005962, :_index=>304}, {:a=>0.31365304519936066, :b=>-1.607933693500799, :c=>0.6450183497192967, :d=>0.7077489587591689, :_index=>305}, {:a=>-1.1053500918197035, :b=>-3.3816876147746293, :c=>-0.9158851010016738, :d=>-1.1369551193656144, :_index=>306}, {:a=>0.22455266374925195, :b=>-1.719309170313435, :c=>0.5470079301241771, :d=>0.5919184628740275, :_index=>307}, {:a=>-0.6144491767632972, :b=>-2.7680614709541214, :c=>-0.375894094439627, :d=>-0.4987839297922864, :_index=>308}, {:a=>0.7232514384259496, :b=>-1.095935701967563, :c=>1.0955765822685446, :d=>1.2402268699537344, :_index=>309}, {:a=>0.6090416443602252, :b=>-1.2386979445497186, :c=>0.9699458087962478, :d=>1.0917541376682929, :_index=>310}, {:a=>1.6891718924956123, :b=>0.11146486561951541, :c=>2.1580890817451737, :d=>2.495923460244296, :_index=>311}, {:a=>0.6810807227593663, :b=>-1.148649096550792, :c=>1.049188795035303, :d=>1.1854049395871762, :_index=>312}, {:a=>1.1411659723405396, :b=>-0.5735425345743255, :c=>1.5552825695745938, :d=>1.7835157640427015, :_index=>313}, {:a=>0.3490814687972602, :b=>-1.5636481640034248, :c=>0.6839896156769862, :d=>0.7538059094364382, :_index=>314}, {:a=>0.8188022406502522, :b=>-0.9764971991871849, :c=>1.2006824647152774, :d=>1.364442912845328, :_index=>315}, {:a=>0.8861352846543922, :b=>-0.8923308941820098, :c=>1.2747488131198315, :d=>1.45197587005071, :_index=>316}, {:a=>1.6572583813853798, :b=>0.07157297673172458, :c=>2.122984219523918, :d=>2.4544358958009935, :_index=>317}, {:a=>-0.8293434927838046, :b=>-3.0366793659797557, :c=>-0.612277842062185, :d=>-0.7781465406189461, :_index=>318}, {:a=>-0.45066907443456655, :b=>-2.563336343043208, :c=>-0.19573598187802327, :d=>-0.28586979676493657, :_index=>319}, {:a=>-1.160337513072265, :b=>-3.4504218913403313, :c=>-0.9763712643794917, :d=>-1.2084387669939447, :_index=>320}, {:a=>1.7188367643075704, :b=>0.14854595538446302, :c=>2.1907204407383274, :d=>2.5344877935998413, :_index=>321}, {:a=>0.32003248345480834, :b=>-1.5999593956814895, :c=>0.6520357318002892, :d=>0.7160422284912509, :_index=>322}, {:a=>0.17434506277814782, :b=>-1.7820686715273153, :c=>0.4917795690559626, :d=>0.5266485816115922, :_index=>323}, {:a=>0.8562438467449497, :b=>-0.929695191568813, :c=>1.2418682314194447, :d=>1.4131170007684346, :_index=>324}, {:a=>-0.428930838477528, :b=>-2.53616354809691, :c=>-0.17182392232528082, :d=>-0.25761009002078644, :_index=>325}, {:a=>-0.7798416857206023, :b=>-2.9748021071507527, :c=>-0.5578258542926626, :d=>-0.7137941914367829, :_index=>326}, {:a=>0.18816321348001167, :b=>-1.7647959831499853, :c=>0.5069795348280128, :d=>0.5446121775240151, :_index=>327}, {:a=>-1.356628293826556, :b=>-3.695785367283195, :c=>-1.1922911232092115, :d=>-1.4636167819745227, :_index=>328}, {:a=>-1.344209764145558, :b=>-3.6802622051819474, :c=>-1.1786307405601137, :d=>-1.4474726933892252, :_index=>329}, {:a=>1.125225520408245, :b=>-0.5934680994896937, :c=>1.5377480724490697, :d=>1.7627931765307188, :_index=>330}, {:a=>-0.28228938657242114, :b=>-2.3528617332155264, :c=>-0.010518325229663283, :d=>-0.06697620254414749, :_index=>331}, {:a=>1.3953831692912826, :b=>-0.2557710383858969, :c=>1.834921486220411, :d=>2.1139981200786675, :_index=>332}, {:a=>-0.30220558781679835, :b=>-2.377756984770998, :c=>-0.0324261465984782, :d=>-0.09286726416183788, :_index=>333}, {:a=>-1.1841917983248191, :b=>-3.480239747906024, :c=>-1.0026109781573012, :d=>-1.2394493378222649, :_index=>334}, {:a=>-1.0576394080261247, :b=>-3.3220492600326557, :c=>-0.8634033488287371, :d=>-1.074931230433962, :_index=>335}, {:a=>-0.561074644052383, :b=>-2.7013433050654787, :c=>-0.31718210845762146, :d=>-0.429397037268098, :_index=>336}, {:a=>-1.0554238045535431, :b=>-3.319279755691929, :c=>-0.8609661850088974, :d=>-1.0720509459196061, :_index=>337}, {:a=>-0.0845379935591307, :b=>-2.1056724919489134, :c=>0.2070082070849562, :d=>0.1901006083731301, :_index=>338}, {:a=>0.14463498594120827, :b=>-1.8192062675734897, :c=>0.4590984845353291, :d=>0.48802548172357074, :_index=>339}, {:a=>1.4280975963382954, :b=>-0.2148780045771308, :c=>1.870907355972125, :d=>2.156526875239784, :_index=>340}, {:a=>0.7056895140542848, :b=>-1.117888107432144, :c=>1.0762584654597134, :d=>1.2173963682705702, :_index=>341}, {:a=>-2.0901075339436375, :b=>-4.612634417429547, :c=>-1.9991182873380013, :d=>-2.417139794126729, :_index=>342}, {:a=>-0.9437787950306463, :b=>-3.179723493788308, :c=>-0.7381566745337109, :d=>-0.9269124335398402, :_index=>343}, {:a=>-0.3076254684948249, :b=>-2.384531835618531, :c=>-0.03838801534430747, :d=>-0.09991310904327244, :_index=>344}, {:a=>-1.474588750405495, :b=>-3.8432359380068686, :c=>-1.3220476254460447, :d=>-1.6169653755271436, :_index=>345}, {:a=>-0.7645699043981604, :b=>-2.9557123804977006, :c=>-0.5410268948379766, :d=>-0.6939408757176087, :_index=>346}, {:a=>-0.02446122699110769, :b=>-2.0305765337388846, :c=>0.2730926503097815, :d=>0.26820040491156, :_index=>347}, {:a=>0.2489643445907053, :b=>-1.6887945692616184, :c=>0.5738607790497758, :d=>0.6236536479679169, :_index=>348}, {:a=>-0.10758311635536218, :b=>-2.134478895444203, :c=>0.18165857200910157, :d=>0.16014194873802914, :_index=>349}, {:a=>-1.1306831031976619, :b=>-3.413353878997077, :c=>-0.9437514135174281, :d=>-1.1698880341569604, :_index=>350}, {:a=>0.9638424906888197, :b=>-0.7951968866389756, :c=>1.3602267397577017, :d=>1.5529952378954657, :_index=>351}, {:a=>0.5906725577679622, :b=>-1.2616593027900471, :c=>0.9497398135447586, :d=>1.067874325098351, :_index=>352}, {:a=>-1.0623719086864554, :b=>-3.3279648858580693, :c=>-0.868609099555101, :d=>-1.081083481292392, :_index=>353}, {:a=>0.5281400145528322, :b=>-1.3398249818089598, :c=>0.8809540160081155, :d=>0.9865820189186818, :_index=>354}, {:a=>-0.3613006537105782, :b=>-2.451625817138223, :c=>-0.09743071908163603, :d=>-0.16969084982375165, :_index=>355}, {:a=>-0.7644272499181588, :b=>-2.9555340623976987, :c=>-0.5408699749099748, :d=>-0.6937554248936064, :_index=>356}, {:a=>0.20404502887119913, :b=>-1.7449437139110011, :c=>0.5244495317583191, :d=>0.565258537532559, :_index=>357}, {:a=>0.45838241340954344, :b=>-1.4270219832380708, :c=>0.8042206547504978, :d=>0.8958971374324065, :_index=>358}, {:a=>-0.6893085919281486, :b=>-2.8616357399101857, :c=>-0.4582394511209636, :d=>-0.5961011695065932, :_index=>359}, {:a=>0.2576258499283992, :b=>-1.677967687589501, :c=>0.5833884349212392, :d=>0.634913604906919, :_index=>360}, {:a=>-0.020445881817457177, :b=>-2.0255573522718215, :c=>0.2775095300007971, :d=>0.27342035363730566, :_index=>361}, {:a=>0.9041234169553961, :b=>-0.8698457288057548, :c=>1.2945357586509358, :d=>1.475360442042015, :_index=>362}, {:a=>-1.698268216111427, :b=>-4.122835270139284, :c=>-1.56809503772257, :d=>-1.9077486809448552, :_index=>363}, {:a=>0.0427424078071852, :b=>-1.9465719902410186, :c=>0.3470166485879037, :d=>0.35556513014934077, :_index=>364}, {:a=>2.3741113957857047, :b=>0.9676392447321307, :c=>2.9115225353642753, :d=>3.386344814521416, :_index=>365}, {:a=>1.7793805241741487, :b=>0.22422565521768556, :c=>2.2573185765915635, :d=>2.613194681426393, :_index=>366}, {:a=>-1.4879564227844906, :b=>-3.8599455284806132, :c=>-1.3367520650629396, :d=>-1.6343433496198378, :_index=>367}, {:a=>-0.6913239444762619, :b=>-2.864154930595327, :c=>-0.4604563389238881, :d=>-0.5987211278191404, :_index=>368}, {:a=>-1.0316027581569005, :b=>-3.2895034476961253, :c=>-0.8347630339725907, :d=>-1.0410835856039706, :_index=>369}, {:a=>0.5185139184164251, :b=>-1.3518576019794686, :c=>0.8703653102580677, :d=>0.9740680939413526, :_index=>370}, {:a=>0.07496968441424735, :b=>-1.9062878944821908, :c=>0.38246665285567205, :d=>0.39746058973852155, :_index=>371}, {:a=>2.8109127318280485, :b=>1.5136409147850602, :c=>3.3920040050108535, :d=>3.954186551376463, :_index=>372}, {:a=>-1.2349573624426196, :b=>-3.5436967030532744, :c=>-1.0584530986868816, :d=>-1.3054445711754055, :_index=>373}, {:a=>-0.026666256312526344, :b=>-2.0333328203906578, :c=>0.270667118056221, :d=>0.26533386679371573, :_index=>374}, {:a=>0.18070744357677807, :b=>-1.7741156955290274, :c=>0.4987781879344559, :d=>0.5349196766498114, :_index=>375}, {:a=>-0.75189587691746, :b=>-2.939869846146825, :c=>-0.527085464609206, :d=>-0.677464639992698, :_index=>376}, {:a=>0.8963676830642514, :b=>-0.8795403961696857, :c=>1.2860044513706765, :d=>1.465277987983527, :_index=>377}, {:a=>0.5724874256315683, :b=>-1.2843907179605396, :c=>0.9297361681947252, :d=>1.0442336533210388, :_index=>378}, {:a=>-1.056331579194291, :b=>-3.320414473992864, :c=>-0.8619647371137202, :d=>-1.0732310529525784, :_index=>379}, {:a=>0.01779050480273787, :b=>-1.9777618689965777, :c=>0.3195695552830117, :d=>0.3231276562435592, :_index=>380}, {:a=>-1.2805188518742652, :b=>-3.6006485648428317, :c=>-1.1085707370616917, :d=>-1.3646745074365447, :_index=>381}, {:a=>-0.040303959397168264, :b=>-2.0503799492464605, :c=>0.2556656446631149, :d=>0.24760485278368125, :_index=>382}, {:a=>-0.3091338174368356, :b=>-2.3864172717960446, :c=>-0.04004719918051919, :d=>-0.10187396266788629, :_index=>383}, {:a=>-0.4997750522666816, :b=>-2.624718815333352, :c=>-0.24975255749334985, :d=>-0.34970756794668617, :_index=>384}, {:a=>-0.2893393738459336, :b=>-2.3616742173074172, :c=>-0.018273311230527, :d=>-0.0761411859997137, :_index=>385}, {:a=>-0.2834559870444398, :b=>-2.3543199838055497, :c=>-0.011801585748883847, :d=>-0.0684927831577718, :_index=>386}, {:a=>-1.3765520962855102, :b=>-3.7206901203568874, :c=>-1.2142073059140612, :d=>-1.4895177251711633, :_index=>387}, {:a=>1.084163688663155, :b=>-0.6447953891710565, :c=>1.4925800575294705, :d=>1.7094127952621014, :_index=>388}, {:a=>-0.8078153965319611, :b=>-3.0097692456649514, :c=>-0.5885969361851573, :d=>-0.7501600154915495, :_index=>389}, {:a=>-2.234794287888396, :b=>-4.7934928598604944, :c=>-2.158273716677236, :d=>-2.605232574254915, :_index=>390}, {:a=>0.3865354169757147, :b=>-1.5168307287803566, :c=>0.7251889586732863, :d=>0.8024960420684291, :_index=>391}, {:a=>0.0417699504836467, :b=>-1.9477875618954417, :c=>0.3459469455320114, :d=>0.3543009356287407, :_index=>392}, {:a=>1.307928248171764, :b=>-0.3650896897852951, :c=>1.7387210729889406, :d=>2.0003067226232933, :_index=>393}, {:a=>0.6369966928454535, :b=>-1.2037541339431832, :c=>1.000696362129999, :d=>1.1280957006990895, :_index=>394}, {:a=>2.4449462935292954, :b=>1.0561828669116191, :c=>2.989440922882225, :d=>3.478430181588084, :_index=>395}, {:a=>-0.13742012202450207, :b=>-2.1717751525306275, :c=>0.1488378657730477, :d=>0.12135384136814728, :_index=>396}, {:a=>-1.5547862181329974, :b=>-3.943482772666247, :c=>-1.4102648399462974, :d=>-1.7212220835728969, :_index=>397}, {:a=>0.22983493616372955, :b=>-1.712706329795338, :c=>0.5528184297801025, :d=>0.5987854170128484, :_index=>398}, {:a=>-0.14280455271814477, :b=>-2.1785056908976808, :c=>0.14291499201004074, :d=>0.1143540814664118, :_index=>399}, {:a=>0.07438592022711835, :b=>-1.907017599716102, :c=>0.38182451224983016, :d=>0.39670169629525387, :_index=>400}, {:a=>1.3691036040747688, :b=>-0.28862049490653896, :c=>1.806013964482246, :d=>2.0798346852971994, :_index=>401}, {:a=>-0.49547850784052305, :b=>-2.6193481348006538, :c=>-0.2450263586245754, :d=>-0.34412206019268005, :_index=>402}, {:a=>0.9830233652293381, :b=>-0.7712207934633275, :c=>1.381325701752272, :d=>1.5779303747981397, :_index=>403}, {:a=>-0.5104407532744553, :b=>-2.638050941593069, :c=>-0.26148482860190086, :d=>-0.36357297925679183, :_index=>404}, {:a=>1.091933449269073, :b=>-0.6350831884136587, :c=>1.5011267941959805, :d=>1.7195134840497952, :_index=>405}, {:a=>-0.3457202209727289, :b=>-2.432150276215911, :c=>-0.08029224307000188, :d=>-0.1494362872645476, :_index=>406}, {:a=>-0.7770791745023967, :b=>-2.971348968127996, :c=>-0.5547870919526365, :d=>-0.7102029268531158, :_index=>407}, {:a=>-0.23798934935626595, :b=>-2.2974866866953323, :c=>0.03821171570810744, :d=>-0.009386154163145755, :_index=>408}, {:a=>-0.006324647342470653, :b=>-2.007905809178088, :c=>0.29304288792328226, :d=>0.29177795845478816, :_index=>409}, {:a=>0.9405727736997288, :b=>-0.8242840328753391, :c=>1.3346300510697018, :d=>1.5227446058096474, :_index=>410}, {:a=>-0.5766099425290492, :b=>-2.7207624281613114, :c=>-0.33427093678195413, :d=>-0.449592925287764, :_index=>411}, {:a=>1.0577481282654382, :b=>-0.6778148396682024, :c=>1.463522941091982, :d=>1.6750725667450697, :_index=>412}, {:a=>1.0901038890670358, :b=>-0.6373701386662054, :c=>1.4991142779737396, :d=>1.7171350557871468, :_index=>413}, {:a=>-0.3150425921203243, :b=>-2.3938032401504055, :c=>-0.04654685133235681, :d=>-0.10955536975642166, :_index=>414}, {:a=>0.8995351032685688, :b=>-0.8755811209142892, :c=>1.2894886135954258, :d=>1.4693956342491394, :_index=>415}, {:a=>0.8241876463561361, :b=>-0.9697654420548301, :c=>1.2066064109917498, :d=>1.371443940262977, :_index=>416}, {:a=>-0.05298060462328336, :b=>-2.0662257557791044, :c=>0.2417213349143883, :d=>0.23112521398973163, :_index=>417}, {:a=>-0.9492124209078766, :b=>-3.186515526134846, :c=>-0.7441336629986643, :d=>-0.9339761471802397, :_index=>418}, {:a=>1.4360596850632275, :b=>-0.20492539367096585, :c=>1.8796656535695504, :d=>2.1668775905821955, :_index=>419}, {:a=>0.1978847051359405, :b=>-1.7526441185800743, :c=>0.5176731756495345, :d=>0.5572501166767226, :_index=>420}, {:a=>-1.9820494481951898, :b=>-4.477561810243987, :c=>-1.8802543930147089, :d=>-2.276664282653747, :_index=>421}, {:a=>-0.8523222126365366, :b=>-3.0654027657956706, :c=>-0.6375544339001904, :d=>-0.8080188764274976, :_index=>422}, {:a=>1.2635099046486382, :b=>-0.42061261918920234, :c=>1.6898608951135021, :d=>1.9425628760432299, :_index=>423}, {:a=>-0.5091645849145525, :b=>-2.6364557311431907, :c=>-0.26008104340600785, :d=>-0.36191396038891827, :_index=>424}, {:a=>-0.2717628802341757, :b=>-2.3397036002927196, :c=>0.001060831742406676, :d=>-0.05329174430442846, :_index=>425}, {:a=>1.3362582793031246, :b=>-0.3296771508710943, :c=>1.7698841072334373, :d=>2.037135763094062, :_index=>426}, {:a=>0.7006090620712221, :b=>-1.1242386724109723, :c=>1.0706699682783443, :d=>1.2107917806925887, :_index=>427}, {:a=>-2.1083468591950814, :b=>-4.6354335739938515, :c=>-2.01918154511459, :d=>-2.440850916953606, :_index=>428}, {:a=>-0.8819542216469097, :b=>-3.102442777058637, :c=>-0.6701496438116008, :d=>-0.8465404881409826, :_index=>429}, {:a=>-0.8627914424511618, :b=>-3.078489303063952, :c=>-0.649070586696278, :d=>-0.8216288751865104, :_index=>430}, {:a=>-1.1225066293194381, :b=>-3.4031332866492976, :c=>-0.934757292251382, :d=>-1.1592586181152695, :_index=>431}, {:a=>-0.15880304579996574, :b=>-2.198503807249957, :c=>0.12531664962003766, :d=>0.09355604046004454, :_index=>432}, {:a=>-0.5671252688363737, :b=>-2.708906586045467, :c=>-0.3238377957200111, :d=>-0.43726284948728583, :_index=>433}, {:a=>0.1791970842964248, :b=>-1.776003644629469, :c=>0.4971167927260673, :d=>0.5329562095853523, :_index=>434}, {:a=>-1.478105790763095, :b=>-3.8476322384538686, :c=>-1.3259163698394045, :d=>-1.6215375279920234, :_index=>435}, {:a=>0.8178799951438506, :b=>-0.9776500060701869, :c=>1.1996679946582356, :d=>1.3632439936870058, :_index=>436}, {:a=>0.8316503353040331, :b=>-0.9604370808699587, :c=>1.2148153688344365, :d=>1.381145435895243, :_index=>437}, {:a=>-0.4984958923719095, :b=>-2.623119865464887, :c=>-0.24834548160910047, :d=>-0.3480446600834824, :_index=>438}, {:a=>0.09263939305715581, :b=>-1.8842007586785552, :c=>0.4019033323628714, :d=>0.4204312109743025, :_index=>439}, {:a=>-0.6754958442224281, :b=>-2.8443698052780353, :c=>-0.44304542864467106, :d=>-0.5781445974891566, :_index=>440}, {:a=>-0.30208518388365263, :b=>-2.377606479854566, :c=>-0.03229370227201794, :d=>-0.09271073904874844, :_index=>441}, {:a=>-0.5950402464478237, :b=>-2.7438003080597797, :c=>-0.35454427109260617, :d=>-0.4735523203821708, :_index=>442}, {:a=>0.5239153938359556, :b=>-1.3451057577050554, :c=>0.8763069332195512, :d=>0.9810900119867423, :_index=>443}, {:a=>0.7458429590358808, :b=>-1.067696301205149, :c=>1.120427254939469, :d=>1.269595846746645, :_index=>444}, {:a=>0.24214929786942774, :b=>-1.6973133776632152, :c=>0.5663642276563705, :d=>0.6147940872302561, :_index=>445}, {:a=>-1.510039481769447, :b=>-3.8875493522118085, :c=>-1.3610434299463916, :d=>-1.663051326300281, :_index=>446}, {:a=>1.4711484426471622, :b=>-0.16106444669104736, :c=>1.9182632869118785, :d=>2.212492975441311, :_index=>447}, {:a=>1.649962688040928, :b=>0.062453360051159645, :c=>2.1149589568450207, :d=>2.444951494453206, :_index=>448}, {:a=>-0.4855555395673975, :b=>-2.606944424459247, :c=>-0.23411109352413734, :d=>-0.33122220143761677, :_index=>449}, {:a=>1.2684836479087167, :b=>-0.4143954401141041, :c=>1.6953320126995886, :d=>1.9490287422813317, :_index=>450}, {:a=>-0.07164810270424239, :b=>-2.089560128380303, :c=>0.22118708702533335, :d=>0.2068574664844849, :_index=>451}, {:a=>0.5570620073079442, :b=>-1.3036724908650696, :c=>0.9127682080387387, :d=>1.0241806095003274, :_index=>452}, {:a=>0.045573519336288865, :b=>-1.9430331008296389, :c=>0.35013087126991776, :d=>0.35924557513717553, :_index=>453}, {:a=>-0.1615280450172886, :b=>-2.2019100562716107, :c=>0.12231915048098252, :d=>0.0900135414775248, :_index=>454}, {:a=>-0.9064773020227748, :b=>-3.1330966275284684, :c=>-0.6971250322250524, :d=>-0.8784204926296071, :_index=>455}, {:a=>-0.7553695811600686, :b=>-2.944211976450086, :c=>-0.5309065392760755, :d=>-0.6819804555080893, :_index=>456}, {:a=>0.021080980290950495, :b=>-1.9736487746363118, :c=>0.3231890783200455, :d=>0.32740527437823563, :_index=>457}, {:a=>1.144295699764585, :b=>-0.5696303752942689, :c=>1.5587252697410436, :d=>1.7875844096939606, :_index=>458}, {:a=>-0.8983817699151216, :b=>-3.122977212393902, :c=>-0.6882199469066339, :d=>-0.8678963008896581, :_index=>459}, {:a=>0.8946997954508229, :b=>-0.8816252556864714, :c=>1.2841697749959053, :d=>1.46310973408607, :_index=>460}, {:a=>0.2835348243258748, :b=>-1.6455814695926565, :c=>0.6118883067584623, :d=>0.6685952716236372, :_index=>461}, {:a=>-0.38496898488125325, :b=>-2.4812112311015664, :c=>-0.12346588336937864, :d=>-0.20045968034562928, :_index=>462}, {:a=>0.44722912130872694, :b=>-1.4409635983640914, :c=>0.7919520334395997, :d=>0.881397857701345, :_index=>463}, {:a=>1.3020173062065925, :b=>-0.37247836724175953, :c=>1.7322190368272519, :d=>1.9926224980685703, :_index=>464}, {:a=>-0.31474237008505096, :b=>-2.3934279626063137, :c=>-0.04621660709355607, :d=>-0.10916508111056628, :_index=>465}, {:a=>1.4688495133668693, :b=>-0.16393810829141353, :c=>1.9157344647035564, :d=>2.20950436737693, :_index=>466}, {:a=>0.7152712013155229, :b=>-1.1059109983555964, :c=>1.0867983214470753, :d=>1.2298525617101799, :_index=>467}, {:a=>0.5946499808609024, :b=>-1.2566875239238722, :c=>0.9541149789469927, :d=>1.073044975119173, :_index=>468}, {:a=>0.9712249956647806, :b=>-0.7859687554190242, :c=>1.3683474952312589, :d=>1.5625924943642149, :_index=>469}, {:a=>-2.3909602179866494, :b=>-4.988700272483312, :c=>-2.3300562397853146, :d=>-2.8082482833826443, :_index=>470}, {:a=>-1.4830185397845623, :b=>-3.853773174730703, :c=>-1.3313203937630187, :d=>-1.627924101719931, :_index=>471}, {:a=>-0.6048844695770009, :b=>-2.756105586971251, :c=>-0.3653729165347011, :d=>-0.4863498104501012, :_index=>472}, {:a=>1.178423423827818, :b=>-0.5269707202152276, :c=>1.5962657662106, :d=>1.8319504509761635, :_index=>473}, {:a=>-0.46833433965233556, :b=>-2.5854179245654194, :c=>-0.21516777361756917, :d=>-0.30883464154803625, :_index=>474}, {:a=>-0.882075257372393, :b=>-3.102594071715491, :c=>-0.6702827831096323, :d=>-0.846697834584111, :_index=>475}, {:a=>-0.2749148588241134, :b=>-2.3436435735301417, :c=>-0.0024063447065247323, :d=>-0.05738931647134743, :_index=>476}, {:a=>0.14362263360990207, :b=>-1.8204717079876225, :c=>0.4579848969708923, :d=>0.4867094236928727, :_index=>477}, {:a=>-0.9616174559201824, :b=>-3.202021819900228, :c=>-0.7577792015122007, :d=>-0.9501026926962373, :_index=>478}, {:a=>-0.0786045081859427, :b=>-2.0982556352324284, :c=>0.213535040995463, :d=>0.19781413935827447, :_index=>479}, {:a=>1.0902341286552693, :b=>-0.6372073391809134, :c=>1.4992575415207963, :d=>1.7173043672518502, :_index=>480}, {:a=>1.1385194352596033, :b=>-0.5768507059254959, :c=>1.5523713787855637, :d=>1.7800752658374843, :_index=>481}, {:a=>0.15621302194612274, :b=>-1.8047337225673465, :c=>0.471834324140735, :d=>0.5030769285299596, :_index=>482}, {:a=>-1.04161467756221, :b=>-3.3020183469527624, :c=>-0.8457761453184309, :d=>-1.054099080830873, :_index=>483}, {:a=>0.482387219887609, :b=>-1.397015975140489, :c=>0.83062594187637, :d=>0.9271033858538917, :_index=>484}, {:a=>0.6727077638467871, :b=>-1.159115295191516, :c=>1.0399785402314659, :d=>1.1745200930008233, :_index=>485}, {:a=>-0.3174236331147882, :b=>-2.396779541393485, :c=>-0.04916599642626707, :d=>-0.11265072304922469, :_index=>486}, {:a=>-0.37289629379096295, :b=>-2.4661203672387035, :c=>-0.11018592317005926, :d=>-0.18476518192825186, :_index=>487}, {:a=>-0.08568131670495578, :b=>-2.107101645881195, :c=>0.20575055162454864, :d=>0.18861428828355747, :_index=>488}, {:a=>-0.6596186209225608, :b=>-2.824523276153201, :c=>-0.42558048301481705, :d=>-0.5575042071993292, :_index=>489}, {:a=>0.1359822887116181, :b=>-1.8300221391104774, :c=>0.44958051758277995, :d=>0.47677697532510355, :_index=>490}, {:a=>0.8730091510466548, :b=>-0.9087385611916816, :c=>1.2603100661513202, :d=>1.4349118963606513, :_index=>491}, {:a=>0.5204340759435593, :b=>-1.349457405070551, :c=>0.8724774835379152, :d=>0.976564298726627, :_index=>492}, {:a=>-0.21846426303328279, :b=>-2.2730803287916035, :c=>0.059689310663388895, :d=>0.015996458056732332, :_index=>493}, {:a=>-1.1873412412783955, :b=>-3.4841765515979946, :c=>-1.006075365406235, :d=>-1.243543613661914, :_index=>494}, {:a=>0.12078627427644405, :b=>-1.849017157154445, :c=>0.4328649017040884, :d=>0.4570221565593773, :_index=>495}, {:a=>0.24373362564534237, :b=>-1.695332967943322, :c=>0.5681069882098766, :d=>0.6168537133389451, :_index=>496}, {:a=>-0.31383130760649963, :b=>-2.3922891345081245, :c=>-0.04521443836714961, :d=>-0.10798069988844955, :_index=>497}, {:a=>-1.1060834122745793, :b=>-3.382604265343224, :c=>-0.9166917535020374, :d=>-1.1379084359569531, :_index=>498}, {:a=>1.0575651643451118, :b=>-0.6780435445686104, :c=>1.4633216807796232, :d=>1.6748347136486454, :_index=>499}, {:a=>0.43251020388458666, :b=>-1.4593622451442667, :c=>0.7757612242730454, :d=>0.8622632650499626, :_index=>500}, {:a=>0.35097899666271626, :b=>-1.5612762541716048, :c=>0.6860768963289878, :d=>0.7562726956615311, :_index=>501}, {:a=>0.697118482481145, :b=>-1.1286018968985687, :c=>1.0668303307292597, :d=>1.2062540272254887, :_index=>502}, {:a=>-1.1637107109979716, :b=>-3.4546383887474645, :c=>-0.9800817820977688, :d=>-1.212823924297363, :_index=>503}, {:a=>0.6986390940900892, :b=>-1.1267011323873886, :c=>1.068503003499098, :d=>1.2082308223171159, :_index=>504}, {:a=>1.3488743053624883, :b=>-0.3139071182968898, :c=>1.7837617358987372, :d=>2.053536596971235, :_index=>505}, {:a=>1.5653729693298712, :b=>-0.04328378833766111, :c=>2.0219102662628585, :d=>2.3349848601288326, :_index=>506}, {:a=>0.27742729705034336, :b=>-1.6532158786870708, :c=>0.6051700267553777, :d=>0.6606554861654463, :_index=>507}, {:a=>-0.03989814868981231, :b=>-2.0498726858622653, :c=>0.25611203644120645, :d=>0.248132406703244, :_index=>508}, {:a=>0.25532641419351454, :b=>-1.6808419822581069, :c=>0.580859055612866, :d=>0.6319243384515689, :_index=>509}, {:a=>-0.9939382703233554, :b=>-3.2424228379041944, :c=>-0.793332097355691, :d=>-0.9921197514203619, :_index=>510}, {:a=>0.5962942108138763, :b=>-1.2546322364826548, :c=>0.955923631895264, :d=>1.0751824740580394, :_index=>511}, {:a=>0.35858398958206855, :b=>-1.5517700130224144, :c=>0.6944423885402754, :d=>0.7661591864566891, :_index=>512}, {:a=>0.9595762644711243, :b=>-0.8005296694110946, :c=>1.3555338909182368, :d=>1.5474491438124618, :_index=>513}, {:a=>0.9134523981709418, :b=>-0.8581845022863228, :c=>1.3047976379880362, :d=>1.4874881176222245, :_index=>514}, {:a=>0.03317577934341301, :b=>-1.9585302758207337, :c=>0.3364933572777543, :d=>0.3431285131464369, :_index=>515}, {:a=>-1.0267611908316698, :b=>-3.283451488539587, :c=>-0.8294373099148369, :d=>-1.0347895480811709, :_index=>516}, {:a=>-1.0606593960028743, :b=>-3.325824245003593, :c=>-0.8667253356031617, :d=>-1.0788572148037365, :_index=>517}, {:a=>0.9442305841686094, :b=>-0.8197117697892384, :c=>1.3386536425854705, :d=>1.5274997594191924, :_index=>518}, {:a=>-0.3996834679710665, :b=>-2.4996043349638333, :c=>-0.13965181476817323, :d=>-0.21958850836238647, :_index=>519}, {:a=>-1.3284684120994983, :b=>-3.6605855151243727, :c=>-1.1613152533094482, :d=>-1.4270089357293478, :_index=>520}, {:a=>-1.1237534234817739, :b=>-3.404691779352217, :c=>-0.9361287658299513, :d=>-1.160879450526306, :_index=>521}, {:a=>-1.1409519599314146, :b=>-3.426189949914268, :c=>-0.9550471559245561, :d=>-1.183237547910839, :_index=>522}, {:a=>0.9988825154712893, :b=>-0.7513968556608885, :c=>1.3987707670184184, :d=>1.5985472701126762, :_index=>523}, {:a=>1.733470452009381, :b=>0.16683806501172604, :c=>2.206817497210319, :d=>2.553511587612195, :_index=>524}, {:a=>0.09050082203513904, :b=>-1.8868739724560761, :c=>0.3995509042386529, :d=>0.41765106864568075, :_index=>525}, {:a=>-0.7390168392577939, :b=>-2.9237710490722426, :c=>-0.5129185231835733, :d=>-0.6607218910351322, :_index=>526}, {:a=>-0.09329431568378949, :b=>-2.1166178946047367, :c=>0.19737625274783155, :d=>0.17871738961107364, :_index=>527}, {:a=>-1.3773899794134543, :b=>-3.721737474266818, :c=>-1.2151289773547997, :d=>-1.4906069732374907, :_index=>528}, {:a=>-0.7061717389635387, :b=>-2.8827146737044234, :c=>-0.4767889128598926, :d=>-0.6180232606526004, :_index=>529}, {:a=>1.3299575831432975, :b=>-0.33755302107087815, :c=>1.7629533414576275, :d=>2.0289448580862866, :_index=>530}, {:a=>-0.2570228440011659, :b=>-2.321278555001457, :c=>0.01727487159871749, :d=>-0.03412969720151565, :_index=>531}, {:a=>-0.3856348758489741, :b=>-2.4820435948112176, :c=>-0.12419836343387158, :d=>-0.20132533860366636, :_index=>532}, {:a=>-1.0976190442607978, :b=>-3.3720238053259974, :c=>-0.9073809486868776, :d=>-1.1269047575390372, :_index=>533}, {:a=>0.6477007766455636, :b=>-1.1903740291930456, :c=>1.01247085431012, :d=>1.1420110096392326, :_index=>534}, {:a=>1.9801282003547716, :b=>0.47516025044346444, :c=>2.4781410203902485, :d=>2.874166660461203, :_index=>535}, {:a=>1.6496734899111165, :b=>0.062091862388895525, :c=>2.114640838902228, :d=>2.4445755368844515, :_index=>536}, {:a=>0.6625617021056978, :b=>-1.1717978723678777, :c=>1.0288178723162675, :d=>1.161330212737407, :_index=>537}, {:a=>2.779341121918195, :b=>1.474176402397744, :c=>3.357275234110015, :d=>3.9131434584936535, :_index=>538}, {:a=>0.4914817991064345, :b=>-1.385647751116957, :c=>0.8406299790170779, :d=>0.9389263388383648, :_index=>539}, {:a=>-1.0369554470690414, :b=>-3.2961943088363017, :c=>-0.8406509917759457, :d=>-1.048042081189754, :_index=>540}, {:a=>1.2436424708548388, :b=>-0.44544691143145165, :c=>1.6680067179403228, :d=>1.9167352121112906, :_index=>541}, {:a=>0.2565136033882655, :b=>-1.679357995764668, :c=>0.582164963727092, :d=>0.6334676844047451, :_index=>542}, {:a=>0.059866061135611014, :b=>-1.9251674235804863, :c=>0.3658526672491721, :d=>0.3778258794762943, :_index=>543}, {:a=>-0.07846356681386647, :b=>-2.0980794585173332, :c=>0.21369007650474686, :d=>0.19799736314197358, :_index=>544}, {:a=>1.4410820316465556, :b=>-0.1986474604418056, :c=>1.8851902348112113, :d=>2.1734066411405224, :_index=>545}, {:a=>-0.5267950204856595, :b=>-2.6584937756070746, :c=>-0.2794745225342255, :d=>-0.38483352663135745, :_index=>546}, {:a=>-1.6466449613816858, :b=>-4.058306201727107, :c=>-1.5113094575198545, :d=>-1.8406384497961914, :_index=>547}, {:a=>-0.759236071760435, :b=>-2.949045089700544, :c=>-0.5351596789364785, :d=>-0.6870068932885656, :_index=>548}, {:a=>-0.4957728972941564, :b=>-2.6197161216176954, :c=>-0.24535018702357209, :d=>-0.3445047664824034, :_index=>549}, {:a=>1.106750865049165, :b=>-0.6165614186885437, :c=>1.5174259515540818, :d=>1.7387761245639146, :_index=>550}, {:a=>-1.7424881598443118, :b=>-4.17811019980539, :c=>-1.616736975828743, :d=>-1.9652346077976055, :_index=>551}, {:a=>2.0281809524708043, :b=>0.5352261905885052, :c=>2.5309990477178848, :d=>2.9366352382120455, :_index=>552}, {:a=>0.6477888803102271, :b=>-1.1902638996122161, :c=>1.0125677683412497, :d=>1.1421255444032952, :_index=>553}, {:a=>0.6827342339147623, :b=>-1.146582207606547, :c=>1.0510076573062386, :d=>1.187554504089191, :_index=>554}, {:a=>-0.016587745612356087, :b=>-2.020734682015445, :c=>0.2817534798264083, :d=>0.2784359307039371, :_index=>555}, {:a=>0.18750085198519342, :b=>-1.7656239350185081, :c=>0.5062509371837127, :d=>0.5437511075807515, :_index=>556}, {:a=>0.32927020710812865, :b=>-1.5884122411148391, :c=>0.6621972278189415, :d=>0.7280512692405672, :_index=>557}, {:a=>2.6052955749927387, :b=>1.2566194687409231, :c=>3.165825132492013, :d=>3.68688424749056, :_index=>558}, {:a=>-0.6255571137750772, :b=>-2.7819463922188463, :c=>-0.388112825152585, :d=>-0.5132242479076004, :_index=>559}, {:a=>0.36666715939653033, :b=>-1.5416660507543372, :c=>0.7033338753361833, :d=>0.7766673072154895, :_index=>560}, {:a=>1.3081475870448114, :b=>-0.3648155161939859, :c=>1.7389623457492926, :d=>2.0005918631582547, :_index=>561}, {:a=>-2.2083689173510685, :b=>-4.760461146688836, :c=>-2.1292058090861756, :d=>-2.5708795925563894, :_index=>562}, {:a=>1.353921631239479, :b=>-0.3075979609506512, :c=>1.7893137943634272, :d=>2.0600981206113227, :_index=>563}, {:a=>-0.390894796782524, :b=>-2.4886184959781548, :c=>-0.12998427646077643, :d=>-0.2081632358172812, :_index=>564}, {:a=>-0.17943720899643756, :b=>-2.224296511245547, :c=>0.10261907010391866, :d=>0.06673162830463117, :_index=>565}, {:a=>0.046239454496262024, :b=>-1.9422006818796724, :c=>0.3508633999458882, :d=>0.3601112908451406, :_index=>566}, {:a=>-0.7728003479370178, :b=>-2.966000434921272, :c=>-0.5500803827307197, :d=>-0.7046404523181231, :_index=>567}, {:a=>0.7579286393490879, :b=>-1.0525892008136402, :c=>1.133721503283997, :d=>1.2853072311538143, :_index=>568}, {:a=>-0.8469656228114731, :b=>-3.058707028514341, :c=>-0.6316621850926205, :d=>-0.8010553096549151, :_index=>569}, {:a=>0.3243843329510976, :b=>-1.594519583811128, :c=>0.6568227662462074, :d=>0.7216996328364269, :_index=>570}, {:a=>-1.5029889671632546, :b=>-3.8787362089540682, :c=>-1.3532878638795802, :d=>-1.653885657312231, :_index=>571}, {:a=>0.6614855947164333, :b=>-1.1731430066044584, :c=>1.0276341541880767, :d=>1.1599312731313633, :_index=>572}, {:a=>0.21209765809408976, :b=>-1.7348779273823878, :c=>0.5333074239034987, :d=>0.5757269555223167, :_index=>573}, {:a=>-0.879600126216022, :b=>-3.099500157770027, :c=>-0.6675601388376242, :d=>-0.8434801640808287, :_index=>574}, {:a=>-1.104448880070795, :b=>-3.3805611000884936, :c=>-0.9148937680778746, :d=>-1.1357835440920334, :_index=>575}, {:a=>-0.9742990388277772, :b=>-3.2178737985347214, :c=>-0.7717289427105549, :d=>-0.9665887504761104, :_index=>576}, {:a=>-0.17648964620332433, :b=>-2.2206120577541553, :c=>0.10586138917634322, :d=>0.07056345993567836, :_index=>577}, {:a=>1.2404220085303952, :b=>-0.4494724893370061, :c=>1.6644642093834348, :d=>1.9125486110895138, :_index=>578}, {:a=>-0.2136046410003389, :b=>-2.2670058012504235, :c=>0.06503489489962716, :d=>0.022313966699559373, :_index=>579}, {:a=>-1.6404746261524832, :b=>-4.050593282690604, :c=>-1.5045220887677315, :d=>-1.832617013998228, :_index=>580}, {:a=>1.0157073765725941, :b=>-0.7303657792842575, :c=>1.4172781142298536, :d=>1.6204195895443725, :_index=>581}, {:a=>0.0757582486761739, :b=>-1.9053021891547826, :c=>0.3833340735437913, :d=>0.39848572327902604, :_index=>582}, {:a=>0.5504530974657582, :b=>-1.3119336281678022, :c=>0.905498407212334, :d=>1.0155890267054857, :_index=>583}, {:a=>-0.8247313107793586, :b=>-3.0309141384741984, :c=>-0.6072044418572946, :d=>-0.7721507040131661, :_index=>584}, {:a=>-0.07214476265303738, :b=>-2.0901809533162967, :c=>0.22064076108165886, :d=>0.2062118085510514, :_index=>585}, {:a=>-1.0554400306523946, :b=>-3.319300038315493, :c=>-0.860984033717634, :d=>-1.072072039848113, :_index=>586}, {:a=>-0.005145916106283666, :b=>-2.0064323951328547, :c=>0.294339492283088, :d=>0.2933103090618312, :_index=>587}, {:a=>-0.11845159049570786, :b=>-2.1480644881196347, :c=>0.16970325045472134, :d=>0.14601293235557977, :_index=>588}, {:a=>1.0456961375447917, :b=>-0.6928798280690105, :c=>1.4502657512992712, :d=>1.6594049788082295, :_index=>589}, {:a=>0.0793235111917846, :b=>-1.9008456110102692, :c=>0.38725586231096304, :d=>0.40312056454932, :_index=>590}, {:a=>1.2786517795203556, :b=>-0.4016852755995557, :c=>1.7065169574723913, :d=>1.9622473133764624, :_index=>591}, {:a=>-0.41031612273635065, :b=>-2.5128951534204385, :c=>-0.15134773500998577, :d=>-0.23341095955725583, :_index=>592}, {:a=>0.7771067593091138, :b=>-1.0286165508636078, :c=>1.1548174352400251, :d=>1.310238787101848, :_index=>593}, {:a=>0.16177417326742197, :b=>-1.7977822834157227, :c=>0.47795159059416414, :d=>0.5103064252476486, :_index=>594}, {:a=>-0.10070255885453415, :b=>-2.125878198568168, :c=>0.18922718526001242, :d=>0.16908667348910558, :_index=>595}, {:a=>-0.0031423698771122855, :b=>-2.00392796234639, :c=>0.29654339313517647, :d=>0.29591491915975404, :_index=>596}, {:a=>-0.5766829463995111, :b=>-2.720853682999389, :c=>-0.3343512410394623, :d=>-0.4496878303193645, :_index=>597}, {:a=>1.7109320506202055, :b=>0.13866506327525663, :c=>2.182025255682226, :d=>2.524211665806267, :_index=>598}, {:a=>0.01633498607620708, :b=>-1.979581267404741, :c=>0.31796848468382777, :d=>0.3212354818990692, :_index=>599}, {:a=>-0.9788892055784355, :b=>-3.223611506973044, :c=>-0.7767781261362792, :d=>-0.9725559672519661, :_index=>600}, {:a=>1.2615662504259484, :b=>-0.4230421869675647, :c=>1.6877228754685434, :d=>1.940036125553733, :_index=>601}, {:a=>-0.42343286526725366, :b=>-2.5292910815840672, :c=>-0.1657761517939791, :d=>-0.25046272484742976, :_index=>602}, {:a=>-0.9669504457408252, :b=>-3.2086880571760314, :c=>-0.7636454903149077, :d=>-0.9570355794630727, :_index=>603}, {:a=>-0.20803690512015824, :b=>-2.260046131400198, :c=>0.07115940436782592, :d=>0.029552023343794254, :_index=>604}, {:a=>-0.8250381838134033, :b=>-3.031297729766754, :c=>-0.6075420021947437, :d=>-0.7725496389574242, :_index=>605}, {:a=>0.47618054837978757, :b=>-1.4047743145252656, :c=>0.8237986032177664, :d=>0.919034712893724, :_index=>606}, {:a=>2.019981799648769, :b=>0.524977249560961, :c=>2.5219799796136457, :d=>2.9259763395433995, :_index=>607}, {:a=>1.778239134964171, :b=>0.22279891870521373, :c=>2.256063048460588, :d=>2.611710875453422, :_index=>608}, {:a=>0.1486322924021595, :b=>-1.8142096344973007, :c=>0.46349552164237545, :d=>0.4932219801228074, :_index=>609}, {:a=>-0.09946431704564425, :b=>-2.1243303963070552, :c=>0.1905892512497913, :d=>0.17069638784066246, :_index=>610}, {:a=>1.6404320526837533, :b=>0.050540065854691285, :c=>2.104475257952129, :d=>2.432561668488879, :_index=>611}, {:a=>-1.066915445148473, :b=>-3.333644306435591, :c=>-0.8736069896633203, :d=>-1.086990078693015, :_index=>612}, {:a=>0.6401168700621175, :b=>-1.1998539124223533, :c=>1.0041285570683294, :d=>1.1321519310807528, :_index=>613}, {:a=>-1.130281919741623, :b=>-3.4128523996770284, :c=>-0.9433101117157854, :d=>-1.1693664956641099, :_index=>614}, {:a=>0.8550502779768537, :b=>-0.9311871525289328, :c=>1.240555305774539, :d=>1.41156536136991, :_index=>615}, {:a=>0.28711243867193814, :b=>-1.6411094516600773, :c=>0.6158236825391319, :d=>0.6732461702735195, :_index=>616}, {:a=>0.2727110018327306, :b=>-1.6591112477090868, :c=>0.5999821020160037, :d=>0.6545243023825498, :_index=>617}, {:a=>-0.10075219611512524, :b=>-2.1259402451439064, :c=>0.1891725842733622, :d=>0.16902214505033716, :_index=>618}, {:a=>-1.5885824756195601, :b=>-3.98572809452445, :c=>-1.4474407231815163, :d=>-1.765157218305428, :_index=>619}, {:a=>-0.23294144651037266, :b=>-2.291176808137966, :c=>0.04376440883859006, :d=>-0.002823880463484474, :_index=>620}, {:a=>0.44329843126453133, :b=>-1.4458769609193358, :c=>0.7876282743909845, :d=>0.8762879606438907, :_index=>621}, {:a=>-0.20561699584960488, :b=>-2.257021244812006, :c=>0.07382130456543459, :d=>0.03269790539551365, :_index=>622}, {:a=>-0.487665420259534, :b=>-2.6095817753244175, :c=>-0.23643196228548752, :d=>-0.33396504633739427, :_index=>623}, {:a=>0.8144060706366539, :b=>-0.9819924117041827, :c=>1.1958466777003194, :d=>1.3587278918276502, :_index=>624}, {:a=>0.4137540580752787, :b=>-1.4828074274059015, :c=>0.7551294638828066, :d=>0.8378802754978623, :_index=>625}, {:a=>-0.8472742880848628, :b=>-3.0590928601060785, :c=>-0.6320017168933492, :d=>-0.8014565745103217, :_index=>626}, {:a=>1.4029284792848595, :b=>-0.2463394008939257, :c=>1.8432213272133458, :d=>2.1238070230703174, :_index=>627}, {:a=>-0.10833507931393566, :b=>-2.1354188491424195, :c=>0.18083141275467074, :d=>0.15916439689188364, :_index=>628}, {:a=>0.3921373886057145, :b=>-1.5098282642428569, :c=>0.731351127466286, :d=>0.809778605187429, :_index=>629}, {:a=>0.7570787255202157, :b=>-1.0536515930997306, :c=>1.1327865980722374, :d=>1.2842023431762803, :_index=>630}, {:a=>-0.6677644712812766, :b=>-2.8347055891015955, :c=>-0.4345409184094043, :d=>-0.5680938126656596, :_index=>631}, {:a=>1.413515321309388, :b=>-0.2331058483632651, :c=>1.854866853440327, :d=>2.1375699177022045, :_index=>632}, {:a=>0.3215881304915274, :b=>-1.5980148368855907, :c=>0.6537469435406802, :d=>0.7180645696389856, :_index=>633}, {:a=>-0.12295036803080693, :b=>-2.153687960038509, :c=>0.16475459516611235, :d=>0.14016452155995096, :_index=>634}, {:a=>-0.9441537131442628, :b=>-3.1801921414303287, :c=>-0.7385690844586892, :d=>-0.9273998270875417, :_index=>635}, {:a=>0.16982364147466486, :b=>-1.7877204481566689, :c=>0.4868060056221314, :d=>0.5207707339170643, :_index=>636}, {:a=>-1.392763892158732, :b=>-3.7409548651984146, :c=>-1.2320402813746052, :d=>-1.5105930598063515, :_index=>637}, {:a=>0.9459708897999727, :b=>-0.8175363877500341, :c=>1.34056797877997, :d=>1.5297621567399646, :_index=>638}, {:a=>-0.9702558629941125, :b=>-3.2128198287426404, :c=>-0.7672814492935238, :d=>-0.9613326218923461, :_index=>639}, {:a=>-0.6030645604361999, :b=>-2.75383070054525, :c=>-0.36337101647982, :d=>-0.4839839285670599, :_index=>640}, {:a=>-0.29261892167866577, :b=>-2.365773652098332, :c=>-0.0218808138465324, :d=>-0.08040459818226553, :_index=>641}, {:a=>0.25218211231227716, :b=>-1.6847723596096535, :c=>0.5774003235435049, :d=>0.6278367460059603, :_index=>642}, {:a=>-0.04172009219377759, :b=>-2.052150115242222, :c=>0.2541078985868446, :d=>0.24576388014808911, :_index=>643}, {:a=>-1.2580290579446691, :b=>-3.572536322430836, :c=>-1.083831963739136, :d=>-1.33543777532807, :_index=>644}, {:a=>-0.4757898384776617, :b=>-2.594737298097077, :c=>-0.22336882232542793, :d=>-0.31852679002096024, :_index=>645}, {:a=>-0.7710404794853624, :b=>-2.963800599356703, :c=>-0.5481445274338987, :d=>-0.7023526233309711, :_index=>646}, {:a=>-1.6746272049776556, :b=>-4.093284006222069, :c=>-1.5420899254754212, :d=>-1.8770153664709521, :_index=>647}, {:a=>-0.9777231962131094, :b=>-3.2221539952663867, :c=>-0.7754955158344203, :d=>-0.9710401550770422, :_index=>648}, {:a=>0.6157909090880309, :b=>-1.2302613636399613, :c=>0.9773699999968339, :d=>1.1005281818144401, :_index=>649}, {:a=>-0.30326157299026657, :b=>-2.3790769662378333, :c=>-0.03358773028929324, :d=>-0.09424004488734655, :_index=>650}, {:a=>-0.9980228348238117, :b=>-3.2475285435297643, :c=>-0.7978251183061928, :d=>-0.9974296852709552, :_index=>651}, {:a=>0.05131837598206743, :b=>-1.9358520300224158, :c=>0.3564502135802742, :d=>0.36671388877668765, :_index=>652}, {:a=>0.4744262464845263, :b=>-1.406967191894342, :c=>0.8218688711329789, :d=>0.9167541204298841, :_index=>653}, {:a=>-1.3823854091311951, :b=>-3.727981761413994, :c=>-1.2206239500443148, :d=>-1.4971010318705538, :_index=>654}, {:a=>-0.8551081118042633, :b=>-3.068885139755329, :c=>-0.6406189229846897, :d=>-0.8116405453455422, :_index=>655}, {:a=>-1.2868555391251064, :b=>-3.608569423906383, :c=>-1.115541093037617, :d=>-1.3729122008626384, :_index=>656}, {:a=>1.4190521880355424, :b=>-0.22618476495557194, :c=>1.8609574068390968, :d=>2.1447678444462053, :_index=>657}, {:a=>-1.5171906019366812, :b=>-3.8964882524208515, :c=>-1.3689096621303494, :d=>-1.6723477825176856, :_index=>658}, {:a=>-0.5208330229357673, :b=>-2.651041278669709, :c=>-0.2729163252293441, :d=>-0.37708292981649755, :_index=>659}, {:a=>-0.2160649149465388, :b=>-2.2700811436831736, :c=>0.062328593558807294, :d=>0.019115610569499564, :_index=>660}, {:a=>-0.8623059287323638, :b=>-3.0778824109154543, :c=>-0.6485365216056003, :d=>-0.8209977073520729, :_index=>661}, {:a=>1.4071492363784024, :b=>-0.24106345452699718, :c=>1.8478641600162429, :d=>2.1292940072919233, :_index=>662}, {:a=>-0.7195959626972215, :b=>-2.899494953371527, :c=>-0.49155555896694375, :d=>-0.6354747515063879, :_index=>663}, {:a=>-0.02861010502316273, :b=>-2.0357626312789536, :c=>0.268528884474521, :d=>0.26280686346988846, :_index=>664}, {:a=>-1.3647975753568284, :b=>-3.7059969691960353, :c=>-1.2012773328925113, :d=>-1.474236847963877, :_index=>665}, {:a=>-0.19334153847246305, :b=>-2.2416769230905786, :c=>0.08732430768029062, :d=>0.048655999985798004, :_index=>666}, {:a=>-0.6173772630946479, :b=>-2.77172157886831, :c=>-0.37911498940411276, :d=>-0.5025904420230423, :_index=>667}, {:a=>-0.03535415213013098, :b=>-2.0441926901626637, :c=>0.2611104326568559, :d=>0.2540396022308297, :_index=>668}, {:a=>-0.9668756869360001, :b=>-3.2085946086700003, :c=>-0.7635632556296001, :d=>-0.9569383930168001, :_index=>669}, {:a=>0.09103014085202048, :b=>-1.8862123239349744, :c=>0.4001331549372225, :d=>0.41833918310762663, :_index=>670}, {:a=>0.36677951570235906, :b=>-1.5415256053720512, :c=>0.7034574672725951, :d=>0.7768133704130669, :_index=>671}, {:a=>-1.7310915802177211, :b=>-4.163864475272151, :c=>-1.6042007382394934, :d=>-1.9504190542830375, :_index=>672}, {:a=>-1.247603613505424, :b=>-3.55950451688178, :c=>-1.0723639748559666, :d=>-1.3218846975570513, :_index=>673}, {:a=>0.9935108008832704, :b=>-0.7581114988959121, :c=>1.3928618809715976, :d=>1.5915640411482517, :_index=>674}, {:a=>-0.1761949361798432, :b=>-2.220243670224804, :c=>0.10618557020217245, :d=>0.07094658296620382, :_index=>675}, {:a=>-0.43812229600017094, :b=>-2.5476528700002135, :c=>-0.18193452560018808, :d=>-0.2695589848002223, :_index=>676}, {:a=>0.7262000394714402, :b=>-1.0922499506606997, :c=>1.0988200434185842, :d=>1.2440600513128723, :_index=>677}, {:a=>-0.4741909136505687, :b=>-2.592738642063211, :c=>-0.2216100050156256, :d=>-0.3164481877457393, :_index=>678}, {:a=>1.635371034358827, :b=>0.04421379294853356, :c=>2.0989081377947096, :d=>2.425982344666475, :_index=>679}, {:a=>-1.4582332624168086, :b=>-3.8227915780210107, :c=>-1.3040565886584896, :d=>-1.5957032411418512, :_index=>680}, {:a=>-1.0114362866775874, :b=>-3.2642953583469843, :c=>-0.8125799153453463, :d=>-1.0148671726808638, :_index=>681}, {:a=>0.831296413782783, :b=>-0.9608794827715215, :c=>1.2144260551610613, :d=>1.3806853379176178, :_index=>682}, {:a=>-2.6356009784446877, :b=>-5.2945012230558595, :c=>-2.599161076289157, :d=>-3.1262812719780944, :_index=>683}, {:a=>-0.10215874909779382, :b=>-2.1276984363722424, :c=>0.1876253759924268, :d=>0.167193626172868, :_index=>684}, {:a=>-0.4517111469806073, :b=>-2.5646389337257594, :c=>-0.19688226167866812, :d=>-0.2872244910747896, :_index=>685}, {:a=>0.26003563781520717, :b=>-1.6749554527309911, :c=>0.586039201596728, :d=>0.6380463291597693, :_index=>686}, {:a=>-0.613626114902143, :b=>-2.7670326436276786, :c=>-0.3749887263923574, :d=>-0.49771394937278596, :_index=>687}, {:a=>-1.6392257976398226, :b=>-4.049032247049778, :c=>-1.503148377403805, :d=>-1.8309935369317694, :_index=>688}, {:a=>0.37297199872735826, :b=>-1.533785001590802, :c=>0.7102691986000941, :d=>0.7848635983455657, :_index=>689}, {:a=>1.3103098973229876, :b=>-0.36211262834626545, :c=>1.7413408870552867, :d=>2.0034028665198838, :_index=>690}, {:a=>0.24472534996382703, :b=>-1.6940933125452162, :c=>0.5691978849602097, :d=>0.6181429549529751, :_index=>691}, {:a=>1.3706333306178813, :b=>-0.2867083367276484, :c=>1.8076966636796696, :d=>2.0818233298032456, :_index=>692}, {:a=>2.5151557503651683, :b=>1.14394468795646, :c=>3.066671325401685, :d=>3.5697024754747186, :_index=>693}, {:a=>1.4085880276053413, :b=>-0.23926496549332343, :c=>1.8494468303658755, :d=>2.1311644358869435, :_index=>694}, {:a=>0.2814910545035616, :b=>-1.648136181870548, :c=>0.6096401599539178, :d=>0.66593837085463, :_index=>695}, {:a=>0.5113149355504982, :b=>-1.3608563305618773, :c=>0.862446429105548, :d=>0.9647094162156478, :_index=>696}, {:a=>-0.760612780937551, :b=>-2.9507659761719385, :c=>-0.5366740590313062, :d=>-0.6887966152188163, :_index=>697}, {:a=>0.5669934213754863, :b=>-1.2912582232806422, :c=>0.923692763513035, :d=>1.0370914477881321, :_index=>698}, {:a=>-1.4396444767444152, :b=>-3.799555595930519, :c=>-1.2836089244188569, :d=>-1.5715378197677399, :_index=>699}, {:a=>0.9963643922165689, :b=>-0.7545445097292889, :c=>1.396000831438226, :d=>1.5952737098815397, :_index=>700}, {:a=>-1.1487954716281337, :b=>-3.435994339535167, :c=>-0.9636750187909471, :d=>-1.1934341131165738, :_index=>701}, {:a=>-0.18379152061218654, :b=>-2.2297394007652334, :c=>0.09782932732659477, :d=>0.06107102320415747, :_index=>702}, {:a=>-1.6151879800468247, :b=>-4.018984975058531, :c=>-1.4767067780515073, :d=>-1.7997443740608723, :_index=>703}, {:a=>0.500643745150469, :b=>-1.3741953185619136, :c=>0.850708119665516, :d=>0.9508368686956097, :_index=>704}, {:a=>0.3941079804334427, :b=>-1.5073650244581966, :c=>0.7335187784767869, :d=>0.8123403745634754, :_index=>705}, {:a=>0.28663752137156023, :b=>-1.6417030982855496, :c=>0.6153012735087162, :d=>0.6726287777830283, :_index=>706}, {:a=>-0.6765618293698812, :b=>-2.8457022867123514, :c=>-0.44421801230686936, :d=>-0.5795303781808456, :_index=>707}, {:a=>2.2347763289747866, :b=>0.7934704112184829, :c=>2.7582539618722652, :d=>3.2052092276672224, :_index=>708}, {:a=>0.6374985223377131, :b=>-1.2031268470778587, :c=>1.0012483745714844, :d=>1.128748079039027, :_index=>709}, {:a=>0.36432055254801726, :b=>-1.5445993093149784, :c=>0.700752607802819, :d=>0.7736167183124225, :_index=>710}, {:a=>-0.5109542998717235, :b=>-2.6386928748396543, :c=>-0.2620497298588959, :d=>-0.36424058983324054, :_index=>711}, {:a=>-0.23345374001049504, :b=>-2.2918171750131187, :c=>0.043200885988455395, :d=>-0.0034898620136435965, :_index=>712}, {:a=>-1.4685074486329444, :b=>-3.83563431079118, :c=>-1.3153581934962388, :d=>-1.6090596832228277, :_index=>713}, {:a=>0.33920565468472347, :b=>-1.5759929316440957, :c=>0.6731262201531958, :d=>0.7409673510901404, :_index=>714}, {:a=>0.1543667211556853, :b=>-1.8070415985553934, :c=>0.46980339327125387, :d=>0.5006767375023908, :_index=>715}, {:a=>0.6721937833712845, :b=>-1.1597577707858944, :c=>1.039413161708413, :d=>1.17385191838267, :_index=>716}, {:a=>0.7940902824514952, :b=>-1.0073871469356313, :c=>1.1734993106966447, :d=>1.3323173671869437, :_index=>717}, {:a=>-0.713661113059647, :b=>-2.892076391324559, :c=>-0.4850272243656117, :d=>-0.6277594469775412, :_index=>718}, {:a=>1.5649929177246318, :b=>-0.04375885284421033, :c=>2.021492209497095, :d=>2.334490793042021, :_index=>719}, {:a=>-0.8788457801049664, :b=>-3.098557225131208, :c=>-0.6667303581154631, :d=>-0.8424995141364564, :_index=>720}, {:a=>-1.9450187812424764, :b=>-4.431273476553095, :c=>-1.8395206593667244, :d=>-2.2285244156152197, :_index=>721}, {:a=>-0.8750553480352526, :b=>-3.0938191850440657, :c=>-0.6625608828387779, :d=>-0.8375719524458285, :_index=>722}, {:a=>0.231375277730187, :b=>-1.7107809028372662, :c=>0.5545128055032057, :d=>0.6007878610492431, :_index=>723}, {:a=>0.34352911478528136, :b=>-1.5705886065183983, :c=>0.6778820262638094, :d=>0.7465878492208657, :_index=>724}, {:a=>-0.6813340320560792, :b=>-2.851667540070099, :c=>-0.44946743526168725, :d=>-0.585734241672903, :_index=>725}, {:a=>-0.10966322631964653, :b=>-2.137079032899558, :c=>0.17937045104838878, :d=>0.15743780578445948, :_index=>726}, {:a=>-0.9519283970659476, :b=>-3.189910496332434, :c=>-0.7471212367725424, :d=>-0.9375069161857319, :_index=>727}, {:a=>0.47204294399439506, :b=>-1.4099463200070064, :c=>0.8192472383938345, :d=>0.9136558271927135, :_index=>728}, {:a=>-0.03432525155157167, :b=>-2.0429065644394644, :c=>0.2622422232932711, :d=>0.2553771729829568, :_index=>729}, {:a=>-0.8334582201470528, :b=>-3.041822775183816, :c=>-0.6168040421617582, :d=>-0.7834956861911686, :_index=>730}, {:a=>1.4209080835500585, :b=>-0.22386489556242695, :c=>1.8629988919050644, :d=>2.147180508615076, :_index=>731}, {:a=>-0.7122734415029285, :b=>-2.8903418018786606, :c=>-0.48350078565322135, :d=>-0.6259554739538071, :_index=>732}, {:a=>-1.2768891657550692, :b=>-3.596111457193836, :c=>-1.1045780823305762, :d=>-1.35995591548159, :_index=>733}, {:a=>1.036946486077895, :b=>-0.7038168924026313, :c=>1.4406411346856847, :d=>1.6480304319012635, :_index=>734}, {:a=>0.17753951090300635, :b=>-1.7780756113712421, :c=>0.495293461993307, :d=>0.5308013641739082, :_index=>735}, {:a=>-0.3723225892280195, :b=>-2.4654032365350242, :c=>-0.10955484815082145, :d=>-0.18401936599642532, :_index=>736}, {:a=>0.45208401722945385, :b=>-1.4348949784631828, :c=>0.7972924189523993, :d=>0.8877092223982901, :_index=>737}, {:a=>-0.3710960968739825, :b=>-2.4638701210924783, :c=>-0.10820570656138079, :d=>-0.18242492593617726, :_index=>738}, {:a=>1.0039609359309474, :b=>-0.7450488300863158, :c=>1.4043570295240422, :d=>1.6051492167102317, :_index=>739}, {:a=>0.8403543775931485, :b=>-0.9495570280085646, :c=>1.2243898153524633, :d=>1.392460690871093, :_index=>740}, {:a=>0.18111923515473247, :b=>-1.7736009560565844, :c=>0.49923115867020573, :d=>0.5354550057011522, :_index=>741}, {:a=>1.7079057364071841, :b=>0.13488217050898, :c=>2.1786963100479024, :d=>2.5202774573293394, :_index=>742}, {:a=>0.4027777942075326, :b=>-1.4965277572405844, :c=>0.7430555736282859, :d=>0.8236111324697923, :_index=>743}, {:a=>1.1958198558894704, :b=>-0.5052251801381622, :c=>1.6154018414784175, :d=>1.8545658126563116, :_index=>744}, {:a=>-0.9596038615297491, :b=>-3.199504826912186, :c=>-0.755564247682724, :d=>-0.9474850199886737, :_index=>745}, {:a=>1.1246793938630575, :b=>-0.5941507576711782, :c=>1.5371473332493635, :d=>1.762083212021975, :_index=>746}, {:a=>-0.9743937651555794, :b=>-3.217992206444474, :c=>-0.7718331416711375, :d=>-0.9667118947022533, :_index=>747}, {:a=>0.6681592595973721, :b=>-1.164800925503285, :c=>1.0349751855571094, :d=>1.1686070374765838, :_index=>748}, {:a=>0.20014888322171628, :b=>-1.7498138959728546, :c=>0.5201637715438879, :d=>0.5601935481882312, :_index=>749}, {:a=>-0.15646054231577, :b=>-2.1955756778947126, :c=>0.12789340345265296, :d=>0.09660129498949899, :_index=>750}, {:a=>0.669203485225589, :b=>-1.1634956434680137, :c=>1.036123833748148, :d=>1.1699645307932658, :_index=>751}, {:a=>-1.0112586735235856, :b=>-3.264073341904482, :c=>-0.8123845408759442, :d=>-1.0146362755806613, :_index=>752}, {:a=>-0.381587031579359, :b=>-2.4769837894741986, :c=>-0.119745734737295, :d=>-0.19606314105316675, :_index=>753}, {:a=>0.8572224824138128, :b=>-0.9284718969827341, :c=>1.2429447306551942, :d=>1.4143892271379568, :_index=>754}, {:a=>1.4092724122538782, :b=>-0.23840948468265233, :c=>1.8501996534792662, :d=>2.1320541359300416, :_index=>755}, {:a=>-0.38580190099426304, :b=>-2.482252376242829, :c=>-0.12438209109368936, :d=>-0.20154247129254194, :_index=>756}, {:a=>0.47729628941789526, :b=>-1.403379638227631, :c=>0.8250259183596849, :d=>0.9204851762432638, :_index=>757}, {:a=>-1.9109988801769056, :b=>-4.388748600221132, :c=>-1.8020987681945961, :d=>-2.1842985442299776, :_index=>758}, {:a=>0.45015200903414493, :b=>-1.4373099887073189, :c=>0.7951672099375595, :d=>0.8851976117443885, :_index=>759}, {:a=>1.2788423433856886, :b=>-0.40144707076788944, :c=>1.7067265777242575, :d=>1.9624950464013953, :_index=>760}, {:a=>1.163871698212894, :b=>-0.5451603772338824, :c=>1.5802588680341836, :d=>1.8130332076767623, :_index=>761}, {:a=>0.4150347195943034, :b=>-1.4812066005071207, :c=>0.7565381915537337, :d=>0.8395451354725945, :_index=>762}, {:a=>-1.293497352226171, :b=>-3.6168716902827134, :c=>-1.1228470874487881, :d=>-1.3815465578940223, :_index=>763}, {:a=>1.1541754289317392, :b=>-0.5572807138353262, :c=>1.5695929718249133, :d=>1.800428057611261, :_index=>764}, {:a=>1.3568273797246262, :b=>-0.3039657753442173, :c=>1.792510117697089, :d=>2.063875593642014, :_index=>765}, {:a=>-0.8192320398636539, :b=>-3.0240400498295674, :c=>-0.6011552438500194, :d=>-0.76500165182275, :_index=>766}, {:a=>-0.4141867305638178, :b=>-2.5177334132047724, :c=>-0.1556054036201996, :d=>-0.23844274973296314, :_index=>767}, {:a=>0.5337399024746841, :b=>-1.332825121906645, :c=>0.8871138927221525, :d=>0.9938618732170892, :_index=>768}, {:a=>1.8888909009563988, :b=>0.36111362619549814, :c=>2.3777799910520385, :d=>2.7555581712433184, :_index=>769}, {:a=>0.7125715981195792, :b=>-1.1092855023505261, :c=>1.083828757931537, :d=>1.226343077555453, :_index=>770}, {:a=>0.8486808177900809, :b=>-0.9391489777623989, :c=>1.233548899569089, :d=>1.4032850631271052, :_index=>771}, {:a=>0.7436243928507759, :b=>-1.0704695089365304, :c=>1.1179868321358535, :d=>1.2667117107060086, :_index=>772}, {:a=>-0.6502553445995255, :b=>-2.8128191807494067, :c=>-0.41528087905947814, :d=>-0.5453319479793832, :_index=>773}, {:a=>-0.6712166774614398, :b=>-2.8390208468267994, :c=>-0.4383383452075838, :d=>-0.5725816806998718, :_index=>774}, {:a=>0.15653335768372664, :b=>-1.8043333028953417, :c=>0.4721866934520993, :d=>0.5034933649888447, :_index=>775}, {:a=>0.6837994792245735, :b=>-1.1452506509692832, :c=>1.0521794271470308, :d=>1.1889393229919456, :_index=>776}, {:a=>-1.0590324089254441, :b=>-3.323790511156805, :c=>-0.8649356498179885, :d=>-1.0767421316030774, :_index=>777}, {:a=>-1.6730111651814694, :b=>-4.091263956476837, :c=>-1.5403122816996164, :d=>-1.87491451473591, :_index=>778}, {:a=>0.45797661215214186, :b=>-1.4275292348098227, :c=>0.8037742733673561, :d=>0.8953695957977845, :_index=>779}, {:a=>0.15971992556767647, :b=>-1.8003500930404044, :c=>0.4756919181244441, :d=>0.5076359032379794, :_index=>780}, {:a=>-2.531166181033656, :b=>-5.16395772629207, :c=>-2.4842827991370218, :d=>-2.9905160353437528, :_index=>781}, {:a=>-2.2705471842118374, :b=>-4.838183980264796, :c=>-2.1976019026330214, :d=>-2.651711339475389, :_index=>782}, {:a=>-0.005226158569847905, :b=>-2.0065326982123097, :c=>0.2942512255731673, :d=>0.2932059938591977, :_index=>783}, {:a=>-0.36657525118715156, :b=>-2.4582190639839396, :c=>-0.10323277630586675, :d=>-0.17654782654329704, :_index=>784}, {:a=>0.4186258878600534, :b=>-1.4767176401749333, :c=>0.7604884766460587, :d=>0.8442136542180694, :_index=>785}, {:a=>-1.560040412192028, :b=>-3.9500505152400347, :c=>-1.4160444534112309, :d=>-1.7280525358496364, :_index=>786}, {:a=>-0.359895994568284, :b=>-2.449869993210355, :c=>-0.09588559402511243, :d=>-0.16786479293876921, :_index=>787}, {:a=>-0.3502604454556583, :b=>-2.437825556819573, :c=>-0.08528649000122418, :d=>-0.15533857909235582, :_index=>788}, {:a=>0.6820017584428664, :b=>-1.147497801946417, :c=>1.0502019342871531, :d=>1.1866022859757264, :_index=>789}, {:a=>-2.2483318181836607, :b=>-4.810414772729576, :c=>-2.1731650000020273, :d=>-2.6228313636387592, :_index=>790}, {:a=>0.6037796945760511, :b=>-1.2452753817799362, :c=>0.9641576640336562, :d=>1.0849136029488664, :_index=>791}, {:a=>-1.4548014022539884, :b=>-3.818501752817485, :c=>-1.3002815424793872, :d=>-1.5912418229301848, :_index=>792}, {:a=>-0.5027043132962126, :b=>-2.628380391620266, :c=>-0.25297474462583386, :d=>-0.3535156072850764, :_index=>793}, {:a=>0.18415328567790154, :b=>-1.7698083929026232, :c=>0.5025686142456917, :d=>0.539399271381272, :_index=>794}, {:a=>-1.2819024690651317, :b=>-3.6023780863314148, :c=>-1.110092715971645, :d=>-1.3664732097846712, :_index=>795}, {:a=>-2.3796323955094474, :b=>-4.974540494386809, :c=>-2.3175956350603926, :d=>-2.7935221141622817, :_index=>796}, {:a=>-2.637106318105167, :b=>-5.296382897631458, :c=>-2.600816949915684, :d=>-3.1282382135367173, :_index=>797}, {:a=>-1.9071858027694475, :b=>-4.383982253461809, :c=>-1.7979043830463926, :d=>-2.179341543600282, :_index=>798}, {:a=>1.5988738812193526, :b=>-0.001407648475809431, :c=>2.058761269341288, :d=>2.3785360455851583, :_index=>799}, {:a=>-0.7873375046137446, :b=>-2.984171880767181, :c=>-0.5660712550751192, :d=>-0.7235387559978681, :_index=>800}, {:a=>-0.09364010166285654, :b=>-2.1170501270785707, :c=>0.19699588817085778, :d=>0.1782678678382865, :_index=>801}, {:a=>0.7921232676460493, :b=>-1.0098459154424384, :c=>1.1713355944106543, :d=>1.3297602479398642, :_index=>802}, {:a=>0.39153553583199097, :b=>-1.5105805802100112, :c=>0.7306890894151901, :d=>0.8089961965815882, :_index=>803}, {:a=>-1.8031640833109595, :b=>-4.253955104138699, :c=>-1.6834804916420556, :d=>-2.0441133083042478, :_index=>804}, {:a=>1.0646243419134036, :b=>-0.6692195726082455, :c=>1.4710867761047441, :d=>1.6840116444874247, :_index=>805}, {:a=>2.268189789360875, :b=>0.8352372367010936, :c=>2.795008768296962, :d=>3.248646726169137, :_index=>806}, {:a=>0.014278820302606838, :b=>-1.9821514746217415, :c=>0.3157067023328675, :d=>0.31856246639338887, :_index=>807}, {:a=>0.7319119583424969, :b=>-1.085110052071879, :c=>1.1051031541767466, :d=>1.251485545845246, :_index=>808}, {:a=>0.6072037864291528, :b=>-1.240995266963559, :c=>0.9679241650720682, :d=>1.0893649223578987, :_index=>809}, {:a=>0.3483116745017179, :b=>-1.5646104068728526, :c=>0.6831428419518897, :d=>0.7528051768522332, :_index=>810}, {:a=>0.13999861687080564, :b=>-1.825001728911493, :c=>0.4539984785578862, :d=>0.48199820193204734, :_index=>811}, {:a=>0.15620695101953627, :b=>-1.8047413112255797, :c=>0.47182764612148986, :d=>0.5030690363253971, :_index=>812}, {:a=>0.26279581332863855, :b=>-1.6715052333392018, :c=>0.5890753946615024, :d=>0.6416345573272302, :_index=>813}, {:a=>-0.6192320926123678, :b=>-2.7740401157654597, :c=>-0.38115530187360463, :d=>-0.5050017203960782, :_index=>814}, {:a=>0.8074287587838396, :b=>-0.9907140515202006, :c=>1.1881716346622235, :d=>1.3496573864189916, :_index=>815}, {:a=>-0.25838590384280297, :b=>-2.322982379803504, :c=>0.015775505772916698, :d=>-0.035901674995643895, :_index=>816}, {:a=>1.52018672843749, :b=>-0.09976658945313766, :c=>1.9722054012812391, :d=>2.276242746968737, :_index=>817}, {:a=>0.4139800297379386, :b=>-1.4825249628275767, :c=>0.7553780327117325, :d=>0.8381740386593202, :_index=>818}, {:a=>-0.20964079865608953, :b=>-2.262050998320112, :c=>0.06939512147830149, :d=>0.027466961747083574, :_index=>819}, {:a=>-0.6828946780070071, :b=>-2.8536183475087586, :c=>-0.4511841458077079, :d=>-0.5877630814091093, :_index=>820}, {:a=>0.9320445790284076, :b=>-0.8349442762144905, :c=>1.3252490369312486, :d=>1.51165795273693, :_index=>821}, {:a=>-0.4393320327059355, :b=>-2.5491650408824196, :c=>-0.1832652359765291, :d=>-0.2711316425177162, :_index=>822}, {:a=>-0.9039779658853522, :b=>-3.12997245735669, :c=>-0.6943757624738875, :d=>-0.8751713556509577, :_index=>823}, {:a=>0.5596572765406239, :b=>-1.30042840432422, :c=>0.9156230041946865, :d=>1.0275544595028112, :_index=>824}, {:a=>0.8727733654130492, :b=>-0.9090332932336886, :c=>1.260050701954354, :d=>1.434605375036964, :_index=>825}, {:a=>2.0273698668096745, :b=>0.5342123335120927, :c=>2.530106853490642, :d=>2.935580826852577, :_index=>826}, {:a=>0.5837858106941024, :b=>-1.270267736632372, :c=>0.9421643917635127, :d=>1.0589215539023331, :_index=>827}, {:a=>0.9541399533489914, :b=>-0.8073250583137608, :c=>1.3495539486838906, :d=>1.5403819393536888, :_index=>828}, {:a=>-1.633539506303514, :b=>-4.041924382879392, :c=>-1.4968934569338657, :d=>-1.8236013581945685, :_index=>829}, {:a=>-0.33490787252849613, :b=>-2.41863484066062, :c=>-0.0683986597813458, :d=>-0.135380234287045, :_index=>830}, {:a=>-2.415833024457606, :b=>-5.019791280572007, :c=>-2.3574163269033668, :d=>-2.840582931794888, :_index=>831}, {:a=>-0.28120191050058047, :b=>-2.3515023881257253, :c=>-0.009322101550638562, :d=>-0.06556248365075462, :_index=>832}, {:a=>1.1290317981267424, :b=>-0.5887102523415721, :c=>1.5419349779394167, :d=>1.7677413375647653, :_index=>833}, {:a=>0.0752673582796277, :b=>-1.9059158021504654, :c=>0.38279409410759047, :d=>0.397847565763516, :_index=>834}, {:a=>-1.0374338787956505, :b=>-3.296792348494563, :c=>-0.8411772666752155, :d=>-1.0486640424343456, :_index=>835}, {:a=>0.34731869170134677, :b=>-1.5658516353733165, :c=>0.6820505608714815, :d=>0.7515142992117507, :_index=>836}, {:a=>1.5808676334433478, :b=>-0.02391545819581542, :c=>2.0389543967876826, :d=>2.3551279234763522, :_index=>837}, {:a=>1.383521124017217, :b=>-0.2705985949784788, :c=>1.8218732364189387, :d=>2.098577461222382, :_index=>838}, {:a=>-0.07426984023786509, :b=>-2.0928373002973313, :c=>0.2183031757383484, :d=>0.20344920769077535, :_index=>839}, {:a=>0.5597073568806956, :b=>-1.3003658038991306, :c=>0.9156780925687653, :d=>1.0276195639449044, :_index=>840}, {:a=>0.032184071391517556, :b=>-1.959769910760603, :c=>0.3354024785306693, :d=>0.3418392928089728, :_index=>841}, {:a=>0.1245299311078732, :b=>-1.8443375861151585, :c=>0.43698292421866053, :d=>0.46188891044023517, :_index=>842}, {:a=>-1.12361886516797, :b=>-3.404523581459962, :c=>-0.9359807516847669, :d=>-1.160704524718361, :_index=>843}, {:a=>-0.8026140810397199, :b=>-3.0032676012996498, :c=>-0.582875489143692, :d=>-0.7433983053516358, :_index=>844}, {:a=>-0.5206406595427922, :b=>-2.65080082442849, :c=>-0.2727047254970714, :d=>-0.37683285740562983, :_index=>845}, {:a=>0.4433277108826504, :b=>-1.445840361396687, :c=>0.7876604819709154, :d=>0.8763260241474455, :_index=>846}, {:a=>0.7430857831063276, :b=>-1.0711427711170907, :c=>1.1173943614169604, :d=>1.2660115180382259, :_index=>847}, {:a=>-0.8537689142339295, :b=>-3.067211142792412, :c=>-0.6391458056573225, :d=>-0.8098995885041085, :_index=>848}, {:a=>-0.5997896697516406, :b=>-2.749737087189551, :c=>-0.35976863672680476, :d=>-0.4797265706771328, :_index=>849}, {:a=>0.4645902482215837, :b=>-1.4192621897230204, :c=>0.811049273043742, :d=>0.9039673226880587, :_index=>850}, {:a=>-0.06195118349779514, :b=>-2.077438979372244, :c=>0.23185369815242535, :d=>0.21946346145286633, :_index=>851}, {:a=>-1.4627065635498597, :b=>-3.8283832044373245, :c=>-1.3089772199048457, :d=>-1.6015185326148176, :_index=>852}, {:a=>0.6015793686876217, :b=>-1.248025789140473, :c=>0.961737305556384, :d=>1.0820531792939083, :_index=>853}, {:a=>-0.8573754691247288, :b=>-3.071719336405911, :c=>-0.6431130160372018, :d=>-0.8145881098621475, :_index=>854}, {:a=>0.318083993691773, :b=>-1.6023950078852838, :c=>0.6498923930609504, :d=>0.7135091917993048, :_index=>855}, {:a=>0.3728677088320034, :b=>-1.5339153639599958, :c=>0.7101544797152037, :d=>0.7847280214816044, :_index=>856}, {:a=>1.0561431396244787, :b=>-0.6798210754694016, :c=>1.4617574535869267, :d=>1.6729860815118225, :_index=>857}, {:a=>-1.0514341038974186, :b=>-3.3142926298717734, :c=>-0.8565775142871606, :d=>-1.0668643350666442, :_index=>858}, {:a=>-0.5015813878362154, :b=>-2.626976734795269, :c=>-0.25173952661983706, :d=>-0.3520558041870801, :_index=>859}, {:a=>-0.7230422369532352, :b=>-2.903802796191544, :c=>-0.49534646064855886, :d=>-0.6399549080392057, :_index=>860}, {:a=>0.36546827652445507, :b=>-1.543164654344431, :c=>0.7020151041769006, :d=>0.7751087594817916, :_index=>861}, {:a=>-1.1865823002335758, :b=>-3.48322787529197, :c=>-1.0052405302569334, :d=>-1.2425569903036486, :_index=>862}, {:a=>-2.9883162293962178, :b=>-5.7353952867452715, :c=>-2.98714785233584, :d=>-3.5848110982150834, :_index=>863}, {:a=>-0.7204388238175189, :b=>-2.9005485297718985, :c=>-0.49248270619927087, :d=>-0.6365704709627746, :_index=>864}, {:a=>-0.5382374074923458, :b=>-2.6727967593654323, :c=>-0.2920611482415805, :d=>-0.39970862974004967, :_index=>865}, {:a=>-0.43921437967876736, :b=>-2.549017974598459, :c=>-0.18313581764664416, :d=>-0.2709786935823976, :_index=>866}, {:a=>0.6760667701197438, :b=>-1.1549165373503203, :c=>1.0436734471317182, :d=>1.178886801155667, :_index=>867}, {:a=>0.9054634081889918, :b=>-0.8681707397637604, :c=>1.296009749007891, :d=>1.4771024306456895, :_index=>868}, {:a=>0.0013493373542771297, :b=>-1.9983133283071537, :c=>0.3014842710897048, :d=>0.30175413856056027, :_index=>869}, {:a=>2.253505979478295, :b=>0.8168824743478686, :c=>2.7788565774261245, :d=>3.2295577733217833, :_index=>870}, {:a=>-0.19716072665887416, :b=>-2.2464509083235926, :c=>0.0831232006752384, :d=>0.04369105534346357, :_index=>871}, {:a=>0.44692522881418534, :b=>-1.4413434639822684, :c=>0.7916177516956039, :d=>0.8810027974584409, :_index=>872}, {:a=>-0.6671576935349239, :b=>-2.833947116918655, :c=>-0.4338734628884164, :d=>-0.5673050015954011, :_index=>873}, {:a=>-0.29009046941773525, :b=>-2.362613086772169, :c=>-0.019099516359508795, :d=>-0.07711761024305586, :_index=>874}, {:a=>-0.9450155572411442, :b=>-3.18126944655143, :c=>-0.7395171129652587, :d=>-0.9285202244134874, :_index=>875}, {:a=>1.094791685841226, :b=>-0.6315103926984675, :c=>1.504270854425349, :d=>1.723229191593594, :_index=>876}, {:a=>-1.4580050490659338, :b=>-3.8225063113324174, :c=>-1.3038055539725273, :d=>-1.595406563785714, :_index=>877}, {:a=>-0.23140038304489804, :b=>-2.2892504788061228, :c=>0.04545957865061212, :d=>-0.0008204979583674721, :_index=>878}, {:a=>1.6532372217970128, :b=>0.06654652724626597, :c=>2.118560943976714, :d=>2.4492083883361166, :_index=>879}, {:a=>-0.9487450081430454, :b=>-3.1859312601788066, :c=>-0.7436195089573501, :d=>-0.933368510585959, :_index=>880}, {:a=>-1.4354774871264326, :b=>-3.7943468589080407, :c=>-1.279025235839076, :d=>-1.5661207332643625, :_index=>881}, {:a=>-0.30204208882440414, :b=>-2.377552611030505, :c=>-0.03224629770684462, :d=>-0.09265471547172544, :_index=>882}, {:a=>-0.5183688948556517, :b=>-2.6479611185695644, :c=>-0.27020578434121695, :d=>-0.37387956331234734, :_index=>883}, {:a=>-1.2048249817929608, :b=>-3.506031227241201, :c=>-1.025307479972257, :d=>-1.266272476330849, :_index=>884}, {:a=>0.7299078361386603, :b=>-1.0876152048266747, :c=>1.1028986197525263, :d=>1.2488801869802584, :_index=>885}, {:a=>2.2680307315896315, :b=>0.8350384144870393, :c=>2.7948338047485946, :d=>3.248439951066521, :_index=>886}, {:a=>0.7158275185343159, :b=>-1.105215601832105, :c=>1.0874102703877475, :d=>1.2305757740946106, :_index=>887}, {:a=>-0.05755963296073954, :b=>-2.0719495412009246, :c=>0.2366844037431865, :d=>0.22517247715103858, :_index=>888}, {:a=>1.1509991083051312, :b=>-0.5612511146185861, :c=>1.5660990191356445, :d=>1.7962988407966707, :_index=>889}, {:a=>-1.3684615460560277, :b=>-3.710576932570034, :c=>-1.2053077006616304, :d=>-1.479000009872836, :_index=>890}, {:a=>0.9098772772301557, :b=>-0.8626534034623055, :c=>1.3008650049531714, :d=>1.4828404603992025, :_index=>891}, {:a=>1.0623891527869909, :b=>-0.6720135590162615, :c=>1.46862806806569, :d=>1.6811058986230882, :_index=>892}, {:a=>0.6661117599619939, :b=>-1.1673603000475077, :c=>1.0327229359581933, :d=>1.165945287950592, :_index=>893}, {:a=>0.6659470501368565, :b=>-1.1675661873289294, :c=>1.0325417551505423, :d=>1.1657311651779134, :_index=>894}, {:a=>0.2137601616778228, :b=>-1.7327997979027217, :c=>0.5351361778456051, :d=>0.5778882101811696, :_index=>895}, {:a=>-0.1496377235173554, :b=>-2.1870471543966943, :c=>0.13539850413090904, :d=>0.10547095942743795, :_index=>896}, {:a=>-2.2456808412282556, :b=>-4.807101051535319, :c=>-2.1702489253510815, :d=>-2.6193850935967324, :_index=>897}, {:a=>0.660832753050725, :b=>-1.1739590586865938, :c=>1.0269160283557974, :d=>1.1590825789659425, :_index=>898}, {:a=>-0.6013251149765676, :b=>-2.7516563937207095, :c=>-0.36145762647422447, :d=>-0.48172264946953797, :_index=>899}, {:a=>0.9204049453104465, :b=>-0.849493818361942, :c=>1.3124454398414913, :d=>1.4965264289035805, :_index=>900}, {:a=>0.5638148353135948, :b=>-1.2952314558580067, :c=>0.9201963188449542, :d=>1.0329592859076733, :_index=>901}, {:a=>0.2393215125488861, :b=>-1.7008481093138923, :c=>0.5632536638037747, :d=>0.611117966313552, :_index=>902}, {:a=>-1.6538611157575904, :b=>-4.0673263946969875, :c=>-1.5192472273333495, :d=>-1.8500194504848675, :_index=>903}, {:a=>0.1829098992232007, :b=>-1.7713626259709991, :c=>0.5012008891455207, :d=>0.5377828689901609, :_index=>904}, {:a=>0.1373851247237878, :b=>-1.8282685940952652, :c=>0.45112363719616655, :d=>0.4786006621409241, :_index=>905}, {:a=>0.8339816177114512, :b=>-0.9575229778606862, :c=>1.2173797794825965, :d=>1.3841761030248867, :_index=>906}, {:a=>-1.0438627767085338, :b=>-3.304828470885667, :c=>-0.8482490543793872, :d=>-1.0570216097210938, :_index=>907}, {:a=>-0.6127737980078637, :b=>-2.7659672475098294, :c=>-0.3740511778086501, :d=>-0.4966059374102228, :_index=>908}, {:a=>0.31331470347732276, :b=>-1.6083566206533466, :c=>0.6446461738250551, :d=>0.7073091145205196, :_index=>909}, {:a=>0.4664383254915792, :b=>-1.4169520931355262, :c=>0.8130821580407372, :d=>0.9063698231390529, :_index=>910}, {:a=>1.0497734089923676, :b=>-0.6877832387595406, :c=>1.4547507498916046, :d=>1.664705431690078, :_index=>911}, {:a=>-0.4747948183022868, :b=>-2.5934935228778584, :c=>-0.22227430013251553, :d=>-0.31723326379297284, :_index=>912}, {:a=>-0.6375217132128911, :b=>-2.7969021415161137, :c=>-0.4012738845341803, :d=>-0.5287782271767585, :_index=>913}, {:a=>1.5102936045818942, :b=>-0.11213299427263235, :c=>1.9613229650400839, :d=>2.2633816859564626, :_index=>914}, {:a=>-0.9882469335391735, :b=>-3.2353086669239666, :c=>-0.7870716268930908, :d=>-0.9847210136009255, :_index=>915}, {:a=>0.5482208128173078, :b=>-1.3147239839783653, :c=>0.9030428940990387, :d=>1.0126870566625001, :_index=>916}, {:a=>-0.3667948728816611, :b=>-2.4584935911020764, :c=>-0.1034743601698273, :d=>-0.17683333474615948, :_index=>917}, {:a=>0.21020017418291734, :b=>-1.7372497822713533, :c=>0.5312201916012091, :d=>0.5732602264377926, :_index=>918}, {:a=>-0.29668805770459417, :b=>-2.3708600721307427, :c=>-0.026356863475053616, :d=>-0.08569447501597244, :_index=>919}, {:a=>1.5094090868268604, :b=>-0.1132386414664246, :c=>1.9603499955095467, :d=>2.2622318128749184, :_index=>920}, {:a=>1.086621227861312, :b=>-0.6417234651733599, :c=>1.4952833506474434, :d=>1.7126075962197058, :_index=>921}, {:a=>-0.14228210596458993, :b=>-2.1778526324557372, :c=>0.14348968343895105, :d=>0.11503326224603308, :_index=>922}, {:a=>-0.45523009779670187, :b=>-2.5690376222458773, :c=>-0.20075310757637216, :d=>-0.2917991271357125, :_index=>923}, {:a=>0.39345998560758855, :b=>-1.5081750179905145, :c=>0.7328059841683474, :d=>0.8114979812898651, :_index=>924}, {:a=>0.18755408478316066, :b=>-1.7655573940210492, :c=>0.5063094932614767, :d=>0.5438203102181088, :_index=>925}, {:a=>-0.14413038857588645, :b=>-2.180162985719858, :c=>0.14145657256652489, :d=>0.1126304948513476, :_index=>926}, {:a=>-0.6206482208204851, :b=>-2.7758102760256063, :c=>-0.38271304290253366, :d=>-0.5068426870666307, :_index=>927}, {:a=>-0.11070170309930663, :b=>-2.1383771288741333, :c=>0.1782281265907627, :d=>0.15608778597090137, :_index=>928}, {:a=>0.5023224889639404, :b=>-1.3720968887950744, :c=>0.8525547378603344, :d=>0.9530192356531224, :_index=>929}, {:a=>-0.5376642355734762, :b=>-2.6720802944668454, :c=>-0.29143065913082383, :d=>-0.3989635062455191, :_index=>930}, {:a=>-0.5486537885173064, :b=>-2.685817235646633, :c=>-0.3035191673690371, :d=>-0.4132499250724983, :_index=>931}, {:a=>-1.9095934104730403, :b=>-4.3869917630913005, :c=>-1.8005527515203446, :d=>-2.182471433614953, :_index=>932}, {:a=>-0.19042370934695116, :b=>-2.238029636683689, :c=>0.0905339197183537, :d=>0.05244917784896347, :_index=>933}, {:a=>-0.7081736875611314, :b=>-2.885217109451414, :c=>-0.47899105631724465, :d=>-0.6206257938294708, :_index=>934}, {:a=>0.19713513733900973, :b=>-1.7535810783262378, :c=>0.5168486510729107, :d=>0.5562756785407126, :_index=>935}, {:a=>0.8859567157481265, :b=>-0.892554105314842, :c=>1.2745523873229392, :d=>1.4517437304725644, :_index=>936}, {:a=>-1.1712799010282513, :b=>-3.464099876285314, :c=>-0.9884078911310765, :d=>-1.2226638713367266, :_index=>937}, {:a=>-0.08087241539343125, :b=>-2.1010905192417892, :c=>0.2110403430672256, :d=>0.19486585998853936, :_index=>938}, {:a=>-0.22229159685938887, :b=>-2.277864496074236, :c=>0.0554792434546722, :d=>0.011020924082794425, :_index=>939}, {:a=>0.06596539461142667, :b=>-1.9175432567357167, :c=>0.3725619340725693, :d=>0.38575501299485465, :_index=>940}, {:a=>0.15040694344870514, :b=>-1.8119913206891185, :c=>0.4654476377935757, :d=>0.49552902648331665, :_index=>941}, {:a=>0.3151575715822637, :b=>-1.6060530355221703, :c=>0.6466733287404901, :d=>0.7097048430569428, :_index=>942}, {:a=>-0.12635329375729176, :b=>-2.157941617196615, :c=>0.16101137686697903, :d=>0.1357407181155207, :_index=>943}, {:a=>0.19581926542421313, :b=>-1.7552259182197336, :c=>0.5154011919666345, :d=>0.5545650450514771, :_index=>944}, {:a=>-0.606332735324386, :b=>-2.7579159191554825, :c=>-0.3669660088568247, :d=>-0.48823255592170184, :_index=>945}, {:a=>-0.7365033182014763, :b=>-2.9206291477518453, :c=>-0.5101536500216239, :d=>-0.6574543136619193, :_index=>946}, {:a=>0.5080264693938665, :b=>-1.3649669132576667, :c=>0.8588291163332533, :d=>0.9604344102120266, :_index=>947}, {:a=>-1.843718886918776, :b=>-4.30464860864847, :c=>-1.7280907756106536, :d=>-2.096834552994409, :_index=>948}, {:a=>0.49534120688606925, :b=>-1.3808234913924133, :c=>0.8448753275746763, :d=>0.94394356895189, :_index=>949}, {:a=>0.14143495534186504, :b=>-1.8232063058226686, :c=>0.45557845087605153, :d=>0.48386544194442455, :_index=>950}, {:a=>-0.4459223789147489, :b=>-2.557402973643436, :c=>-0.19051461680622384, :d=>-0.27969909258917364, :_index=>951}, {:a=>-0.5779591141781002, :b=>-2.722448892722625, :c=>-0.33575502559591025, :d=>-0.45134684843153033, :_index=>952}, {:a=>-1.2092491881275977, :b=>-3.511561485159497, :c=>-1.0301741069403576, :d=>-1.272023944565877, :_index=>953}, {:a=>1.7348611954168083, :b=>0.16857649427101018, :c=>2.2083473149584893, :d=>2.5553195540418505, :_index=>954}, {:a=>-0.8533246733903572, :b=>-3.0666558417379464, :c=>-0.6386571407293931, :d=>-0.8093220754074644, :_index=>955}, {:a=>-0.2454382651482482, :b=>-2.3067978314353104, :c=>0.030017908336926913, :d=>-0.019069744692722712, :_index=>956}, {:a=>-0.32424705563711165, :b=>-2.4053088195463896, :c=>-0.056671761200822846, :d=>-0.12152117232824516, :_index=>957}, {:a=>1.0458631070388809, :b=>-0.692671116201399, :c=>1.4504494177427691, :d=>1.6596220391505452, :_index=>958}, {:a=>-1.8021082505119563, :b=>-4.252635313139946, :c=>-1.682319075563152, :d=>-2.0427407256655434, :_index=>959}, {:a=>-0.4737946241497164, :b=>-2.5922432801871453, :c=>-0.22117408656468812, :d=>-0.3159330113946313, :_index=>960}, {:a=>-1.1134924143231772, :b=>-3.3918655179039714, :c=>-0.924841655755495, :d=>-1.1475401386201305, :_index=>961}, {:a=>1.1840935230726843, :b=>-0.5198830961591447, :c=>1.6025028753799528, :d=>1.8393215799944898, :_index=>962}, {:a=>2.230375628867079, :b=>0.7879695360838483, :c=>2.7534131917537867, :d=>3.1994883175272024, :_index=>963}, {:a=>-0.09560391804580948, :b=>-2.119504897557262, :c=>0.19483569014960955, :d=>0.17571490654044766, :_index=>964}, {:a=>1.7882629064593396, :b=>0.2353286330741744, :c=>2.267089197105274, :d=>2.624741778397141, :_index=>965}, {:a=>-0.9195148993911627, :b=>-3.1493936242389533, :c=>-0.7114663893302791, :d=>-0.8953693692085116, :_index=>966}, {:a=>-1.5893036291408233, :b=>-3.986629536426029, :c=>-1.4482339920549059, :d=>-1.7660947178830704, :_index=>967}, {:a=>-0.5758455316203188, :b=>-2.7198069145253987, :c=>-0.33343008478235076, :d=>-0.4485991911064145, :_index=>968}, {:a=>-0.7328994843736489, :b=>-2.916124355467061, :c=>-0.5061894328110139, :d=>-0.6527693296857437, :_index=>969}, {:a=>1.9928982757413516, :b=>0.4911228446766893, :c=>2.492188103315487, :d=>2.890767758463757, :_index=>970}, {:a=>0.9330333689223781, :b=>-0.8337082888470275, :c=>1.326336705814616, :d=>1.5129433795990916, :_index=>971}, {:a=>-1.2359811246127612, :b=>-3.5449764057659516, :c=>-1.0595792370740373, :d=>-1.3067754619965897, :_index=>972}, {:a=>-0.3610097056731109, :b=>-2.4512621320913888, :c=>-0.09711067624042202, :d=>-0.16931261737504422, :_index=>973}, {:a=>0.28345372611297814, :b=>-1.6456828423587773, :c=>0.611799098724276, :d=>0.6684898439468716, :_index=>974}, {:a=>-0.5957562893941913, :b=>-2.744695361742739, :c=>-0.3553319183336105, :d=>-0.4744831762124488, :_index=>975}, {:a=>1.3710785811663193, :b=>-0.28615177354210086, :c=>1.8081864392829514, :d=>2.082402155516215, :_index=>976}, {:a=>-0.11624370069055467, :b=>-2.145304625863193, :c=>0.17213192924038984, :d=>0.1488831891022789, :_index=>977}, {:a=>0.8860677535417895, :b=>-0.8924153080727633, :c=>1.2746745288959684, :d=>1.4518880796043263, :_index=>978}, {:a=>-0.598392737942595, :b=>-2.7479909224282437, :c=>-0.35823201173685454, :d=>-0.47791055932537346, :_index=>979}, {:a=>-0.6093201372128447, :b=>-2.761650171516056, :c=>-0.3702521509341293, :d=>-0.49211617837669813, :_index=>980}, {:a=>0.0511328985326346, :b=>-1.9360838768342068, :c=>0.35624618838589805, :d=>0.36647276809242496, :_index=>981}, {:a=>0.5599588785449348, :b=>-1.3000514018188316, :c=>0.9159547663994283, :d=>1.0279465421084153, :_index=>982}, {:a=>-2.036083296149564, :b=>-4.545104120186955, :c=>-1.9396916257645207, :d=>-2.3469082849944334, :_index=>983}, {:a=>2.3288903704653463, :b=>0.9111129630816825, :c=>2.861779407511881, :d=>3.3275574816049502, :_index=>984}, {:a=>-0.03395740460258826, :b=>-2.0424467557532355, :c=>0.2626468549371529, :d=>0.2558553740166353, :_index=>985}, {:a=>1.2510358218992625, :b=>-0.4362052226259219, :c=>1.676139404089189, :d=>1.9263465684690415, :_index=>986}, {:a=>-1.1840639053919437, :b=>-3.48007988173993, :c=>-1.0024702959311382, :d=>-1.239283077009527, :_index=>987}, {:a=>-0.9514798484882301, :b=>-3.1893498106102873, :c=>-0.7466278333370531, :d=>-0.9369238030346991, :_index=>988}, {:a=>0.4527004433627811, :b=>-1.4341244457965237, :c=>0.7979704876990592, :d=>0.8885105763716155, :_index=>989}, {:a=>0.23422699850800893, :b=>-1.707216251864989, :c=>0.5576496983588098, :d=>0.6044950980604116, :_index=>990}, {:a=>-0.40383762898883757, :b=>-2.504797036236047, :c=>-0.14422139188772137, :d=>-0.22498891768548884, :_index=>991}, {:a=>-0.46127878093293595, :b=>-2.5765984761661698, :c=>-0.20740665902622962, :d=>-0.2996624152128167, :_index=>992}, {:a=>1.1534534849974885, :b=>-0.5581831437531395, :c=>1.5687988334972374, :d=>1.799489530496735, :_index=>993}, {:a=>1.2105360642229432, :b=>-0.48682991972132106, :c=>1.6315896706452377, :d=>1.8736968834898262, :_index=>994}, {:a=>0.258052815660227, :b=>-1.6774339804247163, :c=>0.5838580972262497, :d=>0.6354686603582951, :_index=>995}, {:a=>0.5427766092717313, :b=>-1.3215292384103359, :c=>0.8970542701989046, :d=>1.0056095920532508, :_index=>996}, {:a=>-0.8233915463528374, :b=>-3.0292394329410466, :c=>-0.6057307009881212, :d=>-0.7704090102586887, :_index=>997}, {:a=>0.35907496954369794, :b=>-1.5511562880703775, :c=>0.6949824664980677, :d=>0.7667974604068073, :_index=>998}, {:a=>-1.2246762005247334, :b=>-3.5308452506559167, :c=>-1.0471438205772068, :d=>-1.2920790606821533, :_index=>999}]>}, :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=>\"0bf0fae9-1f96-4939-8c53-9884c6cfeb07\"}, @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=>\"b34067e0-3b10-4b75-a24a-aabcaf022ac3\"}, @xrange=[0, 0.9981947147293442], @yrange=[0, 1000]>], :options=>{:yrange=>[0, 150], :y_label=>\"Frequency\", :x_label=>\"Bins\", :width=>700, :xrange=>[0, 0.9981947147293442]}}>" ] }, "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=>\"3aaf48b3-ee00-4034-a4d7-44dcfeca7996\"}, @xrange=[1, 6], @yrange=[43, 59]>, #:scatter, :options=>{:x=>:day, :y=>:chicago_temp, :title=>\"Temprature in Chicago\", :color=>\"#FFFF00\"}, :data=>\"3aaf48b3-ee00-4034-a4d7-44dcfeca7996\"}, @xrange=[1, 6], @yrange=[20, 38]>, #:scatter, :options=>{:x=>:day, :y=>:sf_temp, :title=>\"Temprature in SF\", :color=>\"#0000FF\"}, :data=>\"3aaf48b3-ee00-4034-a4d7-44dcfeca7996\"}, @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=>\"6e7ee501-57bd-47bc-9251-e13c03be29f5\"}, @xrange=[5, 34], @yrange=[260, 590]>, #:line, :options=>{:x=>:fat, :y=>:y_coords, :color=>\"#FF0000\"}, :data=>\"6e7ee501-57bd-47bc-9251-e13c03be29f5\"}, @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.5.3", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": ".rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.5.3" } }, "nbformat": 4, "nbformat_minor": 2 }