Настройка внешнего вида графика

Настройка внешнего вида диаграммы

В разделе Как создать диаграмму мы кратко познакомили с типами диаграмм и объектами диаграмм, предлагаемых Aspose.Cells для Python via .NET, и описали, как их создавать. В этой статье обсуждается настройка внешнего вида диаграмм путем изменения их свойств:

  • Установка области графика.
  • Установка линий графика.
  • Применение тем.
  • Установка заголовков для графиков и осей. Работа с линиями сетки.

Установка области диаграммы

В диаграмме есть разные области, и Aspose.Cells для Python via .NET предоставляет возможность изменять внешний вид каждой области. Разработчики могут применять различные настройки форматирования, меняя цвет переднего плана, цвет фона и заливку и другие параметры.

В приведенном ниже примере мы применили различные настройки форматирования к различным видам областей диаграммы. Эти области включают:

  • Область построения
  • Область диаграммы
  • Область коллекции серий
  • Область одной точки в коллекции серий

В следующем фрагменте кода демонстрируется, как установить область диаграммы.

from aspose.cells import Workbook
from aspose.cells.charts import ChartType
from aspose.cells.drawing import GradientStyleType
from aspose.pydrawing import Color
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 Workbook 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(60)
worksheet.cells.get("B2").put_value(32)
worksheet.cells.get("B3").put_value(50)
# Adding a chart to the worksheet
chartIndex = worksheet.charts.add(ChartType.COLUMN, 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)
# Setting the foreground color of the plot area
chart.plot_area.area.foreground_color = Color.blue
# Setting the foreground color of the chart area
chart.chart_area.area.foreground_color = Color.yellow
# Setting the foreground color of the 1st SeriesCollection area
chart.n_series[0].area.foreground_color = Color.red
# Setting the foreground color of the area of the 1st SeriesCollection point
chart.n_series[0].points[0].area.foreground_color = Color.cyan
# Filling the area of the 2nd SeriesCollection with a gradient
chart.n_series[1].area.fill_format.set_one_color_gradient(Color.lime, 1, GradientStyleType.HORIZONTAL, 1)
# Saving the Excel file
workbook.save(dataDir + "book1.out.xls")

Установка линий диаграммы

Разработчики также могут применять различные стили линий или маркеров данных из коллекции SeriesCollection. Следующий пример показывает, как устанавливать линии диаграммы с помощью API Aspose.Cells для Python via .NET.

from aspose.cells import Workbook
from aspose.cells.charts import ChartMarkerType, ChartType
from aspose.cells.drawing import GradientStyleType, LineType, WeightType
from aspose.pydrawing import Color
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 Workbook 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(60)
worksheet.cells.get("B2").put_value(32)
worksheet.cells.get("B3").put_value(50)
# Adding a chart to the worksheet
chartIndex = worksheet.charts.add(ChartType.COLUMN, 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)
# Setting the foreground color of the plot area
chart.plot_area.area.foreground_color = Color.blue
# Setting the foreground color of the chart area
chart.chart_area.area.foreground_color = Color.yellow
# Setting the foreground color of the 1st SeriesCollection area
chart.n_series[0].area.foreground_color = Color.red
# Setting the foreground color of the area of the 1st SeriesCollection point
chart.n_series[0].points[0].area.foreground_color = Color.cyan
# Filling the area of the 2nd SeriesCollection with a gradient
chart.n_series[1].area.fill_format.set_one_color_gradient(Color.lime, 1, GradientStyleType.HORIZONTAL, 1)
# Applying a dotted line style on the lines of a SeriesCollection
chart.n_series[0].border.style = LineType.DOT
# Applying a triangular marker style on the data markers of a SeriesCollection
chart.n_series[0].marker.marker_style = ChartMarkerType.TRIANGLE
# Setting the weight of all lines in a SeriesCollection to medium
chart.n_series[1].border.weight = WeightType.MEDIUM_LINE
# Saving the Excel file
workbook.save(dataDir + "book1.out.xls")

Применение тем Microsoft Excel 2007/2010 к диаграммам

Разработчики могут применять различные темы / цвета Microsoft Excel к SeriesCollection или другим объектам диаграмм, как показано в примере ниже.

from aspose.cells import ThemeColor, ThemeColorType, Workbook
from aspose.cells.drawing import FillType
# 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(".")
# Instantiate the workbook to open the file that contains a chart
workbook = Workbook(dataDir + "book1.xlsx")
# Get the first worksheet
worksheet = workbook.worksheets[1]
# Get the first chart in the sheet
chart = worksheet.charts[0]
# Specify the FilFormat's type to Solid Fill of the first series
chart.n_series[0].area.fill_format.fill_type = FillType.SOLID
# Get the CellsColor of SolidFill
cc = chart.n_series[0].area.fill_format.solid_fill.cells_color
# Create a theme in Accent style
cc.theme_color = ThemeColor(ThemeColorType.ACCENT6, 0.6)
# Apply the them to the series
chart.n_series[0].area.fill_format.solid_fill.cells_color = cc
# Save the Excel file
workbook.save(dataDir + "output.out.xlsx")

Настройка заголовков диаграмм или осей

