Lotto Draw Visualisation Image
A visualisation of Lotto numbers drawn over time.
Commandline program which inputs a set of CSV files and outputs an image.
Definitions
Lotto Game:
A series of Lotto Draws. e.g.: TattsLotto, OzLotto, Monday & Wednesday Lotto, Powerball.
Lotto Draw:
A sequence of six to eight integers between 1 and 45, on a date, with a draw number, and within a Lotto Game.
Draw Percentage:
The number of times a number was drawn divided by the number of opportunities to be drawn expressed as a percentage.
Inputs
The program must import one, or more, CSV data files as described via the command line.
e.g.: [login to view URL] [login to view URL] [login to view URL]
Each file contains a history of the Lotto Draws for a specific Lotto Game as found at [login to view URL]
Lotto data comes in the following format:
Format: Draw Number, Draw Date (yyyymmdd), Winning Number 1, 2, 3, 4, 5, 6, 7, Supplementary 1, 2, Division 1, 2, 3, 4, 5, 6, 7
"609","20051018","39","9","12","30","33","45","5","7","19","$0.00","$15,781.85","$5,130.30","$242.20","$43.45","$21.30","$11.85"
"610","20051025","42","7","36","23","39","29","16","19","43","$3,000,000.00","$49,962.85","$2,857.35","$247.20","$41.80","$20.55","$12.15"
"611","20051101","24","34","17","3","11","1","43","39","4","$0.00","$39,165.40","$2,780.50","$264.15","$39.00","$20.65","$13.40"
* discard the distinction between ‘winning’ and ‘supplementary’ numbers; we only care if about identifying the drawn numbers
* discard the prize money data
Powerball data comes in this format:
Format: Draw Number, Draw Date (yyyymmdd), Winning Number 1,2,3,4,5,6, Powerball, Division 1,2,3,4,5,6,7,8
"1","19960523","27","8","42","30","2","-","3","$0.00","$51,793.60","$6,929.90","$116.15","$54.95","$21.55","$10.55"
"2","19960530","6","8","23","44","15","-","5","$3,344,973.35","$57,057.80","$5,738.40","$102.55","$52.70","$19.65","$10.50"
"3","19960606","33","32","36","4","40","-","44","$0.00","$77,646.15","$4,871.90","$89.75","$65.55","$18.55","$11.50"
* note the hyphen field separating the winning numbers and the power ball number
* again we only care if the number is drawn or not - discard the information that it was a ‘power ball’
* discard the prize money data
Outputs
A jpeg or png file containing a chart:
* 2D matrix
* Vertical axis is the date of each draw in ascending order (oldest at the top)
* Horizontal axis is the date, the filename, thence the numbers 1 to 45
* data rows:
* date
* filename with the ‘.csv’ suffix removed e.g.: [login to view URL] = Lotto
* for each number: show a black dot if the number was drawn otherwise leave blank
* Footer: a final row is blank for the date and filename thence for each number display the Draw Percentage (see definitions)
Implementation
* must be coded in Python > v2.7.3
* may use matplotlib
* must not use additional python or external libraries without approval
DELIVERY
* must be python source code
TESTING
The program will be tested against the following datasets provided at [login to view URL]:
* TattsLotto
* Oz Lotto
* Powerball
* MondayAndWednesdayLotto
Remember that the input may be any combination of one, two, three, or all four files.
BEWARE
I am technical and an experienced python programmer. I expect sensible, workable, high quality code. Please do not bid with a price lower than what you are actually happy to do the job for.
—NOT REQUIRED NOW - just so you know where this is going. Show me the above and we'll add on Phase 2. And possibly the pie-in-sky stuff.
Phase 2 Expansions
* as determined by a set of rules (to be provided) the number columns will take on a background colour
* as determined by a set of rules (to be provided) the footer will display a single set of chosen numbers to ‘pick’
Phase 3 Expansions
* deploy to the Internet and schedule routine execution
* import the latest draws from the Internet
* email the latest graphs to recipients