我有2个阵列:一个存储动作的开头,第二个存储持续时间。开头是时间戳(从最近的降序开始),持续时间以秒为单位,例如用户登录的开头及其持续时间。有点像:
$ beginnings = array(1458945920,1458945657,1458940547,1458940444,1458940038,1458939783,1458939655); $ durations = array(154,253,4973,33,202,242,115);
我希望用图表代表这两个数组。
在x轴的标签上,我希望显示开头的值,彼此水平分开,与一个开头和下一个之间的差异成比例。在y轴上,在与开头的对应关系中,我希望显示一个与持续时间值一样高的条形。我看了几个图表库作为pchart或phpchart,但在示例中我看不到类似的东西。我对图表很陌生,所以我要求提出建议。
答案 0 :(得分:0)
使用下面的代码,使用名为ChartDirector的商业图表库创建附图。
<?php
require_once("../lib/phpchartdir.php");
$beginnings = array(1458945920,1458945657,1458940547,1458940444,1458940038,1458939783,1458939655);
$durations = array(154,253,4973,33,202,242,115);
# Chart Image and Plotting Region
$c = new XYChart(800, 360);
$c->setPlotArea(70, 20, 700, 300, Transparent, -1, Transparent, 0xcccccc);
# X-Axis configuration
$c->xAxis->setColors(0x888888);
$c->xAxis->setTickDensity(75);
$c->xAxis->setMargin(10, 10);
$c->xAxis->setRounding(true, true);
$c->xAxis->setLabelStyle("arial.ttf", 10);
# Y-Axis configuration
$c->yAxis->setColors(Transparent);
$c->yAxis->setTickDensity(40);
$c->yAxis->setLabelStyle("arial.ttf", 10);
$c->yAxis->setTitle("Duration", "arialbd.ttf", 14, 0x555555);
# Bar Layer
$barLayerObj = $c->addBarLayer($durations, 0x6699bb);
$barLayerObj->setBorderColor(Transparent);
$barLayerObj->setXData(array_map(chartTime2, $beginnings));
$barLayerObj->setBarWidth(10);
# Output the chart
header("Content-type: image/png");
print($c->makeChart2(PNG));
?>
您可以将图表插入网页,就像普通图像一样:
<img src="create_chart.php">
其中“create_chart.php”是包含上述图表代码的文件。