Вы можете использовать Microsoft Excel для установки заголовков диаграммы и её осей в режиме WYSIWYG. Aspose.Cells для Python via .NET также позволяет разработчикам устанавливать заголовки диаграммы и её осей во время выполнения. Все диаграммы и их оси содержат свойство Chart.title, которое можно использовать для установки их заголовков, как показано ниже в примере.

В следующем фрагменте кода продемонстрировано, как устанавливать заголовки для диаграмм и осей.

from aspose.cells import Workbook
from aspose.cells.charts import ChartType
from aspose.cells.drawing import GradientStyleType
from aspose.pydrawing import Color
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 Workbook 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(60)
worksheet.cells.get("B2").put_value(32)
worksheet.cells.get("B3").put_value(50)
# Adding a chart to the worksheet
chartIndex = worksheet.charts.add(ChartType.COLUMN, 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)
# Setting the foreground color of the plot area
chart.plot_area.area.foreground_color = Color.blue
# Setting the foreground color of the chart area
chart.chart_area.area.foreground_color = Color.yellow
# Setting the foreground color of the 1st SeriesCollection area
chart.n_series[0].area.foreground_color = Color.red
# Setting the foreground color of the area of the 1st SeriesCollection point
chart.n_series[0].points[0].area.foreground_color = Color.cyan
# Filling the area of the 2nd SeriesCollection with a gradient
chart.n_series[1].area.fill_format.set_one_color_gradient(Color.lime, 1, GradientStyleType.HORIZONTAL, 1)
# Setting the title of a chart
chart.title.text = "Title"
# Setting the font color of the chart title to blue
chart.title.font.color = Color.blue
# Setting the title of category axis of the chart
chart.category_axis.title.text = "Category"
# Setting the title of value axis of the chart
chart.value_axis.title.text = "Value"
# Saving the Excel file
workbook.save(dataDir + "book1.out.xls")

Работа с основными линиями сетки

Есть возможность настраивать внешний вид основных линий сетки. Скрыть или показать линии сетки или определить их цвет и другие настройки. Ниже показано, как скрыть линии сетки и как изменить их цвет.

Скрытие основных линий сетки

Разработчики могут управлять видимостью основных линий сетки, устанавливая свойство is_visible объекта Line в значение true или false.

Приведенный ниже фрагмент кода демонстрирует, как скрыть основные линии сетки. После скрытия основных линий сетки столбчатая диаграмма будет добавлена на лист и не будет иметь линий сетки.

from aspose.cells import Workbook
from aspose.cells.charts import ChartType
from aspose.cells.drawing import GradientStyleType
from aspose.pydrawing import Color
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 Workbook 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(60)
worksheet.cells.get("B2").put_value(32)
worksheet.cells.get("B3").put_value(50)
# Adding a chart to the worksheet
chartIndex = worksheet.charts.add(ChartType.COLUMN, 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)
# Setting the foreground color of the plot area
chart.plot_area.area.foreground_color = Color.blue
# Setting the foreground color of the chart area
chart.chart_area.area.foreground_color = Color.yellow
# Setting the foreground color of the 1st SeriesCollection area
chart.n_series[0].area.foreground_color = Color.red
# Setting the foreground color of the area of the 1st SeriesCollection point
chart.n_series[0].points[0].area.foreground_color = Color.cyan
# Filling the area of the 2nd SeriesCollection with a gradient
chart.n_series[1].area.fill_format.set_one_color_gradient(Color.lime, 1, GradientStyleType.HORIZONTAL, 1)
# Hiding the major gridlines of Category Axis
chart.category_axis.major_grid_lines.is_visible = False
# Hiding the major gridlines of Value Axis
chart.value_axis.major_grid_lines.is_visible = False
# Saving the Excel file
workbook.save(dataDir + "book1.out.xls")

Изменение настроек основных линий сетки

Разработчики могут не только контролировать видимость основных линий сетки, но и другие свойства, включая их цвет и т.д.

Приведенный ниже фрагмент кода демонстрирует, как изменить цвет основных линий сетки. После установки цвета основных линий сетки на лист будет добавлена столбчатая диаграмма с измененной сеткой.

from aspose.cells import Workbook
from aspose.cells.charts import ChartType
from aspose.cells.drawing import GradientStyleType
from aspose.pydrawing import Color
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 Workbook 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(60)
worksheet.cells.get("B2").put_value(32)
worksheet.cells.get("B3").put_value(50)
# Adding a chart to the worksheet
chartIndex = worksheet.charts.add(ChartType.COLUMN, 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)
# Setting the foreground color of the plot area
chart.plot_area.area.foreground_color = Color.blue
# Setting the foreground color of the chart area
chart.chart_area.area.foreground_color = Color.yellow
# Setting the foreground color of the 1st SeriesCollection area
chart.n_series[0].area.foreground_color = Color.red
# Setting the foreground color of the area of the 1st SeriesCollection point
chart.n_series[0].points[0].area.foreground_color = Color.cyan
# Filling the area of the 2nd SeriesCollection with a gradient
chart.n_series[1].area.fill_format.set_one_color_gradient(Color.lime, 1, GradientStyleType.HORIZONTAL, 1)
# Setting the color of Category Axis' major gridlines to silver
chart.category_axis.major_grid_lines.color = Color.silver
# Setting the color of Value Axis' major gridlines to red
chart.value_axis.major_grid_lines.color = Color.red
# Saving the Excel file
workbook.save(dataDir + "book1.out.xls")

Продвинутые темы