Chart — Aspose.Cells FOSS for Python API Reference

aspose-cells-foss поддерживает встраивание диаграмм в листы. Диаграммы управляются через ws.charts, a ChartCollection прикреплённый к каждому Worksheet. Данные серии добавляются через chart.n_series, an NSeries коллекция.

ImageRenderOptions: aspose.cells_foss

from aspose.cells_foss import ChartType

ChartType

ChartType является IntEnum который определяет тип диаграммы.

ImageRenderOptionsImageRenderOptionsImageRenderOptions
LINE0Полностью поддерживается при сохранении.
BAR1Полностью поддерживается при сохранении.
PIE2Полностью поддерживается при сохранении.
AREA3Полностью поддерживается при сохранении.
BOX_WHISKER4Сохранено в формате chartEx.
WATERFALL5Сохранено в формате chartEx.
COMBO6ImageRenderOptions NotImplementedError при сохранении.
SCATTER7ImageRenderOptions NotImplementedError при сохранении.
STOCK8Полностью поддерживается при сохранении.
SURFACE9ImageRenderOptions NotImplementedError при сохранении.
RADAR10ImageRenderOptions NotImplementedError при сохранении.
TREEMAP11ImageRenderOptions NotImplementedError при сохранении.
SUNBURST12ImageRenderOptions NotImplementedError при сохранении.
HISTOGRAM13ImageRenderOptions NotImplementedError при сохранении.
FUNNEL14ImageRenderOptions NotImplementedError при сохранении.
MAP15ImageRenderOptions NotImplementedError при сохранении.

ImageRenderOptions

Chart объекты не создаются напрямую. Используйте ws.charts.add(...) или типизированные удобные методы (add_bar(), add_line(), add_pie(), add_area()).

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
typeChartTypeImageRenderOptionsТип диаграммы задаётся при создании.
title`strNone`Чтение/Запись
category_data`strNone`Чтение/Запись
n_seriesNSeriesImageRenderOptionsКоллекция рядов данных.
show_legendboolЧтение/ЗаписьTrue (по умолчанию) отображать легенду диаграммы.
legend_positionstrЧтение/ЗаписьРазмещение легенды: 'right', 'left', 'top', 'bottom', 'top_right' (также принимает короткие формы 'r', 'l', 't', 'b', 'tr').
smoothboolЧтение/ЗаписьTrue использовать сглаженные (сплайновые) линии на линейных диаграммах.
groupingstrЧтение/ЗаписьГруппировка серий: 'standard', 'stacked', 'percentStacked', 'clustered'.
bar_directionstrЧтение/ЗаписьImageRenderOptions BAR диаграммы: 'bar' (горизонтальный) или 'col' (вертикальный/столбец).
gap_widthintЧтение/ЗаписьПромежуток между кластерами столбцов/баров, 0–500 (по умолчанию 150).
overlapintЧтение/ЗаписьПроцент перекрытия серий, от -100 до 100 (по умолчанию 0).
vary_colorsboolЧтение/ЗаписьTrue для назначения отдельного цвета каждому пункту данных.
first_slice_angleintЧтение/ЗаписьНачальный угол первой доли круговой диаграммы, 0–360 градусов.
is_3dboolЧтение/ЗаписьTrue для включения 3D-рендеринга.
view_3dChartView3DImageRenderOptions3D rotation and perspective settings.
axeslist[ChartAxis]ImageRenderOptionsСписок осей диаграммы.
upper_left_rowintImageRenderOptions0-based row index of the chart’s top-left anchor cell.
upper_left_columnintImageRenderOptions0-based column index of the chart’s top-left anchor cell.
lower_right_rowintImageRenderOptions0-based row index of the chart’s bottom-right anchor cell.
lower_right_columnintImageRenderOptions0-based column index of the chart’s bottom-right anchor cell.

ChartCollection

ChartCollection доступен как ws.charts. Содержит все диаграммы, встроенные в лист.

ImageRenderOptions

add

ws.charts.add(
    chart_type: ChartType,
    upper_left_row: int,
    upper_left_column: int,
    lower_right_row: int,
    lower_right_column: int
) -> Chart

Добавляет диаграмму указанного типа. Все аргументы позиции задаются нулевыми индексами строк/столбцов.

add_bar

ws.charts.add_bar(upper_left_row, upper_left_column, lower_right_row, lower_right_column) -> Chart

Сокращение для add(ChartType.BAR, ...).

add_line

ws.charts.add_line(upper_left_row, upper_left_column, lower_right_row, lower_right_column) -> Chart

Сокращение для add(ChartType.LINE, ...).

add_pie

ws.charts.add_pie(upper_left_row, upper_left_column, lower_right_row, lower_right_column) -> Chart

Сокращение для add(ChartType.PIE, ...).

add_area

ws.charts.add_area(upper_left_row, upper_left_column, lower_right_row, lower_right_column) -> Chart

Сокращение для add(ChartType.AREA, ...).

Свойства и итерация

ImageRenderOptionsImageRenderOptions
countКоличество диаграмм в коллекции (только для чтения).
__len__()ImageRenderOptions count.
__iter__()Итерирует все Chart объекты.
__getitem__(index)Возвращает Chart с нулевой базой index.

NSeries

