Setting Pie Chart Sector Colors in PHP
Contents
[
Hide
]
Aspose.Slides - Setting Pie Chart Sector Colors
To Set Pie Chart Sector Colors using Aspose.Slides Java for PHP, simply invoke SetPieChartColors module. Here you can see example code.
PHPCode
$pres = new Presentation();
\# Access first slide
$sld = $pres->getSlides()->get_Item(0);
\# Add chart with default data
$chart_type = new ChartType();
$chart = $sld->getShapes()->addChart($chart_type->Pie, 100, 100, 400, 400);
$nullableBool=new NullableBool();
\# Setting chart Title
$chart->getChartTitle()->addTextFrameForOverriding("Sample Title");
$chart->getChartTitle()->getTextFrameForOverriding()->getTextFrameFormat()->setCenterText($nullableBool->True);
$chart->getChartTitle()->setHeight(20);
$chart->hasTitle(true);
\# Set first series to Show Values
$chart->getChartData()->getSeries()->get_Item(0)->getLabels()->getDefaultDataLabelFormat()->setShowValue(true);
\# Setting the index of chart data sheet
$defaultWorksheetIndex = 0;
\# Getting the chart data worksheet
$fact = $chart->getChartData()->getChartDataWorkbook();
\# Delete default generated series and categories
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
\# Adding new categories
$chart->getChartData()->getCategories()->add($fact->getCell(0, 1, 0, "First Qtr"));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 2, 0, "2nd Qtr"));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 3, 0, "3rd Qtr"));
\# Adding new series
$series = $chart->getChartData()->getSeries()->add($fact->getCell(0, 0, 1, "Series 1"), $chart->getType());
\# Now populating series data
$series->getDataPoints()->addDataPointForPieSeries($fact->getCell($defaultWorksheetIndex, 1, 1, 20));
$series->getDataPoints()->addDataPointForPieSeries($fact->getCell($defaultWorksheetIndex, 2, 1, 50));
$series->getDataPoints()->addDataPointForPieSeries($fact->getCell($defaultWorksheetIndex, 3, 1, 30));
\# Not working in new version
\# Adding new points and setting sector color
$chart->getChartData()->getSeriesGroups()->get_Item(0)->isColorVaried(true);
$fill_type = new FillType();
$line_style = new LineStyle();
$color = new Color();
$line_dash_style = new LineDashStyle();
$preset_color = new PresetColor();
$point = $series->getDataPoints()->get_Item(0);
$point->getFormat()->getFill()->setFillType($fill_type->Solid);
$point->getFormat()->getFill()->getSolidFillColor()->setColor($color->CYAN);
\# Setting Sector border
$point->getFormat()->getLine()->getFillFormat()->setFillType($fill_type->Solid);
$point->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor($color->GRAY);
$point->getFormat()->getLine()->setWidth(3.0);
$point->getFormat()->getLine()->setStyle($line_style->ThinThick);
$point->getFormat()->getLine()->setDashStyle($line_dash_style->DashDot);
$point1 = $series->getDataPoints()->get_Item(1);
$point1->getFormat()->getFill()->setFillType($fill_type->Solid);
$point1->getFormat()->getFill()->getSolidFillColor()->setColor(new Color($preset_color->Brown));
\# Setting Sector border
$point1->getFormat()->getLine()->getFillFormat()->setFillType($fill_type->Solid);
$point1->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor($color->BLUE);
$point1->getFormat()->getLine()->setWidth(3.0);
$point1->getFormat()->getLine()->setStyle($line_style->Single);
$point1->getFormat()->getLine()->setDashStyle($line_dash_style->LargeDashDot);
$point2 = $series->getDataPoints()->get_Item(2);
$point2->getFormat()->getFill()->setFillType($fill_type->Solid);
$point2->getFormat()->getFill()->getSolidFillColor()->setColor(new Color($preset_color->Coral));
\# Setting Sector border
$point2->getFormat()->getLine()->getFillFormat()->setFillType($fill_type->Solid);
$point2->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor($color->RED);
$point2->getFormat()->getLine()->setWidth(2.0);
$point2->getFormat()->getLine()->setStyle($line_style->ThinThin);
$point2->getFormat()->getLine()->setDashStyle($line_dash_style->LargeDashDotDot);
\# Create custom labels for each of categories for new series
$lbl1 = $series->getDataPoints()->get_Item(0)->getLabel();
$lbl1->getDataLabelFormat()->setShowValue(true);
$lbl2 = $series->getDataPoints()->get_Item(1)->getLabel();
$lbl2->getDataLabelFormat()->setShowValue (true);
$lbl2->getDataLabelFormat()->setShowLegendKey(true);
$lbl2->getDataLabelFormat()->setShowPercentage(true);
$lbl3 = $series->getDataPoints()->get_Item(2)->getLabel();
$lbl3->getDataLabelFormat()->setShowSeriesName(true);
$lbl3->getDataLabelFormat()->setShowPercentage (true);
\# Showing Leader Lines for Chart
$series->getLabels()->getDefaultDataLabelFormat()->setShowLeaderLines(true);
\# Setting Rotation Angle for Pie Chart Sectors
$chart->getChartData()->getSeriesGroups()->get_Item(0)->setFirstSliceAngle(180);
\# Save presentation with chart
$save_format = new SaveFormat();
$pres->save($dataDir . "AsposePieChart.pptx", $save_format->Pptx);
print "Set pie chart sector colors, please check the output file.".PHP_EOL;
Download Running Code
Download Setting Pie Chart Sector Colors (Aspose.Slides) from any of the below mentioned social coding sites: