Springen naar inhoud

Hulponderwerp: Berichtopmaak: grafieken plaatsen


Bugs, onverwachte zaken, onbegrepen foutmeldingen rond de grafiekfunctie van WebGraph op dit forum?

Meld ze aub in dit topic.



Berichtopmaak: Grafieken (WebGraph )

Auteurs: Marconius , jhnbk , Jan van de Velde


1 Grafieken lezen

Op Wetenschapsforum.nl is een script genstalleerd dat het zeer simpel maakt om grafieken te laten zien aan je mede-forumgebruikers.
WebGraph,
Copyright Maarten ter Horst 2006

Hieronder een voorbeeld:



  • De functievoorschriften worden daarbij naast het diagram weergegeven, met een gekleurd bolletje overeenkomend met de kleur van de bijbehorende grafiek.
  • Zweef met je muis over een functievoorschrift om alleen die bepaalde functie te zien.
  • Je kunt ook op een grafiek klikken voor een vergroting. (werkt met Internet Explorer helaas niet altijd, soms kun je wel bij de onderste rij erop klikken. In FireFox en Opera zijn geen problemen bekend)
  • Allerlei denkbare functies kun je nagenoeg onbeperkt combineren, helaas gaat dit meestal wel ten koste van de snelheid.

De grafieken worden op de computer van de gebruiker gegenereerd, dus als je een snelle computer hebt, denk dan ook even aan de forumgebruikers met een tragere computer.
Om de laadsnelheid te bevorderen zijn in de rest van dit helpitem hoofzakelijk schermafbeeldingen gebruikt.


2 Grafieken maken: de code

2.1 Graph in BBcode

Het script werkt op basis van de BBcode-tags [ graph= ] [ /graph ]
Meer over BBcodes vind je in het helpitem Berichtopmaak: algmene introductie: werken met BBcode

De code ziet er in algemene vorm z uit:

[ graph= xmin,xmax,ymin,ymax] 'functievoorschrift'[ /graph ]

(maar dan zonder de spaties in de BB-tags)

Je moet dus eigenlijk twee verschillende dingen instellen: de grenzen van je grafiek en de functies die je wilt laten zien.


2.2 Grenzen van de grafiek

[ graph=xmin,xmax,ymin,ymax ]

Als je een functie hebt die je bijvoorbeeld op de x-as tussen -10 en +20 wilt laten zien en op de y-as tussen -30 en +50, dan moet je dit deel als volgt instellen:

[ graph=-10,20,-30,50 ]


2.3 De functie(s)

Dan moet er (binnen die grenzen van daarnet) nog een functie worden weergegeven, bijvoorbeeld:

y=-x + 40

Bij het gebruik van Graph zijn er wel een paar belangrijke dingen om aan te denken:
  • Voor de verschillende bewerkingen moet je speciale codes (syntax) gebruiken. Deze lijkt overigens sterk op de syntax voor formules in Excel.
    Voor x uit dit voorbeeld is dat x^2, waarbij het dakje staat voor de machtsverheffing, of pow(x,2). In hoofdstuk 3 vind je een gesorteerd overzicht van bruikbare operatoren en functies.
  • Het script werkt alleen met functies met maar n variabele, en die variabele moet ook per se een x zijn.
  • Het functievoorschrift (hierboven: -x + 40) plaats je tussen apostrofs:
    '-pow(x,2)+40' of '-x^2 + 40'

    de of "y=" (of"f(x)=") moet je daarbij weglaten.


f(x)=-x + 40 wordt dan : '-pow(x,2) + 40'

Ten slotte sluit je af met de BBcode-sluittag [ /graph]

Het geheel wordt dan:
[ graph=-10,20,-30,50] '-pow(x,2) + 40'[ /graph]


Het resultaat dat je krijgt is dit:



Je kunt ook meerdere grafieken in n diagram plaatsen. De functievoorschriften scheid je met komma's. Bijv:
[ graph=-10,20,-30,50] '-pow(x,2)+40','-pow(x,2)+30','-pow(x,2)+10'[ /graph]





VALKUIL: Graph presenteert altijd vierkante diagrammen; de schaal die je ingeeft wordt steeds verdeeld over een vaste aslengte. Andere schaalgrenzen leveren dus wel dezelfde grafiek op, maar de vorm kan heel anders lijken vanwege de verhoudingen tussen de schaalverdelingen op x- en y-as. Een verdubbeling van schaalomvang betekent k niet altijd een verdubbeling van de waarde van breedte of hoogte van een "hokje" in het diagram:

Hieronder tweemaal y=x+40, met twee verschillend geschaalde x-assen:

[ graph=-10,20,-30,50] '-pow(x,2)+40'[ /graph] ............................ [ graph= -20,40,-30,50] '-pow(x,2)+40'[ /graph]


Maak je ergens een fout, of probeer je iets wat Graph niet kan, dan is er slechts n foutmelding:



3 Operatoren, constanten en functies

Uiteraard kunnen alle hierna genoemde zaken vrijwel onbeperkt gecombineerd of genest worden.

3.1 Operatoren

