Please enable java script to visit.
NOTEBOOK
HOMEPHP / MySQLJS / HTMLWXappPythonC++Blender其他
PHP jpgraph 生成曲线图 - NOTEBOOK
PHP jpgraph 生成曲线图
PHP / MySQL
Posted on 2024-04-19
摘要 : PHP jpgraph 生成曲线图,自定义函数。
实时生成曲线图,也可以保存到本地文件,附带下载网址:https://jpgraph.net/download/。
还可以生成二维码、随机验证码图片。


// $data = array(100,200,90,130,210,110);
// $xlabel = array('A1','A4','C1','EA','NW','S1'); //x轴刻度
// 输出曲线图
function make_stock_line($data,$xlabel=array(),$width=200,$height=130,$title=null,$subtitle=null,$subsubtitle=null,$filepath=null) {

require_once(__DIR__.'/jpgraph-4.3.4/src/jpgraph.php');
require_once(__DIR__.'/jpgraph-4.3.4/src/jpgraph_line.php');

// 图像尺寸
// $width=200;
// $height=130;
$graph = new Graph($width,$height,'auto'); // auto:表示生成的缓存文件名是该文件的文件名+扩展名(.jpg .png .gif ……)
$graph->SetScale("textlin"); // intlin


// 清除一切预设
$graph->clearTheme(); // 设置主题为null,否则value->Show(); 无效

// 图片投影
// $graph->SetShadow();
// 去掉曲线图边框
$graph->setBox(false);

// 周围空白 空余四角边距(左右上下)
$graph->SetMargin(18,18,5,5); // 边缘大才能显示标题 刻度
// 周围空白颜色
$graph->SetMarginColor('white');
// 边框
$graph->SetFrame(false); // $graph->SetFrame(true,'blue',3);




// 大标题
if($title){
$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
$graph->title->Set($title);
}
// 小标题
if($subtitle){
$graph->subtitle->SetFont(FF_ARIAL,FS_BOLD,10);
$graph->subtitle->Set($subtitle);
$graph->subtitle->SetColor('darkred'); // 颜色
}
// 小小标题
if($subsubtitle){
$graph->subsubtitle->SetFont(FF_ARIAL,FS_ITALIC,9);
$graph->subsubtitle->Set($subsubtitle);
}
// 背景横向颜色
// $graph->ygrid->Show(false); //设置是否显示格子。默认为显示;
// $graph->ygrid->SetFill(true,'#EFEFEF@0.5','#FFFFFF@0.5');
$graph->ygrid->SetColor('#ddd@0.5');




// 隐藏x轴上的刻度线
$graph->xaxis->HideTicks(true,true);
$graph->yaxis->HideTicks(true,true);
// 隐藏x轴上的轴线
$graph->xaxis->HideLine(true);
$graph->yaxis->HideLine(true);
// 隐藏x轴上的刻度
$graph->xaxis->HideLabels(true);
$graph->yaxis->HideLabels(true);
$graph->yaxis->HideZeroLabel(true); // 隐藏 0
$graph->yaxis->scale->SetGrace(20); // 设置y轴更优美一些


// X 坐标的刻度,如果有则显示刻度
if($xlabel){
$graph->xaxis->HideLabels(false);
$graph->xaxis->SetTickLabels($xlabel);
}



// //x轴标题
// $graph->xaxis->title->Set('Operator');
// //y轴标题,竖向
// $graph->yaxis->title->Set('# of calls');
// //xy轴 字体
// $graph->yaxis->title->SetFont( FF_FONT1 , FS_BOLD );
// $graph->xaxis->title->SetFont( FF_FONT1 , FS_BOLD );
// // 颜色
// $graph->yaxis->SetColor('blue');
// 坐标从0开始
// $graph->yscale->SetAutoMin(0);


// 创建曲线
$lineplot=new LinePlot($data);
$lineplot->SetColor("#bbb"); // 曲线颜色
$lineplot->SetWeight( 2 ); // //曲线宽度
$lineplot->SetStepStyle(false); // 两个点之间的连线样式,true表示台阶折线型,false表示直线连接型

// 拐点类型
$lineplot->mark->SetType(MARK_FILLEDCIRCLE); // 拐点类型 MARK_UTRIANGLE//MARK_FILLEDCIRCLE //MARK_DIAMOND //MARK_FILLEDCIRCLE //MARK_CIRCLE
$lineplot->mark->SetColor('#fff'); // 描边颜色
$lineplot->mark->SetFillColor('#666'); // 填充颜色
$lineplot->mark->SetWidth(4);

// 显示值
$lineplot->value->Show();
// 数值显示为小数点后2位
function valueformat($aLabel) {
return number_format($aLabel, 2, ',', ' ');
}
$lineplot->value->SetformatCallback('valueformat'); // 设置数据显示格式
$lineplot->value->SetColor("#222"); // 数值的颜色
$lineplot->value->SetFont(FF_ARIAL,FS_BOLD,10); // 字体大小 //FS_NORMAL FS_BOLD FS_ITALIC ,FS_BOLDITALIC



$graph->Add($lineplot); // 将曲线放置到图像上

if($filepath){
// 或者:保存画布
$graph->Stroke($filepath); // $graph->Stroke('./test.png');
}else{
// 输出图像
$graph->Stroke();
}

}


❱ 官方下载

jpgraph.net