学习php jpgraph教程

来源:互联网 发布:阿里云 虚拟主机 使用 编辑:程序博客网 时间:2024/04/30 03:55

首先包含进来jpgraph的类库:

include ("../jpgraph.php");

include("../jpgraph_bar.php");

include ("../jpgraph_line.php");

设置显示的数据数组;

调用类库

//设置图像的大小

$graph = new Graph(400,200,"auto");

$graph->SetScale("textlin");

//设置图形的边距

$graph->img->SetMargin(40,180,40,40);    

//设置图形的背景图片,填充方式有:BGIMG_FILLPLOT, BGIMG_FILLFRAME, BGIMG_COPY

$graph->SetBackgroundImage("abc.jpg",BGIMG_FILLPLOT);

$graph->img->SetAngle(45);  //设置图形在图像中的角度

//设置背景图片的对比度,must be between -1 <= x <= 1, (0,0)=original image

$graph->AdjBackgroundImage(0,0);

//设置投影;

//$graph->SetShadow();

//设置标题

$graph->title->Set("test image");

//设置标题字体样式

$graph->title->SetFont(FF_FONT1,FS_BOLD);

//设置标题的边距

$graph->title->SetMargin(3);

//设置图列的位置

$graph->legend->Pos(0.05,0.5,"right","center");

//设置图列的投影,颜色

$graph->legend->SetShadow('darkgray@0.1');

$graph->legend->SetFillColor('lightblue@0.3');

//设置x轴的标记

$graph->xaxis->SetTickLabels($label_x);

//设置X轴的显示值的角度;

$graph->xaxis->SetLabelAngle(30);

//设置x轴标题和字体颜色

$graph->xaxis->title->Set('Year 2006');

$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

$graph->xaxis->title->SetColor('white');

//设置x轴的字体和颜色

$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);

$graph->xaxis->SetColor('yellow');

//设置y轴的字体和颜色

$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);

$graph->yaxis->SetColor('yellow');

//设置是否显示格子。默认为显示;

//$graph->ygrid->Show(false);

//设置格子的颜色和粗细。值越小,格子越粗。

$graph->ygrid->SetColor('yellow@0.5');

//设置y轴更优美一些

$graph->yaxis->scale->SetGrace(20); 

 

//设置图列的数据

$bplot1 = new BarPlot($datay1);

$bplot2 = new BarPlot($datay2);

//设置图列的填充颜色

$bplot1->SetFillColor('orange@0.4');

$bplot2->SetFillColor('brown@0.4');

设置值的格式

$bplot1->value->SetFormat('%d');

//设置图列标签

$bplot1->SetLegend('Label 1');

$bplot2->SetLegend('Label 2');

//设置图列在图中的阴影

$bplot1->SetShadow('black@0.4');

$bplot2->SetShadow('black@0.4');

//生成图列

$gbarplot = new GroupBarPlot(array($bplot1,$bplot2));

$gbarplot->SetWidth(0.9);

$graph->Add($gbarplot);

//生成图形

$graph->Stroke();

//上面所说的时在生成柱形图,当生成线性图时用下面的方法

$p1 = new LinePlot($datay);

$p1->mark->SetType(MARK_FILLEDCIRCLE);

$p1->mark->SetFillColor("red");

$p1->mark->SetWidth(4);

$p1->SetColor("blue");

$p1->SetCenter();

$p1->SetLegend("Triumph Tiger -98");

$graph->Add($p1);

 

$p2 = new LinePlot($data2y);

$p2->mark->SetType(MARK_STAR);

$p2->mark->SetFillColor("red");

$p2->mark->SetWidth(4);

$p2->SetColor("red");

$p2->SetCenter();

$p2->SetLegend("New tiger -99");

$graph->Add($p2);

 

// Style can also be specified as SetStyle([1|2|3|4]) or
// SetStyle("solid"|"dotted"|"dashed"|"lobgdashed")
$lineplot->SetStyle("dashed");//设置线的样式

 

$graph->yaxis->scale->SetGrace(20);  //设置y轴更优美一些

2.柱形图和饼状图举例

if($tag == 1)

{

$graph = new Graph(600,400,"auto");

$graph->SetScale("textlin");

$graph->setMarginColor('lightblue');

$graph->SetShadow();

$graph->setMargin(30,100,30,60);

//设置标题;

$graph->title->set("文章分类汇总");

$graph->title->SetMargin(3);

$graph->title->setfont(FF_SIMSUN,FS_BOLD);

$graph->title->setcolor('black@0.5');

 

$graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD);

$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD);

$graph->xaxis->SetFont(FF_SIMSUN,FS_NORMAL);

$graph->xaxis->SetColor('darkblue','black');