Laten we eerst eens kijken naar de basisfuncties:
  • + (optellen)
  • - (aftrekken)
  • * (vermenigvuldigen)
  • / (delen)
  • ( ) haakjes

VALKUILEN:
  • De asterisk als operator voor vermenigvuldiging moet je ltijd gebruiken:
    LaTeX wordt '2*x'
    LaTeX wordt '2*(x+3)'
  • Als scheidingsteken voor decimale getallen zul je niet een komma, maar een punt moeten gebruiken.


3.2 Constanten

Naast de basisrekenfuncties, zitten er ook 2 basisgetallen in verwerkt, namelijk:
  • pi (3,14159...)
  • e (2,71828...)
Andere bijzondere getallen zul je zelf moeten invullen en dus moeten benaderen.


3.3 Exponenten, logaritmen, wortels







LaTeX
'x^n' of 'pow(x,n)'
LaTeX
'n^x' of 'pow(n,x)'
LaTeX
'sqrt(x)'
LaTeX
'root(n,x)'
LaTeX
'exp(x)' of 'pow(e,x)'
LaTeX
'log(x)'
LaTeX
'logb(x,n)'

VALKUIL:
  • de graph-syntax 'log(x)' geeft dus eigenlijk de natuurlijke logaritme LaTeX. Voor een standaard tienlog (logaritme met grondtal 10) gebruik je dus de "logb" functie (bijvoorbeeld log10(x) wordt dan voor Graph: 'logb(x,10)'



3.4 Goniometrische & Cyclometrische functies








LaTeX
'sin(x)'
LaTeX
'cos(x)'
LaTeX
'tan(x)'
LaTeX
'cot(x)'
LaTeX
'sec(x)'
LaTeX
'csc(x)'
LaTeX
'acot(x)'
LaTeX
'asec(x)'
LaTeX
'acsc(x)'
LaTeX
'asin(x)'
LaTeX
'acos(x)'
LaTeX
'atan(x)'
atan2
'atan2(x,y)'


3.5 Hyperbolische functies




LaTeX
'sinh(x)'
LaTeX
'cosh(x)'
LaTeX
'tanh(x)'
LaTeX
'coth(x)'
LaTeX
'sech(x)'
LaTeX
'csch(x)'
LaTeX
'asinh(x)'
LaTeX
'acosh(x)'
LaTeX
'atanh(x)'
LaTeX
'asech(x)'
LaTeX
'acsch(x)'


3.6 Overige functies





LaTeX
'abs(x)'
x afronden op gehelen
'round(x)'
x naar beneden afronden
'floor(x)'
x naar boven afronden
'ceil(x)'
random getal tussen 0 en 1
'random()'
LaTeX (signum-functie)
'sign(x)'
grootste van de argumenten
'max(y1,y2,y3, .....)' (zie uitleg hieronder)

kleinste van de argumenten
'min(y1,y2,y3, .....)'

Functie bruikbaar voor het tekenen van functies met meervoudig voorschrift: functie geeft waarde 1 indien x in [a,b], anders waarde 0
'interval(x,a,b)'



De "max"-functie vergelijkt een aantal functies (ook meer dan twee) die er tussen haken achter staan, en geeft voor elke x di functie weer die voor di x de hoogste waarde voor y geeft. NB: je moet voor de functies die je wil vergelijken wel de gewoonlijke Graph-syntax gebruiken, maar zonder de apostrofs .

In dit voorbeeld is de "max"-functie gebruikt. Voor de duidelijkheid zijn de functies waaruit de max-functie kiest ook even apart weergegeven:


3.7 Functies met meervoudig voorschrift

Functies met meervoudig voorschrift kunnen zeer eenvoudig worden getekend. De functie interval(x,a,b) geeft immers een waarde n voor LaTeX. Alle andere waarden van x gevel nul. Indien we volgende functie willen tekenen:
LaTeX

Kan dat op volgende wijze:
interval(x,0,1)*x^2+interval(x,1,2)



4 Voorbeelden

In deze paragraaf zullen we wat mogelijkheden even op een rijtje zetten aan de hand van enkele voorbeelden:

functie graph-syntax
LaTeX 'x+2'
LaTeX 'x^3+2'
LaTeX '5*(x^3+2)'
LaTeX '(5*(x^3+2))/4'
LaTeX '(5*(x^3+2))/sqrt(x)'
LaTeX '(5*(x^3+2))/root(3,x)'
LaTeX 'e^x' of 'exp(x)'
LaTeX 'log(x)'
LaTeX 'logb(x,10)'
LaTeX '0.5*logb(x,10)'
LaTeX '0.5*logb(x,3)'
LaTeX '2^(0.5*logb(x,3))'
LaTeX 'sin(x)'
LaTeX 'sin((1/4)*pi*x)'
LaTeX '(sin((1/4)*pi*x))/(cos(x))'
afgelegde weg tegen tijd (a=1,5 m/s):
LaTeX
LaTeX
'0.5*1.5*x^2'
trillingstijd fysische slinger:
LaTeX
LaTeX
'2*pi*sqrt(x/9,81)'
radioactief verval,
onvervallen kernen in de tijd
LaTeX
LaTeX
LaTeX
'(2000000*(1/2)^(x/1.5))'