NSeries доступен через chart.n_series. Он управляет серией данных, принадлежащей диаграмме.

ImageRenderOptions

add

chart.n_series.add(
    area: str,
    is_vertical: bool = False,
    category_data: str | None = None,
    name: str | None = None,
    chart_type: ChartType | None = None
) -> ChartSeries

Добавляет серию данных. area является строкой диапазона, например "Sheet1!B1:B5". Установить is_vertical=True когда данные расположены в столбцах. chart_type заменяет тип родительского графика для этой серии (используется в комбинированных графиках).

Свойства и итерация

ImageRenderOptionsImageRenderOptions
countКоличество серий (только для чтения).
__len__()ImageRenderOptions count.
__iter__()Итерирует по всем ChartSeries объекты.
__getitem__(index)Возвращает ChartSeries с нулевой индексацией index.

ChartSeries

ChartSeries представляет отдельный набор данных в диаграмме. Получено через chart.n_series[index].

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
valuesstrСтрока диапазона для данных значений Y (например,., "Sheet1!B2:B6").
category_datastrСтрока диапазона для меток категорий/оси X для этого набора.
name`strNone`
chart_type`ChartTypeNone`
x_valuesstrСтрока диапазона для значений X в точечной диаграмме.
error_bars`ChartErrorBarsNone`
smoothboolTrue использовать сглаженные линии для этой серии.

ImageRenderOptions

add_error_bars

series.add_error_bars(
    direction='y',
    bar_type='both',
    val_type='fixedVal',
    val=1.0,
    no_end_cap=False
) -> ChartErrorBars

Добавляет полосы ошибок к этой серии и возвращает ChartErrorBars объект.

ImageRenderOptionsImageRenderOptions
direction'x', 'y', 'xy'
bar_type'both', 'minus', 'plus'
val_type'fixedVal', 'percentage', 'stdDev', 'stdErr'

ChartAxis

ChartAxis доступен через chart.axes[index].

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
title`strNone`
number_format`strNone`
minimum_scale`floatNone`
maximum_scale`floatNone`
major_unit`floatNone`
minor_unit`floatNone`
is_logarithmicboolTrue использовать логарифмическую шкалу.
log_basefloatОснование логарифма, когда is_logarithmic является True.
crossesstrГде эта ось пересекает перпендикулярную ось: 'autoZero', 'min', 'max'.
crosses_at`floatNone`
reverse_orderboolTrue для изменения направления оси.
axis_typestrТип категории оси: 'catAx', 'valAx', 'dateAx', 'serAx'.
orientationstr'minMax' для обычного направления, 'maxMin' для обратного.

ChartView3D

ChartView3D доступен через chart.view_3d. Применяется только когда chart.is_3d является True.

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
rotation_xintВращение вокруг оси X (высота), 0–90 градусов.
rotation_yintВращение вокруг оси Y, 0–360 градусов.
right_angle_axesboolTrue для использования осей под прямым углом (изометрический вид).
perspectiveintПерспективное искажение, 0–100. Игнорируется, когда right_angle_axes является True.
height_percentintВысота диаграммы в процентах от основания, 5–500.
depth_percentintГлубина диаграммы в процентах от базы, 20–2000.

ChartErrorBars

ChartErrorBars доступен через series.error_bars. Создать с помощью series.add_error_bars(...).

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
directionstrНаправление линии ошибки: 'x', 'y', 'xy'.
bar_typestrКакие столбцы отображать: 'both', 'minus', 'plus'.
val_typestrТип значения: 'fixedVal', 'percentage', 'stdDev', 'stdErr'.
valfloatФиксированное или процентное значение, используемое когда val_type является 'fixedVal' или 'percentage'.
no_end_capboolTrue чтобы не отображать линию конца у полос ошибок.
plus_formula`strNone`
minus_formula`strNone`
line_width`intNone`
line_color`strNone`

ImageRenderOptions

В следующем примере записываются данные о ежемесячных доходах, создаётся сгруппированная столбчатая диаграмма с заголовком и двумя сериями данных, и сохраняется рабочая книга.

from aspose.cells_foss import Workbook, ChartType

wb = Workbook()
ws = wb.worksheets[0]
ws.name = "Revenue"

# Write headers and data
headers = ["Month", "Product A", "Product B"]
data = [
    ["Jan", 12000, 9500],
    ["Feb", 14500, 11000],
    ["Mar", 13200, 12800],
    ["Apr", 15800, 14100],
]
for col, h in enumerate(headers):
    ws.cells[0][col].put_value(h)
for row, row_data in enumerate(data, start=1):
    for col, val in enumerate(row_data):
        ws.cells[row][col].put_value(val)

# Add a bar chart covering rows 6-20, columns 0-6
chart = ws.charts.add_bar(6, 0, 20, 6)
chart.title = "Monthly Revenue by Product"
chart.bar_direction = "col"   # vertical (column chart)
chart.grouping = "clustered"

# Series: Product A and Product B
chart.n_series.add("Revenue!B2:B5", is_vertical=True, category_data="Revenue!A2:A5", name="Product A")
chart.n_series.add("Revenue!C2:C5", is_vertical=True, category_data="Revenue!A2:A5", name="Product B")

chart.show_legend = True
chart.legend_position = "bottom"

wb.save("revenue_chart.xlsx")

См. также

 Русский