$graph->xaxis->SetTickLabels($name);

$graph->xaxis->SetLabelAngle(30);

$bplot  =  new  BarPlot($article_num);

$bplot->SetFillColor("orange");

$bplot->value->SetFormat('%d');

$bplot->SetShadow('darkgray');

$bplot->value->show();

$graph->legend->SetFont(FF_SIMSUN,FS_BOLD);

$bplot->SetLegend("文章数");

$graph->Add($bplot);

$graph->Stroke();

}

else

{

$graph1 = new PieGraph(600,400,"auto");

$graph1->SetScale("textlin");

$graph1->SetShadow();

$graph1->title->setFont(FF_SIMSUN,FS_BOLD);

$graph1->title->set("用户文章饼形图");

$graph1->setMargin(30,100,30,60);

$p1 = new pieplot3d($article_num);

$p1->setAngle(80);

$p1->setsize(0.5);

$p1->setShadow();

$p1->ExplodeSlice(2);

$p1->SetCenter(0.4);

$graph1->legend->SetFont(FF_SIMSUN,FS_NORMAL);

$graph1->legend->setshadow();

$p1->SetLegends($name);

$graph1->Add($p1);

$graph1->Stroke();

}

?>

 

//生成本地图片

$graph->Stroke(“路径/文件名.png”); 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wydin/archive/2007/04/02/1549471.aspx

 

 



 


 

下面是自己写的一个例子

<?php
require_once("../lib/jpgraph-2.3.4/src/jpgraph.php");
require_once("../lib/jpgraph-2.3.4/src/jpgraph_line.php");
require_once("../lib/jpgraph-2.3.4/src/jpgraph_date.php");

// Create a data set in range (50,70) and X-positions
$dataPoints=250;   //图表中点的个数【也就是记录的总数】

$totalSeconds=0;   //要查询总秒数

$legendString="今天";  //legend  提示信息

//now
$dateArray=getdate();
$year=$dateArray['year'];
$month=$dateArray['mon'];
$day=$dateArray['mday'];
$hour=0;
$minute=0;
$second=0;

$selectTime=trim($_GET['selectTime']);
$from=trim($_GET['from']);
$to=trim($_GET['to']);

if($selectTime=="selectday")
{
 $legendString=$from." ".$to;  //legend  提示信息
 $tempArray=explode("/",$from);  //   月/日/年
 $tempYear=$tempArray[2];
 $tempMonth=$tempArray[0];
 $tempDay=$tempArray[1];
 $tempHour=0;
 $tempMinute=0;
 $tempSecond=0;
 $start = mktime($tempHour,$tempMinute,$tempSecond,$tempMonth,$tempDay,$tempYear);
 
 $tempArray=explode("/",$to);  //   月/日/年
 $tempYear=$tempArray[2];
 $tempMonth=$tempArray[0];
 $tempDay=$tempArray[1];
 $tempHour=0;
 $tempMinute=0;
 $tempSecond=0;
 $end = mktime($tempHour,$tempMinute,$tempSecond,$tempMonth,$tempDay,$tempYear); 
 $totalSeconds=$end-$start; 
}
else if($selectTime=="yesterday")
{
 $legendString="昨天";    //legend  提示信息
 $totalSeconds=24*60*60;
 $start = mktime($hour,$minute,$second,$month,$day,$year);
 $start = $start - $totalSeconds;
 $end = $start+$totalSeconds; 
}
else
{
 $legendString="今天";    //legend  提示信息
 $totalSeconds=24*60*60;
 $start = mktime($hour,$minute,$second,$month,$day,$year);
 $end = $start+$totalSeconds;
}

//sql  处理部分
$data = array();
$xdata = array();
for( $i=0; $i < $dataPoints; ++$i ) {
    $data[$i] = rand(0,100);
    $xdata[$i] = $start + $totalSeconds*($i/$dataPoints);
}


// Create the new graph
$graph = new Graph(730,330);

// Slightly larger than normal margins at the bottom to have room for
// the x-axis labels
$graph->SetMargin(40,40,30,110);

// Fix the Y-scale to go between [0,100] and use date for the x-axis
$graph->SetScale('datlin',0,100,$start,$end);

$graph->title->SetFont(FF_SIMSUN,FS_NORMAL);
$graph->title->Set("性能统计图");

// Set the angle for the labels to 90 degrees
$graph->xaxis->SetLabelAngle(90);

$line = new LinePlot($data,$xdata);

$graph->legend->SetFont(FF_SIMSUN,FS_NORMAL);
$line->SetLegend($legendString);

$line->SetFillColor('lightred@0.5');
$graph->Add($line);
$graph->Stroke();
?>

原创粉丝点击