以图形方式表示php

时间:2016-03-26 14:02:40

标签: php graph charts

我有2个阵列:一个存储动作的开头,第二个存储持续时间。开头是时间戳(从最近的降序开始),持续时间以秒为单位,例如用户登录的开头及其持续时间。有点像:

$ beginnings = array(1458945920,1458945657,1458940547,1458940444,1458940038,1458939783,1458939655); $ durations = array(154,253,4973,33,202,242,115);

我希望用图表代表这两个数组。

在x轴的标签上,我希望显示开头的值,彼此水平分开,与一个开头和下一个之间的差异成比例。在y轴上,在与开头的对应关系中,我希望显示一个与持续时间值一样高的条形。我看了几个图表库作为pchart或phpchart,但在示例中我看不到类似的东西。我对图表很陌生,所以我要求提出建议。

1 个答案:

答案 0 :(得分:0)

Time-Duration Bar Chart

使用下面的代码,使用名为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”是包含上述图表代码的文件。