在PHP的JpGraph库中,实现X/Y轴数据自动映射的核心是通过LinePlot类完成的,具体步骤如下:
1. 基础数据映射
// 创建折线图对象时直接传入Y轴数据
$lineplot = new LinePlot($yData); // $yData为一维数组:ml-citation{ref="1,4" data="citationList"}此时X轴默认为[0,1,2,...]的索引序列,自动与Y值配对。
2. 自定义X轴标签
若需指定X轴标签(如月份):
$xLabels = ["Jan", "Feb", "Mar"]; // 文本标签
$graph->xaxis->SetTickLabels($xLabels); // 绑定到X轴:ml-citation{ref="1,4" data="citationList"}此时标签会按顺序与Y值自动对齐。
3. 显式指定X/Y数据
通过SetXData()和SetYData()方法强制配对:
$lineplot->SetXData($xValues); // 数值型X坐标
$lineplot->SetYData($yValues); // 必须与X数组等长:ml-citation{ref="1,5" data="citationList"}4. 完整示例代码
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_line.php');
$yData = [10, 15, 8]; // Y轴数据
$xLabels = ["Q1", "Q2", "Q3"]; // X轴标签
$graph = new Graph(400, 300);
$graph->SetScale("textlin"); // 文本型X轴:ml-citation{ref="1,5" data="citationList"}
$graph->xaxis->SetTickLabels($xLabels);
$lineplot = new LinePlot($yData);
$graph->Add($lineplot);
$graph->Stroke();关键点说明
自动对齐规则
未显式指定X数据时,默认使用
[0,1,2,...]作为X坐标14通过
SetTickLabels()设置的标签会按索引匹配数据点15错误处理
X/Y数组长度不一致时会报错
文本标签数量需与数据点数量匹配4
高级控制
使用
SetPos()调整X轴位置1通过
mark->SetType()添加数据点标记