<?xml version="1.0" encoding="iso-8859-1"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ref="http://purl.org/rss/1.0/modules/reference/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/">
	<channel rdf:about="http://www.programmeur-analyste.com/archives//rss.rdf">
		<title>Blog-notes d&#039;un programmeur autonome</title>
		<link>http://www.programmeur-analyste.com/archives/index.php</link>
		<description><![CDATA[(514) 767-9329    Montréal - Québec - Canada]]></description>
		<image rdf:resource="http://www.programmeur-analyste.com/archives/interface/feed.png" />		<items>
			<rdf:Seq>
				<rdf:li resource="http://www.programmeur-analyste.com/archives/?entry=entry060823-130819" />
				<rdf:li resource="http://www.programmeur-analyste.com/archives/?entry=entry060530-161022" />
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.programmeur-analyste.com/archives/?entry=entry060823-130819">
		<title>La magie de Scriptaculous - Javascript dynamique </title>
		<link>http://www.programmeur-analyste.com/archives/index.php?entry=entry060823-130819</link>
		<description><![CDATA[Si l&#039;un de vos clients vous demande d&#039;ajouter des fonctionnalités basées sur du Javascript, des fonctionnalités qui affecteront en bout de ligne l&#039;expérience de l&#039;utilisateur (donc l&#039;ergonomie du site de votre client), pensez à <a href="http://script.aculo.us/" target="_blank" >Scriptaculous</a>. Il permet de faire aisément ce qu&#039;un programmeur pressé par le temps n&#039;ose imaginer...<br /><br /><br /><b>Drag &amp; Drop</b><br /><br />Supposons que notre client désire effectuer un sondage auprès de ses utilisateurs. Le sondage consiste à savoir quels sont les musiciens que les utilisateurs aiment et ceux qu&#039;ils n&#039;aiment pas, et par la même occasion il faut inviter les utilisateurs à placer en ordre de préférence ceux qu&#039;ils aiment. Il s&#039;attend à obtenir le résultat de votre travail rapidement... Comment feriez-vous cela? <br /><br />Je crois que sans Scriptaculous, il est peu probable que vous auriez osé développer l&#039;exemple ci-dessous:<br /><br /><iframe src="includes/scriptaculous/index.php" width=506 height=240 framespacing="0" frameborder="no" scrolling="no"></iframe><br /><br /><br />À la base, pour arriver à mettre en place cette fonctionnalité, nous devons d&#039;abord insérer les librairies Prototype et Scriptaculous (en fait, Scriptaculous est un <i>add-on</i> de <a href="http://prototype.conio.net/" target="_blank" >Prototype</a>):<br /><br /><table width="508" bgcolor="#EEEEEE" cellpadding=4 cellspacing=0 style="border: 1px solid #5977B3;"><tr><td><code><span style="color: #000000">
&lt;script&nbsp;src="lib/prototype.js"&nbsp;type="text/javascript"&gt;&lt;/script&gt;<br />&lt;script&nbsp;src="src/scriptaculous.js"&nbsp;type="text/javascript"&gt;&lt;/script&gt;</span>
</code</td></tr></table>
<br /><br />Ensuite ajoutons un peu de style, pour que nous puissions bien distinguer les boîtes et les items qui peuvent être déplacés...<br /><br /><table width="508" bgcolor="#EEEEEE" cellpadding=4 cellspacing=0 style="border: 1px solid #5977B3;"><tr><td><code><span style="color: #000000">
&lt;style&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;body&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;background-color:&nbsp;#EEEEEE;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;font-family:&nbsp;Arial,&nbsp;Helvetica;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Boîtes&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;.section&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;background-color:&nbsp;#FFFFFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;font-size:&nbsp;12px;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;margin-left:&nbsp;15px;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height:100px;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width:90px;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float:left;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Titre&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;h3&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;font-size:&nbsp;12px;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;font-weight:&nbsp;bold;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pour&nbsp;visualiser&nbsp;les&nbsp;items&nbsp;qui&nbsp;peuvent&nbsp;être<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;déplacés&nbsp;avec&nbsp;la&nbsp;souris<br />&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;.lineitem&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cursor:&nbsp;move;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&lt;/style&gt;</span>
</code</td></tr></table>
<br /><br />Créons nos boîtes, dont celle qui contiendra la liste des items de départ:<br /><br /><table width="508" bgcolor="#EEEEEE" cellpadding=4 cellspacing=0 style="border: 1px solid #5977B3;"><tr><td><code><span style="color: #000000">
&lt;div&nbsp;id="liste_1"&nbsp;class="section"&gt;<br />&nbsp;&nbsp;&lt;h3&gt;Liste&nbsp;1:&lt;/h3&gt;<br />&nbsp;&nbsp;&lt;div&nbsp;id="item_1"&nbsp;class="lineitem"&gt;Item&nbsp;1&lt;/div&gt;<br />&nbsp;&nbsp;&lt;div&nbsp;id="item_2"&nbsp;class="lineitem"&gt;Item&nbsp;2&lt;/div&gt;<br />&nbsp;&nbsp;&lt;div&nbsp;id="item_3"&nbsp;class="lineitem"&gt;Item&nbsp;3&lt;/div&gt;<br />&lt;/div&gt;<br /><br />&lt;div&nbsp;id="liste_2"&nbsp;class="section"&gt;<br />&nbsp;&nbsp;&lt;h3&gt;Liste&nbsp;2:&lt;/h3&gt;<br />&lt;/div&gt;</span>
</code</td></tr></table>
<br /><br />Enfin, ajoutons la touche Scriptaculous - pour chaque boîte, nous devons ajouter <b>Sortable.create</b> qui désignera la boîte affectée et les attributs qui la concernent:<br /><br /><table width="508" bgcolor="#EEEEEE" cellpadding=4 cellspacing=0 style="border: 1px solid #5977B3;"><tr><td><code><span style="color: #000000">
&lt;script&nbsp;type="text/javascript"&gt;<br />//&nbsp;&lt;![CDATA[<br /><br />&nbsp;&nbsp;//&nbsp;Création&nbsp;de&nbsp;la&nbsp;première&nbsp;boîte&nbsp;triable<br />&nbsp;&nbsp;Sortable.create(<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;nom&nbsp;du&nbsp;id&nbsp;de&nbsp;la&nbsp;liste&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;"liste_1",<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;type&nbsp;de&nbsp;balise&nbsp;affecté&nbsp;-&nbsp;pourrait&nbsp;être&nbsp;aussi&nbsp;par&nbsp;ex.&nbsp;"ul"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tag:"div",<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;permet&nbsp;de&nbsp;glisser&nbsp;un&nbsp;item&nbsp;d'une&nbsp;boîte&nbsp;à&nbsp;l'autre<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dropOnEmpty:&nbsp;true,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;boîtes&nbsp;dans&nbsp;lesquelles&nbsp;les&nbsp;items&nbsp;peuvent&nbsp;être&nbsp;glissés<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;containment:&nbsp;["liste_1","liste_2"],<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Les&nbsp;items&nbsp;transférables&nbsp;ont&nbsp;comme&nbsp;nom&nbsp;de&nbsp;classe&nbsp;"lineitem"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;only:"lineitem"<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;);<br /><br />&nbsp;&nbsp;//&nbsp;Création&nbsp;de&nbsp;la&nbsp;seconde&nbsp;"boîte"<br />&nbsp;&nbsp;Sortable.create(<br />&nbsp;&nbsp;&nbsp;&nbsp;"liste_2",<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tag:"div",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dropOnEmpty:&nbsp;true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;containment:&nbsp;["liste_1","liste_2"],&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;only:"lineitem"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;);<br /><br />//&nbsp;]]&gt;<br />&lt;/script&gt;</span>
</code</td></tr></table>
<br /><br />Le résultat du script ci-dessus:<br /><br /><iframe src="includes/scriptaculous/index_pre.php" width=290 height=130 framespacing="0" frameborder="no" scrolling="no"></iframe><br /><br />Si la fonctionnalité <i>drag &amp; drop</i> vous intéresse, jetez un coup d&#039;oeil à <a href="http://www.gregphoto.net/sortable/advanced/" target="_blank" >cet exemple</a>.<br /><br /><br /><b>Effets visuels</b><br /><br />Scriptaculous permet d&#039;effectuer des effets visuels très simplement. Ci-dessous, quelques exemples (pour voir tous les exemples, visitez <a href="http://wiki.script.aculo.us/scriptaculous/show/CombinationEffectsDemo" target="_blank" >la page de démonstration des effets visuels</a> de Scriptaculous) :<br /><br /><iframe src="includes/scriptaculous/index_vis.php" width=506 height=80 framespacing="0" frameborder="no" scrolling="no"></iframe><br /><br />Pour y arriver:<br /><br /><table width="508" bgcolor="#EEEEEE" cellpadding=4 cellspacing=0 style="border: 1px solid #5977B3;"><tr><td><code><span style="color: #000000">
&lt;a&nbsp;href="#"&nbsp;onclick="new&nbsp;Effect.Highlight('tag',&nbsp;1);"&gt;Highlight&lt;/a&gt;<br />&lt;a&nbsp;href="#"&nbsp;onclick="new&nbsp;Effect.BlindDown('tag',&nbsp;1);"&gt;BlindDown&lt;/a&gt;<br />&lt;a&nbsp;href="#"&nbsp;onclick="new&nbsp;Effect.SwitchOff('tag',&nbsp;1);<br />&nbsp;&nbsp;&nbsp;window.setTimeout('Effect.Appear(\'tag\',&nbsp;<br />&nbsp;&nbsp;&nbsp;{duration:.3})',2500);"&gt;SwitchOff&lt;/a&gt;<br />&lt;a&nbsp;href="#"&nbsp;onclick="new&nbsp;Effect.Pulsate('tag',&nbsp;1);"&gt;Pulsate&lt;/a&gt;<br />&lt;a&nbsp;href="#"&nbsp;onclick="new&nbsp;Effect.Shake('tag',&nbsp;1);"&gt;Shake&lt;/a&gt;<br /><br />&lt;div&nbsp;id="tag"&gt;ceci&nbsp;est&nbsp;un&nbsp;test...&lt;/div&gt;</span>
</code</td></tr></table>
<br /><br />Avec un peu d&#039;imagination, Scriptaculous fera de vous un magicien du Javascript. Osez!<br /><br /><iframe src="includes/scriptaculous/index_slide.php" width=506 height=80 framespacing="0" frameborder="no" scrolling="no"></iframe>]]></description>
	</item>
	<item rdf:about="http://www.programmeur-analyste.com/archives/?entry=entry060530-161022">
		<title>Représentation statistique - JpGraph et PHP</title>
		<link>http://www.programmeur-analyste.com/archives/index.php?entry=entry060530-161022</link>
		<description><![CDATA[<img src="images/stats.jpg" width=480 height=126 border=0 alt=''><br /><br />Si vous ne connaissez pas <a href="http://www.aditus.nu/jpgraph/" target="_blank" >JpGraph</a>, il n&#039;est pas trop tard pour vous y mettre! C&#039;est une excellente librairie PHP qui nous permet d&#039;afficher aisément plusieurs types de graphes.<br /> <br />Supposons que vous avez un centre d&#039;appels et que vous désirez connaître le nombre d&#039;appels effectués par heure, il est fort probable que vous allez préférer une représentation graphique plutôt qu&#039;une lecture de données brutes. Mais comment faire?<br /><br />Copiez d&#039;abord <a href="http://www.aditus.nu/jpgraph/jpdownload.php" target="_blank" >les scripts de JpGraph</a> sur votre serveur. Ensuite, créez votre page .php qui sera en final votre image (donc à partir d&#039;une page HTML, vous pourrez l&#039;afficher comme ceci: &lt;img src=&quot;mon_graphe.php&quot;&gt; - et s&#039;il s&#039;agit d&#039;un graphe dynamique, vous pourrez ajouter des variables par exemple avec la méthode GET: &lt;img src=&quot;mon_graphe.php?heure_debut=12&amp;heure_fin=20&amp;lieu=x&quot;&gt;).<br /> <br />En toute simplicité...:<br /> <br />mon_graphe.php<br /><table width="508" bgcolor="#EEEEEE" cellpadding=4 cellspacing=0 style="border: 1px solid #5977B3;"><tr><td><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #007700">include&nbsp;</span><span style="color: #DD0000">"src/jpgraph.php"</span><span style="color: #007700">;<br />&nbsp;&nbsp;include&nbsp;</span><span style="color: #DD0000">"src/jpgraph_line.php"</span><span style="color: #007700">;<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Données&nbsp;X:&nbsp;heures<br />&nbsp;&nbsp;//&nbsp;Données&nbsp;Y:&nbsp;nombre&nbsp;d'appels<br />&nbsp;&nbsp;//&nbsp;<br />&nbsp;&nbsp;//&nbsp;Note:&nbsp;Les&nbsp;données&nbsp;X&nbsp;(heures)&nbsp;et&nbsp;Y&nbsp;(nombre&nbsp;d'appels)&nbsp;<br />&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;correspondent&nbsp;entre&nbsp;elles&nbsp;par&nbsp;leur&nbsp;position&nbsp;<br />&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dans&nbsp;les&nbsp;tableaux&nbsp;(array)<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$xdata&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #0000BB">12</span><span style="color: #007700">,</span><span style="color: #0000BB">13</span><span style="color: #007700">,</span><span style="color: #0000BB">14</span><span style="color: #007700">,</span><span style="color: #0000BB">15</span><span style="color: #007700">,</span><span style="color: #0000BB">16</span><span style="color: #007700">,</span><span style="color: #0000BB">17</span><span style="color: #007700">,</span><span style="color: #0000BB">18</span><span style="color: #007700">,</span><span style="color: #0000BB">19</span><span style="color: #007700">,</span><span style="color: #0000BB">20</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$ydata&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #0000BB">115</span><span style="color: #007700">,</span><span style="color: #0000BB">111</span><span style="color: #007700">,</span><span style="color: #0000BB">119</span><span style="color: #007700">,</span><span style="color: #0000BB">116</span><span style="color: #007700">,</span><span style="color: #0000BB">114</span><span style="color: #007700">,</span><span style="color: #0000BB">113</span><span style="color: #007700">,</span><span style="color: #0000BB">128</span><span style="color: #007700">,</span><span style="color: #0000BB">122</span><span style="color: #007700">,</span><span style="color: #0000BB">116</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Création&nbsp;du&nbsp;graphique&nbsp;de&nbsp;base<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">Graph</span><span style="color: #007700">(</span><span style="color: #0000BB">320</span><span style="color: #007700">,</span><span style="color: #0000BB">180</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;(largeur,&nbsp;hauteur)<br />&nbsp;<br />&nbsp;&nbsp;//&nbsp;Spécification&nbsp;du&nbsp;type&nbsp;de&nbsp;graphe<br />&nbsp;&nbsp;//&nbsp;'linlin'&nbsp;est&nbsp;utilisé&nbsp;parce&nbsp;que&nbsp;nous&nbsp;fournissons<br />&nbsp;&nbsp;//&nbsp;des&nbsp;coordonnées&nbsp;X&nbsp;et&nbsp;Y&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">SetScale</span><span style="color: #007700">(</span><span style="color: #DD0000">'linlin'</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Titre<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">title</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Set</span><span style="color: #007700">(</span><span style="color: #DD0000">"Centre&nbsp;de&nbsp;contact&nbsp;X"</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Sous-titre<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">subtitle</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Set</span><span style="color: #007700">(</span><span style="color: #DD0000">"Nombre&nbsp;d'appels&nbsp;par&nbsp;heure"</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Création&nbsp;de&nbsp;la&nbsp;ligne<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$lplot&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">LinePlot</span><span style="color: #007700">(</span><span style="color: #0000BB">$ydata</span><span style="color: #007700">,</span><span style="color: #0000BB">$xdata</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Ajout&nbsp;de&nbsp;notre&nbsp;ligne&nbsp;au&nbsp;graphique&nbsp;de&nbsp;base<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Add</span><span style="color: #007700">(</span><span style="color: #0000BB">$lplot</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Affichage&nbsp;du&nbsp;résultat<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Stroke</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code</td></tr></table>
<br /><b>Résultat #1</b><br /><img src="includes/jpgrah/graph0.php" border=0 alt=''><br /> <br /> <br />Ajoutons de la valeur maintenant à notre graphique en améliorant sa qualité visuelle:<br /> <br />mon_graphe.php<br /><table width="508" bgcolor="#EEEEEE" cellpadding=4 cellspacing=0 style="border: 1px solid #5977B3;"><tr><td><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #007700">include&nbsp;</span><span style="color: #DD0000">"src/jpgraph.php"</span><span style="color: #007700">;<br />&nbsp;&nbsp;include&nbsp;</span><span style="color: #DD0000">"src/jpgraph_line.php"</span><span style="color: #007700">;<br />&nbsp;&nbsp;include&nbsp;</span><span style="color: #DD0000">"src/jpgraph_scatter.php"</span><span style="color: #007700">;<br />&nbsp;&nbsp;include&nbsp;</span><span style="color: #DD0000">"src/jpgraph_regstat.php"</span><span style="color: #007700">;<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$xdata&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #0000BB">12</span><span style="color: #007700">,</span><span style="color: #0000BB">13</span><span style="color: #007700">,</span><span style="color: #0000BB">14</span><span style="color: #007700">,</span><span style="color: #0000BB">15</span><span style="color: #007700">,</span><span style="color: #0000BB">16</span><span style="color: #007700">,</span><span style="color: #0000BB">17</span><span style="color: #007700">,</span><span style="color: #0000BB">18</span><span style="color: #007700">,</span><span style="color: #0000BB">19</span><span style="color: #007700">,</span><span style="color: #0000BB">20</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$ydata&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #0000BB">115</span><span style="color: #007700">,</span><span style="color: #0000BB">111</span><span style="color: #007700">,</span><span style="color: #0000BB">119</span><span style="color: #007700">,</span><span style="color: #0000BB">116</span><span style="color: #007700">,</span><span style="color: #0000BB">114</span><span style="color: #007700">,</span><span style="color: #0000BB">113</span><span style="color: #007700">,</span><span style="color: #0000BB">128</span><span style="color: #007700">,</span><span style="color: #0000BB">122</span><span style="color: #007700">,</span><span style="color: #0000BB">116</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Interpolation&nbsp;des&nbsp;données&nbsp;pour&nbsp;l'affichage<br />&nbsp;&nbsp;//&nbsp;d'une&nbsp;ligne&nbsp;courbée<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$spline&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">Spline</span><span style="color: #007700">(</span><span style="color: #0000BB">$xdata</span><span style="color: #007700">,</span><span style="color: #0000BB">$ydata</span><span style="color: #007700">);<br />&nbsp;&nbsp;list(</span><span style="color: #0000BB">$newx</span><span style="color: #007700">,</span><span style="color: #0000BB">$newy</span><span style="color: #007700">)&nbsp;=&nbsp;</span><span style="color: #0000BB">$spline</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Get</span><span style="color: #007700">(</span><span style="color: #0000BB">50</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">Graph</span><span style="color: #007700">(</span><span style="color: #0000BB">320</span><span style="color: #007700">,</span><span style="color: #0000BB">180</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">SetMargin</span><span style="color: #007700">(</span><span style="color: #0000BB">30</span><span style="color: #007700">,</span><span style="color: #0000BB">20</span><span style="color: #007700">,</span><span style="color: #0000BB">40</span><span style="color: #007700">,</span><span style="color: #0000BB">30</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">title</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Set</span><span style="color: #007700">(</span><span style="color: #DD0000">"Centre&nbsp;de&nbsp;contact&nbsp;X"</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">title</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">SetFont</span><span style="color: #007700">(</span><span style="color: #0000BB">FF_ARIAL</span><span style="color: #007700">,</span><span style="color: #0000BB">FS_NORMAL</span><span style="color: #007700">,</span><span style="color: #0000BB">12</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">subtitle</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Set</span><span style="color: #007700">(</span><span style="color: #DD0000">"Nombre&nbsp;d'appels&nbsp;par&nbsp;heure"</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">subtitle</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">SetColor</span><span style="color: #007700">(</span><span style="color: #DD0000">'darkred'</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">SetMarginColor</span><span style="color: #007700">(</span><span style="color: #DD0000">'#F7F7F7'</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">SetScale</span><span style="color: #007700">(</span><span style="color: #DD0000">'linlin'</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;On&nbsp;enlève&nbsp;le&nbsp;décimal&nbsp;pour&nbsp;l'affichage<br />&nbsp;&nbsp;//&nbsp;des&nbsp;heures&nbsp;(%1.0f)&nbsp;et&nbsp;on&nbsp;ajoute<br />&nbsp;&nbsp;//&nbsp;la&nbsp;lettre&nbsp;"h",&nbsp;donc&nbsp;au&nbsp;lieu&nbsp;de<br />&nbsp;&nbsp;//&nbsp;12.0,&nbsp;nous&nbsp;aurons&nbsp;12h<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">xaxis</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">SetLabelFormat</span><span style="color: #007700">(</span><span style="color: #DD0000">'%1.0fh'</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Pour&nbsp;afficher&nbsp;les&nbsp;points&nbsp;de&nbsp;contrôle,<br />&nbsp;&nbsp;//&nbsp;nous&nbsp;utilisons&nbsp;les&nbsp;"ScatterPlot"<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$splot&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">ScatterPlot</span><span style="color: #007700">(</span><span style="color: #0000BB">$ydata</span><span style="color: #007700">,</span><span style="color: #0000BB">$xdata</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$splot</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mark</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">SetFillColor</span><span style="color: #007700">(</span><span style="color: #DD0000">'#5977B3'</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$splot</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mark</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">SetColor</span><span style="color: #007700">(</span><span style="color: #DD0000">'#5977B3'</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$lplot&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">LinePlot</span><span style="color: #007700">(</span><span style="color: #0000BB">$newy</span><span style="color: #007700">,</span><span style="color: #0000BB">$newx</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$lplot</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">SetColor</span><span style="color: #007700">(</span><span style="color: #DD0000">'#829FD9'</span><span style="color: #007700">);<br />&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Add</span><span style="color: #007700">(</span><span style="color: #0000BB">$lplot</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Add</span><span style="color: #007700">(</span><span style="color: #0000BB">$splot</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$g</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Stroke</span><span style="color: #007700">();<br />&nbsp;<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code</td></tr></table>
<br /><b>Résultat #2</b><br /><img src="includes/jpgrah/graph3.php" border=0 alt=''><br /><br /> <br />Pour faire des graphes d&#039;autres types et/ou plus avancés, vous trouverez dans la librarie un répertoire avec <a href="http://www.google.com/search?q=Visual+test+suit+for+JpGraph" target="_blank" >plusieurs centaines d&#039;exemples</a> facilent à comprendre. Parmi ceux-ci, vous avez les graphes suivant (cliquez sur le graphe pour voir le code):<br /><br /><a href="includes/jpgrah/src/Examples/show-example.php?target=alphabarex1.php" target="_blank" ><img src="includes/jpgrah/src/Examples/alphabarex1.php" border=0 alt=''></a><br /><br /><a href="includes/jpgrah/src/Examples/show-example.php?target=polarex9.php" target="_blank" ><img src="includes/jpgrah/src/Examples/polarex9.php" border=0 alt=''></a><br /><br /><a href="includes/jpgrah/src/Examples/show-example.php?target=pie3dex2.php" target="_blank" ><img src="includes/jpgrah/src/Examples/pie3dex2.php" border=0 alt=''></a><br /><br /><br />Un dernier exemple, si ça peut vous inspirer, voici l&#039;un des premiers graphes (dynamiques) que j&#039;ai fait avec JpGraph:<br /><br /><img src="images/graphe.gif" width=400 height=195 border=0 alt=''><br /><br /><br />Amusez-vous!]]></description>
	</item>
</rdf:RDF>

