Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Data to fetch from Database to display in graph

by choroba (Cardinal)
on Feb 22, 2018 at 17:01 UTC ( [id://1209773]=note: print w/replies, xml ) Need Help??


in reply to Data to fetch from Database to display in graph

I usually use gnuplot directly to draw graphs.
#!/usr/bin/perl use warnings; use strict; use DBI; my $filename = '1.dat'; my $graph = '1.png'; # Fake the database. my $db = 'DBI'->connect('dbi:SQLite:dbname=:memory:', "", ""); $db->do('CREATE TABLE goods (id INTEGER, price DECIMAL(5,2), quantity +INTEGER)'); my $populate = $db->prepare('INSERT INTO goods (id, price, quantity) V +ALUES (?, ?, ?)'); $populate->execute(@$_) for [ 1, 10, 100 ], [ 2, 2.5, 150 ], [ 3, 12.2, 25 ]; # Extract the ranges. my $get_maxq = $db->prepare('SELECT MAX(quantity), MAX(price) FROM goo +ds'); $get_maxq->execute; my ($maxq, $maxp) = $get_maxq->fetchrow_array; # Populate the input file. open my $data, '>', $filename or die $!; my $extract = $db->prepare('SELECT price, quantity FROM goods'); $extract->execute; while (my @row = $extract->fetchrow_array) { print {$data} "@row\n" } close $data; # Draw the graph. open my $gp, '|-', 'gnuplot' or die $!; print {$gp} << "__GP__"; set term png; set output '$graph'; set yrange [0:$maxq * 1.1]; set y2range [0:$maxp * 1.1]; set ytics nomirror; set y2tics 0, 2.5; set xtics 0, 1 out; set key out; plot '$filename' using 0:(\$1 * $maxq / $maxp):(.9) with boxes \\ fillstyle transparent solid .1 title 'histogram',\\ '' using 0:2 with lines fillcolor 2 title 'lines'; __GP__ close $gp; unlink $filename;
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1209773]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2024-04-23 20:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found