Manipulate Position Size and Designer Chart

Chart Position and Size

Sometimes, you want to change the position or size of the new or existing chart inside the worksheet. Aspose.Cells for Python via .NET provides the Chart.chart_object property to achieve this. You can use its sub-properties to re-size the chart with new height and width or re-position it with new X and Y coordinates.

Controlling Chart Position and Size

To change the chart’s position (X, Y coordinates) or size (height, width), use these properties:

  1. Chart.chart_object.x
  2. Chart.chart_object.y
  3. Chart.chart_object.height
  4. Chart.chart_object.width

The following example explains the usage of the above APIs, it loads the existing workbook which contains a chart in its first worksheet. Then it re-sizes and re-positions the chart using Aspose.Cells for Python via .NET.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
workbook = Workbook(dataDir + "chart.xls")
worksheet = workbook.worksheets[1]
# Load the chart from source worksheet
chart = worksheet.charts[0]
# Resize the chart
chart.chart_object.width = 400
chart.chart_object.height = 300
# Reposition the chart
chart.chart_object.x = 250
chart.chart_object.y = 150
# Output the file
workbook.save(dataDir + "chart.out.xls")

Manipulating Designer Charts

There are times when you need to manipulate or modify charts in designer template files. Aspose.Cells for Python via .NET fully supports manipulating designer chart contents and elements. The data, chart contents, background image, and formattings can be preserved with accuracy.

Manipulating Designer Charts in Template Files

To manipulate designer charts in template files, use the chart related API. For example, you may use the Worksheet.Charts property to get the existing charts collection in the template file.

Creating a Chart

The following example shows how to create a pyramid chart. We will manipulate this chart later on.

from aspose.cells import Workbook
from aspose.cells.charts import ChartType
from os import os, path
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create directory if it is not already present.
IsExists = path.isdir(dataDir)
if notIsExists:
os.makedirs(dataDir)
# Instantiating a Workbook object
workbook = Workbook()
# Adding a new worksheet to the Excel object
sheetIndex = workbook.worksheets.add()
# Obtaining the reference of the newly added worksheet by passing its sheet index
worksheet = workbook.worksheets[sheetIndex]
# Adding sample values to cells
worksheet.cells.get("A1").put_value(50)
worksheet.cells.get("A2").put_value(100)
worksheet.cells.get("A3").put_value(150)
worksheet.cells.get("B1").put_value(4)
worksheet.cells.get("B2").put_value(20)
worksheet.cells.get("B3").put_value(50)
# Adding a chart to the worksheet
chartIndex = worksheet.charts.add(ChartType.PYRAMID, 5, 0, 15, 5)
# Accessing the instance of the newly added chart
chart = worksheet.charts[chartIndex]
# Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3"
chart.n_series.add("A1:B3", True)
# Saving the Excel file
workbook.save(dataDir + "book1.out.xls")

Manipulating the Chart

The following example shows how to manipulate the existing chart. In this example, we modify the chart created above. In the generated output, note that the date label of one data point has been set to ‘United Kingdom, 30K’.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Open the existing file.
workbook = Workbook(dataDir + "piechart.xls")
# Get the designer chart in the second sheet.
sheet = workbook.worksheets[1]
chart = sheet.charts[0]
# Get the data labels in the data series of the third data point.
datalabels = chart.n_series[0].points[2].data_labels
# Change the text of the label.
datalabels.text = "Unided Kingdom, 400K "
# Save the excel file.
workbook.save(dataDir + "output.xls")

Manipulating a Line Chart in the Designer Template

In this example, we will manipulate a line chart. We will add some data series to the existing chart and change their line colors.

from aspose.cells import Workbook
from aspose.pydrawing import Color
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Open the existing file.
workbook = Workbook(dataDir + "Book1.xlsx")
# Get the designer chart in the first worksheet.
chart = workbook.worksheets[0].charts[0]
# Add the third data series to it.
chart.n_series.add("{60, 80, 10}", True)
# Add another data series (fourth) to it.
chart.n_series.add("{0.3, 0.7, 1.2}", True)
# Plot the fourth data series on the second axis.
chart.n_series[3].plot_on_second_axis = True
# Change the Border color of the second data series.
chart.n_series[1].border.color = Color.green
# Change the Border color of the third data series.
chart.n_series[2].border.color = Color.red
# Make the second value axis visible.
chart.second_value_axis.is_visible = True
# Save the excel file.
workbook.save(dataDir + "output.xls")