Background knowledge
JpGraph: In the past, when drawing with PHP, you had to master complex and abstract drawing functions, or use some column chart and pie chart classes downloaded from the Internet to achieve it. There is no unified chart class to achieve rapid development of charts.
Now we have a new choice: JpGraph. A class library dedicated to providing charts. It makes drawing a very simple thing. You only need to retrieve the relevant data from the database, define the title and chart type, and then leave the rest to JpGraph. You only need to master a few JpGraph built-in functions (you can Follow the example provided with JpGraph to learn) and you can draw very dazzling charts!
1. JpGraph installation method:
1. First go to http://www.aditus.nu/jpgraph/ to download the latest version.
2. Make sure your PHP version is at least 4.04 (preferably 4.1.1) and supports the GD library. You must ensure that the GD library can run normally. You can check whether the GD library information exists by running phpinfo(). At the same time, it is required that the version of the GD library should be 2.0, not 1.0.
3. Unzip the downloaded JpGraph compressed package to any folder.
4. Set jpgraph.php (jpgraph’s main configuration file). Set jpgraph's cache (cache) folder and TTF (font) folder.
On lines 35 and 38 respectively
35 //DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");
38 //DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/");
Linux system changed to:
DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");
DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/");
Windows system changed to:
DEFINE("CACHE_DIR","c:/apache/htdocs/jpgraph_cache/");
DEFINE("TTF_DIR","c:/windows/fonts");
Note:
(1) The cache folder path can be defined by yourself, while the TTF (font) folder must be %system%/Fonts.
(2) Make sure PHP has write permissions on the cache folder.
5. After completing the above settings, you can use JpGraph. You can first copy the JpGraph example to the htdocs folder and run it to take a look. Haha, there are more than 200 examples, including various charts, which is enough to study for a while.
In actual use, if you still don’t understand or don’t understand something, you can refer to the bkJia video tutorial 85 published by bkJia Chinese: PHP chart class JPGraph entry configuration and application
Read data from the database into the jpgraph chart
1. Copy the file example16.2.php in the ./src/Examples directory and the files jpgraph_bar.php, jpgraph_gradient.php, jpgraph_line.php, jpgraph_plotmark.inc, and jpgraph.php in the ./src directory to the same directory.
2. Create database jpg and database table test
Create 2 fields:
id (primary key): int
number: int
and add some data
3. Modify example16.2.php
Modified code
<ol class="dp-c"> <li class="alt"><span><span><?php </span></span></li><li><span class="keyword">include</span><span> (</span><span class="string">"jpgraph.php"</span><span>); </span></li><li class="alt"><span class="keyword">include</span><span> (</span><span class="string">"jpgraph_line.php"</span><span>); </span></li><li><span class="keyword">include</span><span> (</span><span class="string">"jpgraph_bar.php"</span><span>); </span></li><li class="alt"><span class="vars">$connect</span><span>=mysql_connect(</span><span class="string">"localhost"</span><span>,</span><span class="string">"root"</span><span>,</span><span class="string">""</span><span>); </span></li><li><span>mysql_select_db(</span><span class="string">"jpg"</span><span>,</span><span class="vars">$connect</span><span>); </span></li><li class="alt"><span class="vars">$query</span><span>=mysql_query(</span><span class="string">"select * from test"</span><span>,</span><span class="vars">$connect</span><span>); </span></li><li><span class="vars">$i</span><span>=0; </span></li><li class="alt"><span class="keyword">while</span><span> (</span><span class="vars">$array</span><span>=mysql_fetch_array(</span><span class="vars">$query</span><span>)) { </span></li><li><span class="vars">$l2datay</span><span>[</span><span class="vars">$i</span><span>]=</span><span class="vars">$array</span><span>[</span><span class="string">"number"</span><span>]; </span></li><li class="alt"><span class="vars">$i</span><span>++; </span></li><li><span>} </span></li><li class="alt"><span>mysql_close(</span><span class="vars">$connect</span><span>); </span></li><li><span class="comment">// Create the graph. </span><span> </span></li><li class="alt"><span class="vars">$graph</span><span> = </span><span class="keyword">new</span><span> Graph(400,200,</span><span class="string">"auto"</span><span>); </span></li><li><span class="vars">$graph</span><span>->SetScale(</span><span class="string">"textlin"</span><span>); </span></span></li> <li class="alt"> <span class="vars">$graph</span><span>->img->SetMargin(40,130,20,40); </span> </li> <li> <span class="vars">$graph</span><span>->SetShadow(); </span> </li> <li class="alt"> <span class="comment">// Create the bar plot </span><span> </span> </li> <li> <span class="vars">$bplot</span><span> = </span><span class="keyword">new</span><span> BarPlot(</span><span class="vars">$l2datay</span><span>); </span> </li> <li class="alt"> <span class="vars">$bplot</span><span>->SetFillColor(</span><span class="string">"orange"</span><span>); </span> </li> <li> <span class="vars">$bplot</span><span>->SetLegend(</span><span class="string">"Result"</span><span>); </span> </li> <li class="alt"> <span class="comment">// Add the plots to the graph </span><span> </span> </li> <li> <span class="vars">$graph</span><span>->Add(</span><span class="vars">$bplot</span><span>); </span> </li> <li class="alt"> <span class="vars">$graph</span><span>->title->Set(</span><span class="string">"Adding a line plot to a bar graph v1"</span><span>); </span> </li> <li> <span class="vars">$graph</span><span>->xaxis->title->Set(</span><span class="string">"X-title"</span><span>); </span> </li> <li class="alt"> <span class="vars">$graph</span><span>->yaxis->title->Set(</span><span class="string">"Y-title"</span><span>); </span> </li> <li> <span class="vars">$graph</span><span>->title->SetFont(FF_FONT1,FS_BOLD); </span> </li> <li class="alt"> <span class="vars">$graph</span><span>->yaxis->title->SetFont(FF_FONT1,FS_BOLD); </span> </li> <li> <span class="vars">$graph</span><span>->xaxis->title->SetFont(FF_FONT1,FS_BOLD); </span> </li> <li class="alt"> <span class="comment">//$graph->xaxis->SetTickLabels($datax); </span><span> </span> </li> <li> <span class="comment">//$graph->xaxis->SetTextTickInterval(2); </span><span> </span> </li> <li class="alt"> <span class="comment">// Display the graph </span><span> </span> </li> <li> <span class="vars">$graph</span><span>->Stroke(); </span> </li> <li class="alt"><span>?> </span></li> </ol>
4. Refresh the page to see the results