<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>web-memento &#187; Google</title>
	<atom:link href="http://www.web-memento.fr/categories/google/feed" rel="self" type="application/rss+xml" />
	<link>http://www.web-memento.fr</link>
	<description>Cahier(s) d&#039;un développeur web</description>
	<lastBuildDate>Mon, 21 Jun 2010 08:08:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Générer des graphiques grâce à l&#8217;API Google Chart</title>
		<link>http://www.web-memento.fr/generer-des-graphiques-grace-a-l-api-google-chart</link>
		<comments>http://www.web-memento.fr/generer-des-graphiques-grace-a-l-api-google-chart#comments</comments>
		<pubDate>Tue, 30 Jun 2009 05:15:09 +0000</pubDate>
		<dc:creator>Luc</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Graphique]]></category>
		<guid isPermaLink="false">http://www.web-memento.fr/?p=257</guid>
		<description><![CDATA[Google propose de nous aider à mettre en forme nos données sous forme de graphiques, bien souvent plus lisibles qu&#8217;un tableau de valeurs, grâce à son API Google Chart. La particularité de cette API est qu&#8217;elle ne nécéssite nullement d&#8217;inclure une librairie dans son code pour l&#8217;utiliser. Il suffit simplement de définir une URL spécifique [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Google</strong> propose de nous aider à mettre en forme nos données sous forme de <strong>graphiques</strong>, bien souvent plus lisibles qu&#8217;un tableau de valeurs, grâce à son <a title="Google Chart API" href="http://code.google.com/intl/fr-FR/apis/chart/"><acronym title="Application Programming Interface">API</acronym> Google Chart</a>. La particularité de cette <acronym title="Application Programming Interface">API</acronym> est qu&#8217;elle ne nécéssite nullement d&#8217;inclure une librairie dans son code pour l&#8217;utiliser. Il suffit simplement de définir une <strong><acronym title="Uniform Resource Locator">URL</acronym> spécifique</strong> pour l&#8217;attribut <span class="code">src</span> d&#8217;une image afin de disposer du graphique voulu.</p>
<h2>Hello World de l&#8217;<acronym title="Application Programming Interface">API</acronym> Google Chart</h2>
<p>Pour démontrer toute la puissance et la simplicité de l&#8217;<acronym title="Application Programming Interface">API</acronym>, voici le Hello Word! tel qu&#8217;il est présenté par la documentation officielle de Google :</p>
<pre class="brush: xml;">&amp;lt;img src=&amp;quot;http://chart.apis.google.com/chart?cht=p3&amp;amp;amp;chd=t:60,40&amp;amp;amp;chs=250x100&amp;amp;amp;chl=Hello|World&amp;quot; title=&amp;quot;Hello World Google Chart&amp;quot; alt=&amp;quot;Hello World Google Chart&amp;quot; /&amp;gt;</pre>
<p>qui effectue le rendu suivant :</p>
<p style="text-align: center;"><a class="no-externe" title="Hello World Google Chart en 650x350 px" rel="lightbox" href="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=650x350&amp;chl=Hello|World"><br />
<img class="aligncenter post-img" title="Hello World Google Chart" src="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=250x100&amp;chl=Hello|World" alt="Hello Word Google Chart" width="250" height="100" /></a></p>
<p><em>Vous pouvez cliquer sur cette image pour la visionner en 650&#215;350 px. Seul le paramètre <span class="code"><strong>chs</strong></span> de l&#8217;<acronym title="Uniform Resource Locator">URL</acronym> a été modifié pour arriver à ce résultat.</em></p>
<h2>Fonctionnement et limitations</h2>
<p>Comme on vient de le constater, le fonctionnement est simple puisqu&#8217;il est basé sur une requête <strong>GET</strong> vers le serveur de l&#8217;<acronym title="Application Programming Interface">API</acronym>. Chaque requête conforme retourne une image au format <strong><acronym title="Portable Network Graphics">PNG</acronym></strong>. L&#8217;image demandée ne doit pas dépasser une aire de <strong>300000 pixels</strong> et un côté ne peut dépasser <strong>1000 pixels</strong>.</p>
<p>Un graphique de type <strong>mappemonde</strong> ne peut quant à lui pas dépasser les dimensions de <strong>440&#215;220 pixels</strong>.</p>
<p>Chaque graphique demandé est hautement configurable selon les paramètres transmis dans la requête. En outre, il est possible de définir le <strong>type de graphique</strong>, sa <strong>taille</strong>, les <strong>couleurs</strong>,  un <strong>titre</strong>, une <strong>légende</strong>, une <strong>grille</strong>, les <strong>espacements</strong>, la <strong>dimension des éléments</strong>, et beaucoup plus encore.</p>
<p>Il est aussi a noté que Google se réserve le droit de bloquer l&#8217;utilisation à son service à tout moment s&#8217;il juge son utilisation abusive. En outre, si vous juger que votre site risque d&#8217;effectuer plus de <strong>250000 requêtes journalières</strong> vers l&#8217;<acronym title="Application Programming Interface">API</acronym>, il est recommandé de les contacter sur <a href="mailto:chart-api-notifications@google.com">chart-api-notifications@google.com</a>.</p>
<p><em><strong>Note</strong> : cet article ne fait que présenter simplement l&#8217;<acronym title="Application Programming Interface">API</acronym> et ne pourrait se substituer à la <a title="Documentation officielle de Google Chart API" href="http://code.google.com/intl/fr-FR/apis/chart/">documentation officielle fourni par Google</a> qui elle seule vous permettra d&#8217;élaborer des graphiques aussi proches de ceux que vous désireriez présenter. Je ne peux que vous conseiller de la lire attentivement afin d&#8217;apréhender toutes les possibilités offertes par l&#8217;<acronym title="Application Programming Interface">API</acronym>.</em></p>
<h2>Définir la taille du graphique</h2>
<p>La taille du graphique désirée est définie par le paramètre <span class="code"><strong>chs</strong></span>. C&#8217;est un paramètre <strong>obligatoire</strong> qui, s&#8217;il est omis, retournera un <strong>code d&#8217;erreur <acronym title="HyperText Transfer Protocol">HTTP</acronym> 400</strong>. La valeur doit être formatée avec la largeur et la hauteur séparées par un x. Vous pouvez ne spécifier qu&#8217;<strong>une seule valeur</strong> auquel cas le graphique aura un format carré.</p>
<p>Comme stipulé ci-dessus, le graphique ne doit pas dépasser 300000 pixels, et un côté ne doit pas faire plus de 1000 pixels, sauf pour un graphique de type mappemonde qui ne peut dépasser 440&#215;220 pixels.</p>
<h2>Les types de graphiques disponibles</h2>
<p>Le paramètre <span class="code"><strong>cht</strong></span> permet de définir le <strong>type de graphique</strong> que l&#8217;on désire afficher. Google en met <strong>9</strong> principaux à disposition qui ont chacun leurs propres variantes selon le paramétrage de la requête effectuée. Voici la liste des types de graphiques avec pour chaque la/les valeurs possibles. Vous pouvez cliquer sur une valeur pour avoir un aperçu de chaque type :</p>
<ul>
<li>courbes/lignes : <a class="no-externe" title="cht=lc" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=lc&amp;chs=650x350&amp;chd=t:40,60,60,45,47,75,70,72">lc</a>, <a class="no-externe" title="cht=ls" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?chs=650x350&amp;cht=ls&amp;chco=0077CC&amp;chd=t:27,25,60,31,25,39,25,31,26,28,80,28,27,31,27,29,26,35,70,25">ls</a>, <a class="no-externe" title="cht=lxy" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=650x350&amp;chd=t:10,20,40,80,90,95,99|20,30,40,50,60,70,80|-1|5,25,45,65,85&amp;chco=3072F3,ff0000,00aaaa&amp;chls=2,4,1&amp;chm=s,FF0000,0,-1,5|s,0000ff,1,-1,5|s,00aa00,2,-1,5">lxy</a> ;</li>
<li>histogrammes/barres : <a class="no-externe" title="cht=bhs" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=bhs&amp;chs=650x350&amp;chd=s:ello&amp;chco=4d89f9">bhs</a>, <a class="no-externe" title="cht=bvs" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=bvs&amp;chs=650x350&amp;chd=t:10,50,60,80,40|50,60,100,40,20&amp;chco=4d89f9,c6d9fd&amp;chbh=20&amp;chds=0,160">bvs</a>, <a class="no-externe" title="cht=bhg" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=bhg&amp;chs=650x350&amp;chd=s:el,or&amp;chco=4d89f9,c6d9fd">bhg</a>, <a class="no-externe" title="cht=bvg" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=bvg&amp;chs=650x350&amp;chd=s:hello,world&amp;chco=4d89f9,c6d9fd">bvg</a>;</li>
<li>secteurs ou camemberts : <a class="no-externe" title="cht=p" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=p&amp;chd=s:Uf9a&amp;chs=600x300&amp;chl=Janvier|Fevrier|Mars|Avril">p</a>, <a class="no-externe" title="cht=p3" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=p3&amp;chd=s:Uf9a&amp;chs=650x275&amp;chl=Janvier|Fevrier|Mars|Avril">p3</a>, <a class="no-externe" title="cht=pc" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=pc&amp;chd=s:Helo,World&amp;chs=600x300">pc</a>;</li>
<li>diagrammes de Venn : <a class="no-externe" title="cht=v" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=v&amp;chs=600x300&amp;chd=t:100,80,60,30,25,20,10">v</a>;</li>
<li>points ou bulles : <a class="no-externe" title="vht=s" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=s&amp;chd=t:12,87,75,41,23,96,68,71,34,9|98,60,27,34,56,79,58,74,18,76|84,23,69,81,47,94,60,93,64,54&amp;chxt=x,y&amp;chxl=0:|0|20|30|40|50|60|70|80|90|10|1:|0|25|50|75|100&amp;chs=600x375">s</a>;</li>
<li>radars : <a class="no-externe" title="cht=r" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=r&amp;chs=530x530&amp;chd=t:77,66,15,0,31,48,100,77|20,36,100,2,0,100&amp;chco=FF0000,FF9900&amp;chls=2.0,4.0,0.0|2.0,4.0,0.0&amp;chxt=x&amp;chxl=0:|0|45|90|135|180|225|270|315&amp;chxr=0,0.0,360.0">r</a>, <a class="no-externe" title="cht=rs" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=rs&amp;chs=530x530&amp;chd=s:voJATd9v,MW9BA9&amp;chco=FF0000,FF9900&amp;chls=2.0,4.0,0.0|2.0,4.0,0.0&amp;chxt=x&amp;chxl=0:|0|45|90|135|180|225|270|315&amp;chxr=0,0.0,360.0&amp;chg=25.0,25.0,4.0,4.0&amp;chm=B,FF000080,0,1.0,5.0|B,FF990080,1,1.0,5.0|h,0000FF,0,1.0,4.0|h,3366CC80,0,0.5,5.0|V,00FF0080,0,1.0,5.0|V,008000,0,5.5,5.0|v,00A000,0,6.5,4">rs</a>;</li>
<li>mappemonde/cartes : <a class="no-externe" title="cht=t" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?cht=t&amp;chs=440x220&amp;chd=s:_&amp;chtm=world">t</a>;</li>
<li>Google-o-meters : <a class="no-externe" title="cht=gom" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?chs=562x312&amp;cht=gom&amp;chd=t:70&amp;chl=Hello">gom</a>;</li>
<li>QR codes : <a class="no-externe" title="cht=qr" rel="lightbox[cht]" href="http://chart.apis.google.com/chart?chs=150x150&amp;cht=qr&amp;chl=Hello%20world&amp;choe=UTF-8">qr</a>.</li>
</ul>
<p>Ces types de graphiques devraient couvrir la plupart des utilisations, d&#8217;autant que Google en rajoute de temps en temps.</p>
<h2>Ajouter un titre à vos graphiques</h2>
<p>Vous avez la possibilité d&#8217;ajouter <strong>un titre</strong> à votre graphique en utilisant le paramètre <span class="code"><strong>chtt</strong></span>. Utiliser le caractère &laquo;&nbsp;+&nbsp;&raquo; pour mettre <strong>un espace</strong> et le caractère pipe &laquo;&nbsp;|&nbsp;&raquo; pour effectuer <strong>un retour à la ligne</strong>.</p>
<p>Ajoutons simplement un titre à notre &laquo;&nbsp;Hello World!&nbsp;&raquo; précédent avec le code suivant :</p>
<pre class="brush: xml;">&amp;lt;img src=&amp;quot;http://chart.apis.google.com/chart?cht=p3&amp;amp;amp;chd=t:60,40&amp;amp;amp;chs=250x100&amp;amp;amp;chl=Hello|World&amp;amp;amp;chtt=Google+Chart|Hello+World+!&amp;quot; title=&amp;quot;Hello World Google Chart&amp;quot; alt=&amp;quot;Hello World Google Chart&amp;quot; /&amp;gt;</pre>
<p style="text-align: center;"><img class="aligncenter post-img" title="Hello World Google Chart" src="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=250x100&amp;chl=Hello|World&amp;chtt=Google+Chart|Hello+World+!" alt="Hello World Google Chart" /></p>
<p>On remarque bien évidement que les dimensions de l&#8217;image retournée correspondent toujours à celles spécifiées (250&#215;100 pixels), et donc que le graphique en lui même a été rétréci afin de concéder la place nécessaire au titre. Il faudra alors penser à prendre en concidération ce paramètre dans le dimensionnement de votre graphique.</p>
<h3>Couleur et taille du titre</h3>
<p>La couleur et la taille de la police du titre peuvent être définies avec le paramètre <span class="code">chts</span>. Il prend comme valeur la couleur désirée au format héxadécimal et la taille de la police séparées par une virgule :</p>
<pre class="brush: xml;">&amp;lt;img src=&amp;quot;http://chart.apis.google.com/chart?cht=p3&amp;amp;amp;chd=t:60,40&amp;amp;amp;chs=250x100&amp;amp;amp;chl=Hello|World&amp;amp;amp;chtt=Google+Chart|Hello+Word+!&amp;amp;amp;chts=ff9900,9&amp;quot; title=&amp;quot;Hello Word Google Chart&amp;quot; alt=&amp;quot;Hello Word Google Chart&amp;quot; /&amp;gt;</pre>
<p style="text-align: center;"><img class="aligncenter post-img" title="Hello Word Google Chart" src="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=250x100&amp;chl=Hello|World&amp;chtt=Google+Chart|Hello+Word+!&amp;chts=ff9900,9" alt="Hello Word Google Chart" /></p>
<p>Malheureusement, autant il est possible d&#8217;omettre la valeur de la taille de la police, auquel cas c&#8217;est celle par défaut qui est utilisée (14), mais on ne peut spécifier cette taille sans préciser la couleur de celle-ci.</p>
<h2>Légende et position de la légende</h2>
<p>Tout comme il est possible d&#8217;ajouter un titre, l&#8217;<acronym title="Application Programming Interface">API</acronym> permet d&#8217;insérer une légende ainsi que de la positionner sur l&#8217;image. C&#8217;est le paramétre <span class="code"><strong>chdl</strong></span> qui défini les termes de la légende. Voici ce que celà donne, toujours sur l&#8217;exemple de notre &laquo;&nbsp;Hello, World!&nbsp;&raquo; :</p>
<p style="text-align: center;"><img class="aligncenter post-img" title="Hello World Google Chart" src="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=250x100&amp;chl=Hello|World&amp;chtt=Google+Chart|Hello+World+!&amp;chts=ff9900,9&amp;chdl=Hello|World" alt="Hello World Google Chart" /></p>
<p>Par défaut, la légende est placée sur la droite de l&#8217;image. On peut modifier la valeur du paramètre <span class="code"><strong>chdlp</strong></span> afin de positionner notre légende sur notre image. Les valeurs de ce paramètre sont <strong>prédéfinie ,s</strong> et sont au nombre de <strong>6</strong> :</p>
<ul>
<li><strong>alignement horizontal</strong> :
<ul>
<li><strong>en dessous</strong> du graphique : <a class="no-externe" title="Légende en dessous du graphique" rel="lightbox[chdlp]" href="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=650x350&amp;chl=Hello|World&amp;chtt=Google+Chart|Hello+World+!&amp;chts=ff9900,9&amp;chdl=Hello|World&amp;chdlp=b">b</a>;</li>
<li><strong>au dessus</strong> du graphique : <a class="no-externe" title="Légende au dessus du graphique" rel="lightbox[chdlp]" href="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=650x350&amp;chl=Hello|World&amp;chtt=Google+Chart|Hello+World+!&amp;chts=ff9900,9&amp;chdl=Hello|World&amp;chdlp=t">t</a>;</li>
</ul>
</li>
<li><strong>alignement vertical</strong> :
<ul>
<li><strong>en dessous</strong> du graphique : <a class="no-externe" title="Légende en dessous du graphique" rel="lightbox[chdlp]" href="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=650x350&amp;chl=Hello|World&amp;chtt=Google+Chart|Hello+World+!&amp;chts=ff9900,9&amp;chdl=Hello|World&amp;chdlp=bv">bv</a>;</li>
<li><strong>au dessus</strong> du graphique : <a class="no-externe" title="Légende au dessus du graphique" rel="lightbox[chdlp]" href="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=650x350&amp;chl=Hello|World&amp;chtt=Google+Chart|Hello+World+!&amp;chts=ff9900,9&amp;chdl=Hello|World&amp;chdlp=tv">tv</a>;</li>
<li><strong>à droite</strong> du graphique (valeur par défaut) : <a class="no-externe" title="Légende à droite du graphique" rel="lightbox[chdlp]" href="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=650x350&amp;chl=Hello|World&amp;chtt=Google+Chart|Hello+World+!&amp;chts=ff9900,9&amp;chdl=Hello|World&amp;chdlp=r">r</a>;</li>
<li><strong>à gauche</strong> du graphique : <a class="no-externe" title="Légende à gauche du graphique" rel="lightbox[chdlp]" href="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=650x350&amp;chl=Hello|World&amp;chtt=Google+Chart|Hello+World+!&amp;chts=ff9900,9&amp;chdl=Hello|World&amp;chdlp=l">l</a>.</li>
</ul>
</li>
</ul>
<h2>Gestion des couleurs</h2>
<p>Vous pouvez laisser Google gérer lui-même les couleurs mais dans bien des cas, vous voudrez probablement définir vous-même les couleurs de vos graphiques. Il est possible de régler la majorité des couleurs pour votre image : <strong>graphique</strong>, <strong>fond</strong>, <strong>titre</strong>, <strong>lignes</strong>, &#8230; Il serait fastidieux de présenter un exemple de chaque cas possible, cependant, le paramétrage s&#8217;effectue toujours de la même façon : il faut fournir une couleur encodée au format héxadécimal :</p>
<ul>
<li>000000 : noir;</li>
<li>FFFFFF : blanc;</li>
<li>FF0000 : rouge;</li>
<li>00FF00 : vert;</li>
<li>0000FF : bleu.</li>
</ul>
<p>Vous pouvez optionnellement gérer un <strong>canal alpha</strong>, vous permettant de jouer avec <strong>l&#8217;opacité de la couleur</strong>, en l&#8217;ajoutant à la valeur de la couleur :</p>
<ul>
<li>00000088 : noir opaque à 50%;</li>
<li>FF000000 : rouge complètement transparent</li>
<li>FF0000FF : rouge complètement opaque</li>
</ul>
<h2>Pour conclure !</h2>
<p>Car il serait impossible d&#8217;énumérer toutes les possibilités qu&#8217;offre <strong>Google Chart <acronym title="Application Programming Interface">API</acronym></strong>! Nous venons de ne voir qu&#8217;une maigre facette proposée par l&#8217;<acronym title="Application Programming Interface">API</acronym>, mais qui, j&#8217;en suis sûr, vous aura donné autant envie que moi d&#8217;aller puiser dans l&#8217;<a title="Documentation officielle de Google Chart API" href="http://code.google.com/intl/fr-FR/apis/chart/">abondante documentation</a> afin de se rendre compte de toutes les possibilité de l&#8217;<acronym title="Application Programming Interface">API</acronym>.</p>
<p>Pour information, il est à noter que <strong>Google utilise cette <acronym title="Application Programming Interface">API</acronym> en interne</strong> pour beaucoup d&#8217;autres services, tel que Google Analytics, Google Webmaster Tools ou encore Feed Burner.</p>]]></content:encoded>
			<wfw:commentRss>http://www.web-memento.fr/generer-des-graphiques-grace-a-l-api-google-chart/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

