为了在php页面中绘制饼图,我使用的是phplot.php中的函数。 但是我必须为特定的字段显示特定的颜色。所以我在数组中给出了数据和相应的颜色。
这是我的代码:
$pieColors = array('Ready' => 'Green', 'Rebooting' => 'Maroon', 'Running' => 'Blue' );
$data = array(0=>array(status=>'Ready',count=>25),1=>array(status=>'Rebooting',count=>25),2=>array(status=>'Running',count=>65));
为了将匹配的颜色传递给setdataColors(),我遍历$data
和$pieColors
$count=count($data);
for($i=0;$i<=$count;$i++){
foreach ( $pieColors as $k => $v ){
if($data[$i]['status'] == $k){
$overrideColors = $v;
}}}
//Drawing pie chart
$plot = new PHPlot_truecolor(500, 300);
$plot->SetImageBorderType('none');
$plot->SetDataType('text-data-single');
$plot->SetDataValues($data);
$plot->SetPlotType('pie');
$plot->SetTitle($pool);
//setting colors
$plot->SetGridColor('white');
$plot->SetTextColor('white');
$plot->SetPieLabelColor('white');
$plot->SetShading(0);
$plot->SetLabelScalePosition(0.2);
#set legend
foreach ($data as $row)
$plot->SetLegend($row['status']);
$plot->SetLegendPixels(380, 5);
$plot->SetDataColors($overrideColos);
# Make the background transparent against the page
$plot->SetBackgroundColor('#555555');
$plot->SetTransparentColor('#555555');
$plot->SetPrintImage(False);
$plot->DrawGraph();
$chart = $plot->EncodeImage();
打印时显示错误Invalid color
。
我的代码有什么问题。?
任何人请看一下并建议解决方案。
答案 0 :(得分:0)
我们传递给setDataColors()的颜色应该与phplot.php.Case敏感的RGB数组的颜色完全匹配,颜色应该在那里。
在我的情况下&#39; Green&#39;在RGB数组中是绿色&#39;。这就是为什么它显示错误,如“无效的颜色”