Here's my gnuplot file:
set terminal png small color picsize 1000 400
set style fill solid 1.0 border
set title "Concurrent listeners"
set xdata time
set xlabel "Time"
set ylabel "Cuncurrent Logged In Listeners"
set format x "%Y/%m/%d\n%H:%M:%S"
set timefmt "%s"
plot "< echo \"select t-7*3600,c from stats_concurrent_listener_count (extract(epoch from '2004/12/13 20:00'::timestamp)::int,null);\" | psql -h plur -U greenroom gr-dev -t | sed 's/|//'" using 1:2 with boxes
cat file | gnuplot > image.png works perfectly.
The bitch of it is that I seem to be having a hard time running this as a cgi. I can't figure out. Not that this question has anything to do with postgres, but maybe somebody else can tell me where I'm going wrong? My CGI is:
#!/bin/bash
echo -e "Content-type: image/png\n\n";
echo -e "set terminal png small color picsize 1000 400\nset style fill solid 1.0 border\nset title \"Concurrent listeners\"\nset xdata time\nset xlabel \"Time\"\nset ylabel \"Cuncurrent Logged In Listeners \"\nset format x \"%Y/%m/%d\\\n%H:%M:%S\"\nset timefmt \"%s\"\nplot \"< echo \\\"select t-7*3600,c from stats_concurrent_listener_count (extract(epoch from '2004/12/13 20:00'::timestamp)::int,null);\\\" | / usr/bin/psql -h plur -U greenroom gr-dev -t | sed 's/|//'\" using 1:2 with boxes" | /usr/bin/gnuplot
...and it seems that when printing to stdout, it gives a truncated version of the file. When redirecting, it does not. Maybe that's not too surprising, if apache is looking for a null to see when stdout stops.... but I don't know how to get around that.
On May 9, 2005, at 7:51 AM, Hrishikesh Deshmukh wrote:
Hi All,
Has anybody tried using gnuplot to plot results from queries; there are some suggestions given in PostgreSQL Developer's Handbook but i have not any luck so far! Any pointers as how to send results from queries straight to a simple plotting utility (ex:gnuplot)!
Thanks, Hrishi
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster
---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster