
<?php
# PHPlot Example: Bar chart with bar color depending on value
require_once 'phplot.php';
# Callback for picking a data color.
# PHPlot will call this every time it needs a data color.
# This returns a color index which depends on the data value.
# Color 0 is for values >= 80%, 1 is for >= 60%, 2 is for < 60%.
# The data_array must have 'text-data' type.
function pickcolor($img, $data_array, $row, $col)
{
$d = $data_array[$row][$col+1]; // col+1 skips over the row's label
if ($d >= 80) return 0;
if ($d >= 60) return 1;
return 2;
}
# The data array has our monthly performance as a percentage.
$data = array(
array('Jan', 95), array('Feb', 75), array('Mar', 83),
array('Apr', 66), array('May', 90), array('Jun', 80),
array('Jul', 70), array('Aug', 50), array('Sep', 60),
array('Oct', 70), array('Nov', 80), array('Dec', 45),
);
$plot = new PHPlot(800, 600);
$plot->SetImageBorderType('plain'); // Improves presentation in the manual
$plot->SetPlotType('bars');
$plot->SetDataValues($data);
$plot->SetDataType('text-data');
$plot->SetTitle('Monthly Performance Rating');
# Turn off X Tick labels which have no meaning here.
$plot->SetXTickPos('none');
# Force the Y axis to be exactly 0:100
$plot->SetPlotAreaWorld(NULL, 0, NULL, 100);
# Establish the function 'pickcolor' as a data color selection callback.
# Set the $data array as the pass-through argument, so the function has
# access to the data values without relying on global variables.
$plot->SetCallback('data_color', 'pickcolor', $data);
# The three colors are meaningful to the data color callback.
$plot->SetDataColors(array('green', 'yellow', 'red'));
# The legend will explain the use of the 3 colors.
$plot->SetLegend(array('Exceeded expectations', 'Met expectations',
'Failed to meet expectations'));
$plot->DrawGraph();
本文演示如何利用PHP脚本和PHPlot库生成动态条形图,每根条形的颜色根据其数值动态调整,实现数据可视化。通过自定义的数据颜色选择回调函数,赋予不同数据范围特定的颜色,如绿色代表超过80%,黄色代表60%-80%,红色代表低于60%。示例中展示了一个包含每月绩效数据的条形图,直观地展示了绩效评级。
1548

被折叠的 条评论
为什么被折叠?



