Toon posts:

Gnuplot draaien op webserver

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste Tweakers! :>

Ik hoop dat ik dit in het goede forum post...ik heb een probleem met GNUPOLT.

Ik wil op mijn websites temperatuur waarden plotten in een grafiek.
Zoiets als dit zou mooi zijn!

Ik heb al vanalles geprobeerd...onderandere jfreechart, pgplot, gdgraph etc...etc...

Vroeger heb ik gewerkt met Office Web Components (OWC). Dit werkte perfect. Nu is het alleen zo dat ik op de huidige webserver geen components kan (of mag) registreren. OWC-chart en andere components die geregistreerd moeten worden is dus geen optie meer.

To the point:
Het is toch zo dat je gnuplot op een webserver niet hoeft te registreren toch?
Ik lees overal dat je gnuplot ook op een webserver kan gebruiken. (bijvoorbeeld in combinatie met ppstats maar dat heb ik niet nodig).
Nu dacht ik wel ergens een eenvoudige beschijving te vinden hoe je gnuplot moet gebruiken op het web. maar neen! Ik loop al dagen te googlen maar het wil mij niet lukken om een simpele gnuplot werkend te krijgen op mijn webserver. Hoe moet ik beginnen? Of ben ik echt erg dom? :?
ik neem aan dat je iets gnuplot.exe op de webserver moet plaatsen en dan aanroepen:
http://www.weerkunde.com/gnuplot.exe?parameters.. en dan poept deze een grafiek uit!? of denk ik dan verkeert.
Met OWC-chart kon je in vbscript de database connectie, de parameters etc etc instellen en een pngtje maken...je kon dan als afbeelding aanroepen [img]'../owc.asp?paramers'[/img] en dan maakte het script de tijdelijke afbeelding op de server...werkt gnuplot ook in die richting?


Voor de duidelijkhied:
Het gaat om de website http://www.weerkunde.com (en jaah hij is nog niet af en browser compatable :P )
Ik kan asp gebruiken, CGI/Perl scripts.

Ik heb echt al alle topics doorgelezen en ook gegooled op internet en de handleiding bij gnuplot gelezen maar ik begrijp het niet...

Hopelijk kan iemand mij helpen...
mijn dank ik groot! :>

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Weet je uberhaupt hoe gnuplot werkt? In principe zo :

Je start gnuplot
Je typt een reut commando's
Je krijgt een plaatje

In plaats van het zelf intypen van de commando's kan je ook een file maken met commando's en die op de commandline meegeven. En in plaats van een plaatje op je scherm kan je het plaatje ook laten opslaan.

Wat een typisch script dus zou kunnen doen is :

code:
1
2
3
4
5
6
7
Schrijf data naar datafile.dat

Open commands.txt en pas de regel aan waarin je de filename van het output plaatje specificeert en de regel met de filename van de input 

Run gnuplot met de commands.txt file als parameter

print [img]"plaatje"[/img] naar de gebruiker.


Een andere mogelijkheid is meer de methode zoals je zelf al aangaf. Maak een script 'genereerplaatje' die het volgende doet :

code:
1
2
3
4
5
6
7
8
9
haal datafile uit de querystring

haal commandfile uit de querystring (bijvoorbeeld het type plot)

run gnuplot met de commandfile

verstuur plaatjes-headers naar de gebruiker

open het plaatje en stuur dat naar de gebruiker


Dan kan je het aanroepen als plaatje.asp?data=weernu&type=histogram

[ Voor 31% gewijzigd door eamelink op 25-10-2005 09:07 ]


Verwijderd

Topicstarter
Ok...zoiets had ik al vaag in gedachten!

ik zou dus in command.txt hetvolgende kunnen schrijven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
set title "test"
set style data fsteps
set xlabel "Date\nTime"
set timefmt "%d/%m/%y\t%H%M"
set yrange [ 0 : ]
set xdata time
set xrange [ "1/6/93":"1/11/93" ]
set ylabel "Temperatuur"
set format x "%d/%m\n%H:%M"
set grid
set key left
plot 'datafile.dat' using 1:3 t '', \
     'datafile.dat' using 1:3 t 'Total P' with points, \
     'datafile.dat' using 1:4 t '', \
     'datafile.dat' using 1:4 t 'PO4' with points 
reset

In datafile.dat stop ik een reut gegevens...

Maar nu komt het...Run gnuplot met de commands.txt file als parameter:

is dit in mijn .asp file zoiets als [img]"http://www.weerkunde.com/gnuplot.exe?command.txt"[/img] waarna hij het op het scherm poept...in OWC werkte dit namelijk wel zo...
:?

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Nee, als je het op die manier doet probeert Apache gewoon gnuplot door te sturen, dat wil je niet :P

Je moet er een script voorzetten die gnuplot uitvoert en het plaatje doorstuurt. Dus zoiets :

PHP:
1
2
3
4
5
6
7
8
// Deze commandfile genereert een plaatje 'plaatje.png';
system('gnuplot command.txt');

// Stuur png header
header("Content-type: image/png");

// Gooi het plaatje erachteraan
fpassthru('plaatje.png);


Maar dan even omschrijven in ASP of perl :)

En dan roep je het aan als
code:
1
[img]"scriptnaam.php"[/img]


Je roept dus níet direct gnuplot.exe aan vanuit de browser :)

[ Voor 19% gewijzigd door eamelink op 25-10-2005 09:36 ]


Verwijderd

Topicstarter
Ik heb deze link gevonden voor het printen van een png-image van een grafiek gemaakt door gnuplot.

Serving gnuplot files over the web

Toch is mij het nog niet helemaal duidelijk...

Ik zou zoiets willen hebben als op het voorbeeld op deze site:
zoals hier

nergens echter een voorbeeld...ik zie wel dat ze het bestand "../cgi-bin/edgeplots" aanroepen...
hier zou de conenctie naar gnuplot in moeten staan.

Iemand een idee hoe ik dit in PERL of mischien asp aanpak?