PHP Classes

File: as-diagrams.rus.htm

Recommend this page to a friend!
  Classes of Alexander Selifonov   Bar chart drawing   as-diagrams.rus.htm   Download  
File: as-diagrams.rus.htm
Role: Documentation
Content type: text/plain
Description: Manual in russian
Class: Bar chart drawing
Generate bar charts with only HTML and icon images
Author: By
Last change: New features added
Date: 17 years ago
Size: 17,141 bytes
 

 

Contents

Class file image Download
<HTML> <HEAD><TITLE>as-diagrams: ìîäóëü âûâîäà äèàãðàìì (bar charts)</TITLE> <META http-equiv="Content-Type" Content="text/html; charset=windows-1251"> <!-- link href="styles.css" rel="stylesheet" type="text/css" --> <STYLE TYPE="text/css"> <!-- body { font-family:arial,helvetica;font-size:12px; } pre { color:#0000FF; } td { font-family:arial,helvetica;font-size:12px;} tr.odd { background-color: #F0F0F8; color:#000000; } tr.even { background-color: #E0E0F0; color:#000000; } h4 { background-color: #E0E0F0; color:#000000; text-align: left; } h5 { background-color: #E0E0F0; color:#000000; text-align: center; } --> </STYLE> </head> <BODY> <H3>as-diagrams: ìîäóëü âûâîäà äèàãðàìì (bar charts)</H3> <div align=right><a href="as-diagrams.htm">English version</a><br><br></div> <p> Ïðåäëàãàåìûé PHP êëàññ ïîçâîëÿåò ñîáèðàòü è âûâîäèòü Âàøè äàííûå â âèäå äèàãðàìì - "ñòîëáèêîâ" íå èñïîëüçóÿ ãðàôè÷åñêèå áèáëèîòåêè òèïà GD, ÷òî ïîçâîëÿåò óìåíüøèòü íàãðóçêó íà ñåðâåð è ðàçìåùàòü ñâîè ñòðàíèöû ó ïðîâàéäåðîâ, íå îáåñïå÷èâàþùèõ ïîääåðæêó gd. <p> Íèæå äàåòñÿ èíñòðóêöèÿ ïî âñòðàèâàíèþ ìîäóëÿ â Âàø ñàéò è åãî èñïîëüçîâàíèþ. <br> <H3>Óñòàíîâêà ìîäóëÿ as-diagrams íà ñàéò</H3> <ol> <li>Çàãðóçèâ äèñòðèáóòèâ as-diagrams.zip, ðàñïàêóéòå åãî âî âðåìåííóþ ïàïêó. Åñëè ïëàíèðóåòñÿ åãî èñïîëüçîâàíèå âî ìíîãèõ ñòðàíè÷êàõ ñàéòà, èìååò ñìûñë ñêîïèðîâàòü îñíîâíîé ôàéë <b>as-diagrams.php</b> â îäíó èç ïàïîê, ïåðå÷èñëåííûõ â ïåðåìåííîé include_path Âàøåãî íàñòðîå÷íîãî php.ini.  ïðîòèâíîì ñëó÷àå ïîëîæèòå php-ìîäóëü â îäíó ïàïêó ñî ñêðèïòîì, èç êîòîðîãî áóäåòå åãî âûçûâàòü. </li> <li>Ñêîïèðóéòå ñîäåðæèìîå ïàïêè <b>img</b> â âàøó ïàïêó îáùèõ êàðòèíîê ñàéòà (îòíîñèòåëüíûé ïóòü ê ýòîé ïàïêå íàäî áóäåò çàäàòü â ïåðåìåííîé <b>$imgpath</b>) êëàññà CAsBarDiagram.</li> <li>Îòêðîéòå â òåêñòîâîì ðåäàêòîðå ôàéë as-diagrams.php è îòðåäàêòèðóéòå ñòðîêè : <pre> var $bt_total = 'Totals'; // localize here or include into separate file var $imgpath = '/img/'; // place all 'diagram' images in this "folder" </pre> <br>$bt_total = ... - çäåñü çàäàåòñÿ çàãîëîâîê äëÿ ñòîëáöà Èòîãîâ (íàïðèìåð, "Èòîãî") <br>$imgpath = ... - Âàø "âèðòóàëüíûé" ïóòü ê ïàïêå ñ êàðòèíêàìè </li> <li>Ïðè íåîáõîäèìîñòè ïðèâåñòè öâåòà è øðèôòû ê îáùåìó äèçàéíó, îòðåäàêòèðóéòå â ôàéëå as-diagrams.php CSS-áëîê (ñòèëè tr.barodd, tr.bareven, tr.barhead, td.barhead) </li> </ol> <br> Åñëè Âàø WEB-ñåðâåð óæå ïîääåðæèâàåò PHP 4.x, ñêðèïò ãîòîâ ê ðàáîòå. Òåïåðü ïîñìîòðèì, êàê åãî èñïîëüçîâàòü. <br> <H3>Èñïîëüçîâàíèå ìîäóëÿ â ñâîèõ ñêðèïòàõ</H3> <p> Âûâîäèòü äèàãðàììû ìîæíî êàê íà îñíîâå çàðàíåå ïîäãîòîâëåííîãî äâóìåðíîãî ìàññèâà äàííûõ, (ïðåäâàðèòåëüíî âûçâàâ íåîáõîäèìûå SQL-çàïðîñû ê ñâîèì òàáëèöàì èëè äðóãèì ñïîñîáîì), òàê è ïåðåäàâàÿ â êëàññ CAsBarDiagram òåêñò SQL çàïðîñîâ äëÿ òîãî, ÷òîáû äàííûå áûëè ñîáðàíû ñèëàìè ñàìîãî êëàññà. <ol> <li>Íå çàáûâàåì ïîäêëþ÷èòü êëàññ ê ñâîåìó ñêðèïòó :<br> <b>require_once('as-diagrams.php');</b> </li> <li>Îáúÿâëÿåì ïåðåìåííóþ êëàññà CAsBarDiagram è åñëè íóæíî, çàäàåì ðàáî÷èå ïàðàìåòðû: <pre> $graph = new CAsBarDiagram; $graph->bwidth = 15; // øèðèíà îäíîãî "ñòîëáèêà" â ïèêñ. $graph->showdigits = 0; // îòêëþ÷èòü âûâîä òàáëèöû ñ ÷èñëîâûìè çíà÷åíèÿìè (ïî óìîë÷. âêëþ÷åíî) $graph->bt_total = 'Èòîãî'; // òåêñò äëÿ çàãîëîâêà èòîãîâîé êîëîíêè $graph->precision = 0; // ñêîëüêî çíàêîâ ïîñëå äåñ.òî÷êè âûâîäèòü â òàáëèöå ÷èñëîâûõ çíà÷åíèé $graph->showtotals = 0; // åñëè íå íóæíî âûâîäèòü êîëîíêó èòîãîâ </pre> </li> <li><a name='LEGENDS'>Ãîòîâèì îäíî-äâóìåðíûå ìàññèâû çíà÷åíèé, êîòîðûå áóäóò âûïîëíÿòü ðîëü "ëåãåíäû" ïî îñè X ($legend_x) è ïî îñè Y (èìåþòñÿ â âèäó çíà÷åíèÿ â îäíîé âûâîäèìîé ãðóïïå). <br>Îäíîìåðíûé ìàññèâ-ëåãåíäà ñîäåðæèò "êëþ÷åâûå" çíà÷åíèÿ äëÿ ñîáèðàåìûõ äàííûõ, à â äâóìåðíîì "êëþ÷" äîëæåí áûòü â ýëåìåíòå $legend_x[$row][0], à åãî òåêñòîâîå ïðåäñòàâëåíèå, êîòîðîå äîëæíî âûâîäèòüñÿ íà ãðàôèêå - â $legend_x[$row][1]. <br>Çàìåòèì, ÷òî äâóìåðíûå ìàññèâû ëåãåíäû (êëþ÷,çíà÷åíèå) íóæíû ëèøü â ñëó÷àå, åñëè âû ïëàíèðóåòå ñîáèðàòü äàííûå äëÿ âûâîäà ñ ïîìîùüþ âûçîâà GatherData(). <pre> $legend_x = array('ðîçíè÷íûå ïðîäàæè','îïòîâûå ïðîäàæè', 'ïðîäàæè ÷åðåç èíòåðíåò'); $legend_y = array( array('01','ÿíâàðü'),array('02','ôåâðàëü'),array('03,','ìàðò'), array('04','àïðåëü'),array('05','ìàé') ); </pre> </li> <li>Äàëåå ìîæíî ïîñòóïàòü äâóìÿ âàðèàíòàìè: <br>1) ñîáèðàòü äàííûå ñàìîñòîÿòåëüíî, íàïîëíÿÿ ìàññèâ $data[x][y] ñâîèìè çíà÷åíèÿìè è âûçûâàòü ìåòîä îòðèñîâêè ãðàôèêà, ïåðåäàâ åìó ñîáðàííûé ìàññèâ: <pre> $data = array( array(200,300,120), array(450,500,100), array(650,200,300), array(380,200,90), array(750,340,200)); $graph->DiagramBar($legend_x, $legend_y, $data, 'Ðåçóëüòàòû ïðîäàæ'); </pre> <br> 2) ïîäãîòîâèâ SQL-çàïðîñ, ïåðåäàòü åãî â îáúåêò êëàññà CAsBarDiagram: <pre> $graph->InitData($legend_x, $legend_y); // âíóòðåííèé ìàññèâ çàïîëíÿåòñÿ íóëÿìè $graph->GatherData($sql_query, $legend_x, $legend_y); // ... ìîæíî âûçâàòü ìíîãîêðàòíî, íàïîëíÿÿ ìàññèâ ïîñòåïåííî $graph->DiagramBar($legend_x, $legend_y, 0, $data_title); </pre> Ïðè ðàáîòå ïî âòîðîìó ìåòîäó äàííûå, ïîëó÷åííûå â SQL-çàïðîñå, çàíîñÿòñÿ âî âíóòðåííèé ìàññèâ êëàññà, è äëÿ èõ îòîáðàæåíèÿ âûçûâàåòñÿ ìåòîä DiagramBar() ñ ïóñòûì çíà÷åíèåì èëè ñêàëÿðíîé ïåðåìåííîé âìåñòî ìàññèâà (3-èé ïàðàìåòð ìåòîäà). </li> </ol> <h3>Ìåòîäû è ïåðåìåííûå êëàññà CAsBarDiagram</h3> <p><b>InitData($legend_x, $legend_y)</b> - âûïîëíÿåò î÷èñòêó âíóòðåííåãî ìàññèâà íàêîïëåííûõ çíà÷åíèé äëÿ âûâîäà. Íåîáõîäèìà, åñëè íóæíî ìíîãîêðàòíî âûâîäèòü äèàãðàììû, ïîëüçóÿñü ïðè ýòîì îäíèì è òåì æå ýêçåìïëÿðîì êëàññà CAsBarDiagram. Ðàçìåðíîñòè ìàññèâà ñòàíîâèòñÿ ðàâíûìè äëèíàì ïåðåäàííûõ ìàññèâîâ "ëåãåíä" $legend_x, $legend_y <p><b>GatherData($sqltext, $legend_x, $legend_y [, $position_y])</b> - çàïîëíÿåò âíóòðåííèé ìàññèâ äàííûìè èç ïåðåäàííîãî SQL-çàïðîñà. Ïðè íàëè÷èè íåîáõîäèìûõ òàáëèö ìîæíî ïîëó÷èòü âñå äàííûå â îäíîì àãðåãèðóþùåì çàïðîñå. Äëÿ ýòîãî ïåðâîå ïîëå ïîëó÷åííîãî êóðñîðà äîëæíî ñîîòâåòñòâîâàòü çíà÷åíèÿì â legend_x, âòîðîå - $legend_y, à òðåòüå - áûòü èñêîìûì ÷èñëîâûì çíà÷åíèåì, çàíîñèìûì â ìàññèâ. <br>Ïðèìåð àãðåãèðóþùåãî çàïðîñà (MySQL) <pre> SELECT MONTH(sale_date) AS mnt, product, SUM(sales_val) FROM sales WHERE YEAR(sale_date)=2005 GROUP BY mnt,product </pre> Åñëè íóæíî ñ ïîìîùüþ çàïðîñà çàïîëíèòü òîëüêî îäèí "ñòîëáåö" ìàññèâà, (âîçâðàùàåìûé çàïðîñîì êóðñîð èìååò äâà ïîëÿ - êëþ÷åâîå çíà÷åíèå ïî legend_x è èñêîìîå ÷èñëîâîå çíà÷åíèå), òî â ÷åòâåðòîì ïàðàìåòðå ($position_y) íåîáõîäèìî óêàçàòü íîìåð çàïîëíÿåìîãî ñòîëáöà äàííûõ (íà÷èíàÿ ñ 0).  ñëó÷àå, åñëè â êóðñîðå, âîçâðàùàåìîì çàïðîñîì, òðè è áîëåå ïîëÿ, ïàðàìåòð $position_y èãíîðèðóåòñÿ. <p><b>DiagramBar($legend_x, $legend_y, [$data|0, [$data_title]])</b> - îòîáðàæåíèå äèàãðàììû. Åñëè â òðåòüåì ïàðàìåòðå ïåðåäàí ìàññèâ, åãî çíà÷åíèÿ èñïîëüçóþòñÿ äëÿ îòîáðàæåíèÿ. Åñëè ïåðåäàíî ëþáîå ñêàëÿðíîå çíà÷åíèå, èñïîëüçóþòñÿ äàííûå, íàêîïëåííûå ñ ïîìîùüþ ïðåäûäóùèõ âûçîâîâ ìåòîäà GatherData(); <br><b>$data</b> - äâóìåðíûé ìàññèâ äàííûõ. $data[x][y] - çíà÷åíèå "ñòîëáèêà ¹ "y" âíóòðè âûâîäèìîé êîëîíêè X. <a name='SHOWDIGITS' /> <p><b>$showdigits</b> - âêëþ÷åíèå/îòêëþ÷åíèå âûâîäà "öèôðîâîé" ÷àñòè äèàãðàììû (òàáëèöû ñ ÷èñëîâûì ïðåäñòàâëåíèåì äàííûõ, èñïîëüçîâàííûõ äëÿ îòðèñîâêè ñòîëáèêîâ) <a name='SHOWPERCENTS' /> <p><b>$ShowPercents</b> - Íàçíà÷èâ ëþáîå íåïóñòîå çíà÷åíèå ýëåìåíòàì ýòîãî ìàññèâà, âû âêëþ÷èòå ôîðìèðîâàíèå ñòðîê "ïðîöåíòíîãî îòíîøåíèÿ". Ýòè ñòðîêè áóäóò ñîäåðæàòü îòíîøåíèå çíà÷åíèé â ñòðîêå N-1 ê ñòðîêå N, óìíîæåííîå íà 100. <br>  ýòîé ñòðîêå (âûâîäèìîé â "öèôðîâîé" ÷àñòè) áóäóò âûâåäåíû îòíîøåíèÿ çíà÷åíèé ÿ÷ååê, âûðàæåííûå â ïðîöåíòàõ - $data[n-1]/$data[n]. Ýòà ôóíêöèÿ áûëà ââåäåíà, êîãäà ïîíàäîáèëîñü îòîáðàæàòü ïðîöåíò âûïîëíåíèÿ ïëàíà, è ïðè ýòîì îäíà ñòðîêà äàííûõ ñîäåðæèò çíà÷åíèÿ ôàêòè÷åñêèõ ïîêàçàòåëåé, à ñëåäóþùàÿ - ñîîòâåòñòâóþùèå ïëàíîâûå äàííûå. Êàê èñïîëüçîâàòü :<br> Äîïóñòèì, åñòü ñòðîêà äàííûõ "ôàêòà", èìåþùàÿ çàãîëîâîê "Ôàêò 2005" â ñîîòâåòñòâóþùåé ñòðîêå çàãîëîâêîâ $legend_y, è ñòðîêà ñ ïëàíîì, (çàãîëîâîê â $legend_y - "Ïëàí 2005"). ×òîáû â öèôðîâîé îáëàñòè ïîñëå ñòðîêè ïëàíà áûëè âûâåäåíû ïîêàçàòåëè âûïîëíåíèÿ â ïðîöåíòàõ, ïåðåä âûçîâîì ìåòîäà DiagramBar() ñäåëàåì ïðèñâîåíèå: <pre> $graph->ShowPercents['Ïëàí 2005'] = '2005/Âûïîëíåíî, %'; </pre> Åñëè ïðèñâîåííàÿ ñòðîêà ñîñòîèò èç îäíîãî ñèìâîëà (1 èëè '*'), çàãîëîâîê äëÿ ñòðîêè ïðîöåíòîâ ôîðìèðóåòñÿ èç çàãîëîâêîâ ñîîòâåòñòâóþùèõ ñòðîê äàííûõ, â ïðîòèâíîì ñëó÷àå åå ñîäåðæèìîå è áóäåò èñïîëüçîâàíî â êà÷åñòâå çàãîëîâêà (êàê â íàøåì ïðèìåðå) <br> Ïðèìåð: <pre> $graph->ShowPercents[Ïëàí 2004'] = 'Âûïîëíåíèå ïëàíà 2004'; $graph->ShowPercents[Ïëàí 2005'] = 'Âûïîëíåíèå ïëàíà 2005'; // Áóäóò âûâåäåíû äâå ñòðîêè ñ ïðîöåíòíûìè ïîêàçàòåëÿìè! $graph->DiagramBar($legend_x, $legend_y, 0, $data_title); </pre> Åñëè ìàññèâ ShowPercents íåïóñòîé ê ìîåíòó âûçîâà DiagramBar(), öèôðîâàÿ îáëàñòü áóäåò âûâåäåíà íåçàâèñèìî îò çíà÷åíèÿ ïåðåìåííîé showdigits. Åñëè ïåðåìåííîé $graph->ShowPercents çàäàíî íåïóñòîå çíà÷åíèå, "öèôðîâàÿ" ÷àñòü äèàãðàììû áóäåò âûâîäèòüñÿ íåçàâèñèìî îò çíà÷åíèÿ â ïåðåìåííîé $graph->showdigits. <a name="drawempty"> <p><b>$drawempty_x, $drawempty_y</b> - ïåðåìåííûå çàäàþò ðåæèì îòðèñîâêè "ïóñòûõ" êîëîíîê (ñ íóëåâûìè çíà÷åíèÿìè) è ñòðîê (â öèôðîâîé ÷àñòè) ñîîòâåòñòâåííî. Ïî óìîë÷àíèþ ðàâíû 1, ò.å. îòîáðàæàþòñÿ âñå êîëîíêè, äàæå ñ îäíèìè íóëåâûìè çíà÷åíèÿìè, è âñå ñòðîêè. Ïåðåìåííûå íóæíî óñòàíîâèòü äî âûçîâà DiagramBar(). Äëÿ óñòàíîâêè ðåæèìà "ñêðûâàòü ïóñòûå êîëîíêè,ñòðîêè" ìîæíî âîñïîëüçîâàòüñÿ ìåòîäàìè HideEmptyXY($Hide=1),HideEmptyX($Hide=1),HideEmptyY($Hide=1) <pre> $grarh->drawempty_y = 0; $graph->HideEmptyY(); // îáà îïåðàòîðà èìåþò îäèíàêîâûé ýôôåêò </pre> <p>Ñëåäóþùèå òðè ïåðåìåííûå êëàññà ñëóæàò äëÿ ïðåâðàùåíèÿ çàãîëîâêîâ "ëåãåíäû" â HTML-ññûëêè.</p> <ul> <li><b>legendx_url</b> - çäåñü çàäàåòñÿ îñíîâíàÿ ñòðîêà URL, ñ ìàêðîñîì "{ID}", êîòîðûé äëÿ êàæäîãî çàëîãîâêà çàìåíÿåòñÿ íà ñîîòâåòñòâóþùåå çíà÷åíèå. <pre> $grarh = new CAsBarDiagram; $graph->legendx_url = 'detailedinfo.php?info_id={ID}'; </pre> Ïîñëå çàäàíèÿ ýòîé ïåðåìåííîé âñå íàèìåíîâàíèÿ ñòîëáöîâ â âûâåäåííîé äèàãðàììå áóäóò &lt;A HREF&gt;-ññûëêàìè </li> <li><b>legendx_onClick</b> - ñòðîêà äëÿ ñîáûòèÿ onClick=... â ññûëêå. Èñïîëüçóåòñÿ, åñëè âìåñòî ïåðåõîäà ïî ññûëêå íóæíî âûïîëíèòü javascript-ôóíêöèþ. Íàïðèìåð, äëÿ îòêðûòèÿ popup-îêíà (ïðè "êëèêå" ïî òåêñòó çàãîëîâêà) ìîæíî çàäàòü ñòðîêó âèäà: <pre> $graph->legendx_onClick = "window.open('details.php?id={ID}', '_blank','height=300,width=400');"; </pre> </li> <li><b>legendx_id</b> - çíà÷åíèÿ äëÿ ïîäñòàíîâêè âìåñòî "{ID}" â àäðåñàõ è çíà÷åíèÿõ onClick. Åñëè ïåðåìåííàÿ íå ñîäåðæèò ìàññèâà, áóäóò èñïîëüçîâàíû ñàìè ñòðîêè çàãîëîâêîâ ñòîëáöîâ. <br> ñëó÷àå ïîäãîòîâëåííûõ <b>äâóìåðíûõ</b> ìàññèâîâ ëåãåíä íóæäà â legendx_id îòïàäàåò. </li> </ul> <br> Íèæå ïðèâîäèòñÿ ðàáîòàþùèé ïðèìåð. <pre> require_once('as-diagrams.php'); // âêëþ÷èòü â òåëî ñâîåãî ñêðèïòà ! //... $data_title = 'Test bar diagram'; // title for the diagram // sample data array $data = array(); $data[] = array(900, 1300,1600); $data[] = array(1200,1800,2500); $data[] = array(1400,2000,2800); $data[] = array(1900,2900,3900); $data[] = array(2500,3500,4500); $legend_x = array('Yanuary','February','March','April','May'); $legend_y = array('pens','pensils','staplers'); $graph = new CAsBarDiagram; $graph->bwidth = 10; // set one bar width, pixels $graph->bt_total = 'Summary'; // 'totals' column title, if other than 'Totals' // $graph->showtotals = 0; // uncomment it if You don't need 'totals' column $graph->precision = 0; // decimal precision // call drawing function $graph->DiagramBar($legend_x, $legend_y, $data, $data_title); </pre> <br> Ðåçóëüòàò ðàáîòû ìîæåò âûãëÿäåòü ñëåäóþùèì îáðàçîì: <br><br><div align=center> <img src="sample.png" border=1 bgcolor=blue> </div> <br><br><!-- sample output ens --> Äîïîëíèòåëüíûå çàìå÷àíèÿ ïî ðàáîòå ñ ìîäóëåì as-diagrams: <ul> <li>Îòîáðàæàåìûå äàííûå ìîãóò èìåòü îòðèöàòåëüíûå çíà÷åíèÿ, â ýòîì ñëó÷àå ãðàôèê áóäåò èìåòü âòîðóþ, "ìèíóñîâóþ" ÷àñòü. Ìàñøòàáû ïî îáåèì ÷àñòÿì âûáèðàþòñÿ àâòîìàòè÷åñêè.<br><br></li> <li>×òîáû óïðàâëÿòü øèðèíîé îäíîãî ñòîëáèêà äèàãðàììû, çàäàéòå ñâîå çíà÷åíèå (â ïèêñåëàõ) â ïåðåìåííîé <b>$bwidth</b> äî âûçîâà ôóíêöèè DiagramBar(); <li>Åñëè ÷èñëî ñòðîê â ïîäãîòîâëåííîì ìàññèâå äàííûõ âåëèêî è ïðèâîäèò ê îòðèñîâêå ñëèøêîì øèðîêîé ñòðàíèöû, øèðèíà ñòîëáèêà ìîæåò áûòü àâòîìàòè÷åñêè ïîíèæåíà. Ìàêñèìàëüíîé äîïóñòèìîé øèðèíîé îêíà ïðè ýòîì ñ÷èòàåòñÿ 1024 ïèêñåëà (ñòàíäàðòíîå ðàçðåøåíèå ìîíèòîðà 1024 x 768). Åñëè Âû õîòèòå çàáëîêèðîâàòü ýòó ôóíêöèþ "ïîäñòðîéêè", íàéäèòå è çàêîììåíòèðóéòå ñòðîêó â ìîäóëå <b>as-diagrams.php</b>, èìåþùóþ âèä : <pre> "var $autoshrink = 1024;" </pre> Ëèáî çàäàéòå çäåñü ñâîå çíà÷åíèå ìàêñèìàëüíîé øèðèíû "ýêðàíà". <br></li> <li>Êàê Âû çàìåòèëè, îñü Y âñåãäà èìååò 4 "äåëåíèÿ" (â îäíó ñòîðîíó îò íóëÿ). Êàæäûé "øàã" èìååò âûñîòó 60 ïèêñåëîâ (òàêèì îáðàçîì, îáùàÿ âûñîòà Y-ïîëóîñè ãðàôèêà ðàâíà 240 px). Ôàéë "<b>bar-bg240.png</b>" èñïîëüçóåòñÿ êàê ôîíîâûé äëÿ îñíîâíîé çîíû ãðàôèêîâ. Åñëè ïîíàäîáèòñÿ ñìåíèòü ôîí, ïðîñòî îòðåäàêòèðóéòå ýòîò ôàéë. Åñëè æå íóæíî èçìåíèòü "áàçîâóþ" âûñîòó (240px), ïðèäåòñÿ âûïîëíèòü áîëüøå äåéñòâèé: íàðèñîâàòü íîâûé ôàéë ôîíà, ñîõðàíèòü åãî ïîä èìåíåì <b>bar-bgNNNN.png</b> (âûñîòà êàðòèíêè äîëæíà áûòü 1/4 îò æåëàåìîé íîâîé ïîëíîé âûñîòû), è çàäàòü íîâîå çíà÷åíèå âûñîòû â ïåðåìåííîé <b>$graf_height</b> äî âûçîâà DiagramBar(): <br><b>$graf_height = NNNN;</b> <br> ãäå NNNN - íîâàÿ âûñîòà äëÿ ïîëó-îñè Y. <br>Ïîìíèòå, ÷òî åñëè äàííûå ñîäåðæàò è ïîëîæèòåëüíûå, è îòðèöàòåëüíûå çíà÷åíèÿ, ãðàôèê ìîæåò áûòü âûøå â äâà ðàçà. <br></li> <li>Ïî óìîë÷àíèþ "ñòîëáèêè" ðàñêðàøåíû "ðàñòÿíóòûìè" èçîáðàæåíèÿìè bar-xxxxx.png. Åñëè íóæíî ðàñïîëîæèòü êàðòèíêó ôîíà "ïëèòêîé", çàäàéòå íåïóñòîå çíà÷åíèå â ïåðåìåííîé <b>$btilemode</b> äî âûçîâà DiagramBar(): <b>$btilemode=1;</b> <br>Âåðîÿòíî, äëÿ ýòîãî ñëó÷àÿ Âàì ïîíàäîáÿòñÿ ñâîè èçîáðàæåíèÿ âìåñòî âêëþ÷åííûõ â äèñòðèáóòèâ. </li> <li>Åñëè Âû ïëàíèðóåòå âûâîäèòü äèàãðàììû äëÿ çíà÷åíèé ìåíåå 1, òî÷íîñòü ïðåäñòàâëåíèÿ äðîáíîé ÷àñòè èìååò çíà÷åíèå.  ýòîì ñëó÷àå ìîæíî çàäàòü ÷èñëî äåñ.çíàêîâ â ïåðåìåííîé <b>$precision</b> äî âûçîâà ôóíêöèè DiagramBar(): <br><b>$gtaph->precision = 4;</b> <br>Çíà÷åíèå ïî óìîë÷àíèþ 2. </ul> <br> <H4>Èñòîðèÿ (âåðñèè)</H4> <h5>1.0.11 (16.01.2007)</h5> <ul> <li>Íîâàÿ ôè÷à: ìàññèâ "ëåãåíä" ïî îñÿì X ($legend_x[]) è Y ($legend_y[]) ìîæåò áûòü äâóìåðíûì - òîãäà ïåðâûé ýëåìåíò â ñòðîêå (legend_x[ii][0]) äîëæåí ñîäåðæàòü "êëþ÷åâîå" çíà÷åíèå àòðèáóòà, à âòîðîé (legend_x[ii][1]) - åãî òåêñòîâîå ïðåäñòàâëåíèå, âûâîäèìîå íà äèàãðàììå. Ïîäðîáíî - ñì. <a href="#LEGENDS">âûøå</a>. Ïðè äâóìåðíûõ ìàññèâàõ ëåãåíä îòïàäàåò íåîáõîäèìîñòü â äîïîëíèòåëüíûõ ìàññèâàõ ID-çíà÷åíèé legendx_id, legendy_id. </li> <li>  êëàññ äîáàâëåíà íîâûå ïåðåìåííûå $drawempty_x, $drawempty_y, è ñîîòâåòñòâåííî, ôóíêöèè äëÿ èõ çàäàíèÿ CAsBarDiagram::HideEmptyXY(param=1),HideEmptyX(param=1), HideEmptyY(param=1), çàäàþùèå ðåæèì âûâîäà ëèáî ïîäàâëåíèÿ ïóñòûõ êîëîíîê/ñòðîê (ïðè íåíóëåâîì çíà÷åíèè ïóñòûå êîëîíêè íå ïîäàâëÿþòñÿ). Ïî óìîë÷àíèþ ïóñòûå êîëîíêè íå ïîäàâëÿþòñÿ. Åñëè íóæíî îáðàòíîå, äî âûçîâà DiagramBar() âûïîëíèòü íóæíûé ìåòîä; </li> </ul> <h5>1.0.10 (17.01.2006)</h5> <ul> <li>Äîáàâëåíà âîçìîæíîñòü âûâîäà èòîãîâ ïî ñòîëáöàì (â îáëàñòè ÷èñëîâîãî ïðåäñòàâëåíèÿ äàííûõ) Äëÿ ýòîãî ïåðåìåííàÿ <b>showtotals</b> òåïåðü èìååò "ïîáèòîâîå" çíà÷åíèå: áèò 0 îòâå÷àåò çà èòîãè ñïðàâà, áèò 1 - çà èòîãè ñíèçó</li> <li>âîçìîæíîñòü âûâîäà íåñêîëüêèõ ñòðîê "ïðîöåíòíîãî îòíîøåíèÿ" (â îáëàñòè ÷èñëîâîãî ïðåäñòàâëåíèÿ äàííûõ) </li> <!-- <li></li> --> </ul> <br> <H4>Ññûëêè</H4> <ul> <li><a href="http://as-works.narod.ru/php/">Äîìàøíÿÿ ñòðàíèöà àâòîðà, áèáëèîòåêà PHP-ìîäóëåé</a></li> <li><a href="http://www.lutanho.net/diagram/" target="_blank">LT Diagram Builder</a> - îòëè÷íûé äâèæîê äëÿ ïîñòðîåíèÿ ðàçëè÷íûõ âèäîâ äèàãðàìì è âûâîäà ãðàôèêîâ ôóíêöèé Åñòü âåðñèè javascript, PHP è ASP. PHP âåðñèÿ èñïîëüçóåò áèáëèîòåêó GD. </li> <li><a href="http://w100w.com/english/asp/graphs_and_charts/" target="_blank">w100w.com, ñïèñîê ðàçðàáîòîê äëÿ âûâîäà ãðàôèêè</a> </li> </ul> <br><br><br><p> <hr> <div align=center><font size=-2>Copyright &copy; Alexander Selifonov, <a href="http://as-works.narod.ru">as-works.narod.ru</a> </font></div> </HTML></BODY>