phplot setDataColors()函数不从数组

时间:2015-09-11 11:56:38

标签: php charts

为了在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

我的代码有什么问题。?

任何人请看一下并建议解决方案。

1 个答案:

答案 0 :(得分:0)

我们传递给setDataColors()的颜色应该与phplot.php.Case敏感的RGB数组的颜色完全匹配,颜色应该在那里。

在我的情况下&#39; Green&#39;在RGB数组中是绿色&#39;。这就是为什么它显示错误,如“无效的颜色”