Настройка внешнего вида графика
Настройка внешнего вида диаграммы
В разделе Как создать диаграмму мы кратко познакомили с типами диаграмм и объектами диаграмм, предлагаемых 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") |