Creating a Chart from Scratch in Python
Contents
[
Hide
]
Aspose.Slides - Creating a Chart from Scratch
To Create a Chart from Scratch using Aspose.Slides Java for Python. Here you can see example code.
Python Code
def create_normal_chart(self):
\# Instantiate Presentation class that represents the presentation file
pres = self.Presentation()
\# Access first slide
sld = pres.getSlides().get_Item(0)
\# Add chart with default data
chartTye = self.ChartType
chart = sld.getShapes().addChart(chartTye.ClusteredColumn, 0, 0, 500, 500)
\# Setting chart Title
\# chart.ChartTitle.TextFrameForOverriding.Text = "Sample Title"
chart.getChartTitle().addTextFrameForOverriding("Sample Title")
nullableBool = self.NullableBool()
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()
s = chart.getChartData().getSeries().size()
s = chart.getChartData().getCategories().size()
\# Adding self.series
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType())
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType())
\# Adding self.categories
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"))
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"))
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"))
\# Take first chart series
series = chart.getChartData().getSeries().get_Item(0)
\# Now populating series data
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20))
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50))
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30))
\# Setting fill color for series
fillType=self.FillType()
color=self.Color()
series.getFormat().getFill().setFillType(fillType.Solid)
series.getFormat().getFill().getSolidFillColor().setColor(color.RED)
\# Take second chart series
series = chart.getChartData().getSeries().get_Item(1)
\# Now populating series data
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30))
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10))
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60))
\# Setting fill color for series
fillType=self.FillType()
color=self.Color()
series.getFormat().getFill().setFillType(fillType.Solid)
series.getFormat().getFill().getSolidFillColor().setColor(color.GREEN)
\# create custom labels for each of categories for self.series
\# first label will be show Category name
lbl = series.getDataPoints().get_Item(0).getLabel()
lbl.getDataLabelFormat().setShowCategoryName(True)
lbl = series.getDataPoints().get_Item(1).getLabel()
lbl.getDataLabelFormat().setShowSeriesName(True)
\# Show value for third label
lbl = series.getDataPoints().get_Item(2).getLabel()
lbl.getDataLabelFormat().setShowValue(True)
lbl.getDataLabelFormat().setShowSeriesName(True)
lbl.getDataLabelFormat().setSeparator ("/")
\# Save presentation with chart
saveFormat = self.SaveFormat
pres.save(self.dataDir + "NormalChart.pptx", saveFormat.Pptx)
print "Created normal chart, please check the output file."
def create_scatter_chart(self):
pres = self.Presentation
slide = pres.getSlides().get_Item(0)
chartType=self.ChartType()
\# Creating the default chart
chart = slide.getShapes().addChart(chartType.ScatterWithSmoothLines, 0, 0, 400, 400)
\# Getting the default chart data worksheet index
defaultWorksheetIndex = 0
\# Getting the chart data worksheet
fact = chart.getChartData().getChartDataWorkbook()
\# Delete demo series
chart.getChartData().getSeries().clear()
\# Add self.series
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.getType())
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 3, "Series 2"), chart.getType())
\# Take first chart series
series = chart.getChartData().getSeries().get_Item(0)
\# Add self.point (1:3) there.
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 1), fact.getCell(defaultWorksheetIndex, 2, 2, 3))
\# Add self.point (2:10)
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 2), fact.getCell(defaultWorksheetIndex, 3, 2, 10))
\# Edit the type of series
chartType=self.ChartType()
series.setType(chartType.ScatterWithStraightLinesAndMarkers)
\# Changing the chart series marker
markerStyleType=self.MarkerStyleType()
series.getMarker().setSize(10)
series.getMarker().setSymbol(markerStyleType.Star)
\# Take second chart series
series = chart.getChartData().getSeries().get_Item(1)
\# Add self.point (5:2) there.
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 3, 5), fact.getCell(defaultWorksheetIndex, 2, 4, 2))
\# Add self.point (3:1)
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 3, 3), fact.getCell(defaultWorksheetIndex, 3, 4, 1))
\# Add self.point (2:2)
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 4, 3, 2), fact.getCell(defaultWorksheetIndex, 4, 4, 2))
\# Add self.point (5:1)
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 5, 3, 5), fact.getCell(defaultWorksheetIndex, 5, 4, 1))
\# Changing the chart series marker
markerStyleType1=self.MarkerStyleType()
series.getMarker().setSize(10)
series.getMarker().setSymbol(markerStyleType1.Circle)
save_format = self.SaveFormat
pres.save(self.dataDir + "AsposeScatterChart.pptx", save_format.Pptx)
print "Created scatter chart, please check the output file."
Download Running Code
Download running code from any of the below mentioned social coding sites: