Zarządzanie seriami danych wykresu w prezentacjach w Pythonie
Overview
Wykres może przechowywać swoje wyświetlane wartości w komórkach skoroszytu lub bezpośrednio jako literały liczbowe. A ChartSeries reprezentuje jeden zestaw powiązanych wartości, a każdy ChartDataPoint reprezentuje punkt w tej serii. Obiekty ChartCategory dostarczają etykiety lub wartości grupujące współdzielone przez serie. W wykresach tworzonych z danymi domyślnymi, nazwy serii, kategorie i wartości punktów używają obiektów ChartDataCell z skoroszytu wykresu.
Dla typowego wykresu kategorii domyślny skoroszyt używa wiersza 0 dla nazw serii, kolumny 0 dla nazw kategorii oraz pozostałych komórek dla wartości serii. Indeksy arkusza, wiersza i kolumn przekazywane do ChartDataWorkbook.get_cell są zero‑indeksowane. Ten układ jest przydatny, gdy tworzysz wykres z danymi domyślnymi, ale nie zakładaj, że każdy istniejący wykres go używa. Dla wczytanego prezentacji sprawdź komórki odwoływane przez serie, kategorie i punkty danych przed zmianą wartości w skoroszycie.
Ustawienia wykresu mają trzy różne zakresy:
- Ustawienia na poziomie serii, takie jak ChartSeries.format, zapewniają domyślny wygląd wszystkich punktów w jednej serii.
- Ustawienia punktu danych, takie jak ChartDataPoint.format, nadpisują wygląd serii dla jednego punktu.
- Ustawienia grupowe mają zastosowanie do kompatybilnych serii, które należą do tej samej ChartSeriesGroup. Uzyskaj dostęp do grupy przez ChartSeries.parent_series_group gdy potrzebujesz ustawić opcje takie jak nakładanie się lub szerokość przerwy.
Gdy nie zostanie ustawione explicite wypełnienie punktu lub serii, styl i motyw wykresu określają automatyczny wygląd. Gdy istnieją zarówno formatowanie serii, jak i punktu, formatowanie punktu ma pierwszeństwo dla tego punktu.

Set Series Values Using Numeric Literals
Używaj literałów liczbowych, gdy wartości serii pochodzą z danych aplikacji lub obliczeń i nie wymagają odwołań do komórek arkusza. Ustaw data_source_type_for_values na DataSourceType.DOUBLE_LITERALS przed przypisaniem każdej value punktu poprzez as_literal_double.
Ustawienie kolekcji kontroluje typ źródła wszystkich wartości punktów w tej serii. value.data_source_type każdego punktu informuje o wybranym typie; zmień go przez ustawienie kolekcji. Przy WORKSHEET użyj as_cell aby uzyskać dostęp do odwoływanej komórki. Przy DOUBLE_LITERALS użyj as_literal_double aby odczytać lub zapisać liczbę bezpośrednio.
Poniższy przykład tworzy wykres słupkowy z domyślnymi seriami i kategoriami, a następnie przypisuje obliczone wartości 10, 20 i tak dalej do istniejących punktów pierwszej serii. Zapisuje prezentację, otwiera ją ponownie i wypisuje zapisane wartości.
import aspose.slides as slides
import aspose.slides.charts as charts
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 300)
series = chart.chart_data.series[0]
series.data_points.data_source_type_for_values = charts.DataSourceType.DOUBLE_LITERALS
for i in range(len(series.data_points)):
series.data_points[i].value.as_literal_double = (i + 1) * 10
presentation.save("numeric_literals.pptx", slides.export.SaveFormat.PPTX)
with slides.Presentation("numeric_literals.pptx") as reopened_presentation:
reopened_slide = reopened_presentation.slides[0]
reopened_chart = reopened_slide.shapes[0]
reopened_series = reopened_chart.chart_data.series[0]
for point in reopened_series.data_points:
print(point.value.as_literal_double)
Typ źródła wartości punktu jest oddzielny od ChartData.data_source_type, który identyfikuje wewnętrzną lub zewnętrzną konfigurację skoroszytu wykresu. Używanie literałów liczbowych nie usuwa samego osadzonego skoroszytu. W tym przykładzie skoroszyt pozostaje dostępny dla etykiet kategorii, nazw serii i pozostałych serii. Zobacz Chart Workbook po zarządzanie skoroszytem.
Dla wykresów rozrzutu i bąbelkowych ustaw data_source_type_for_x_values oraz data_source_type_for_y_values aby wybrać źródła dla x_value i y_value. Wykresy bąbelkowe używają także data_source_type_for_bubble_sizes dla bubble_size. Ustaw każdy odpowiedni źródło na DOUBLE_LITERALS przed przypisaniem liczb przez właściwość as_literal_double tego wartości.
Set the Chart Series Overlap
ChartSeries.overlap informuje, jak bardzo słupki lub kolumny nachodzą na siebie w wykresie 2‑D, w zakresie od -100 do 100 procent. Jest to tylko odczytywalna projekcja ustawienia w grupie nadrzędnej serii. Ustaw ChartSeriesGroup.overlap aby zaktualizować wszystkie kompatybilne serie w tej grupie. Opcja ma zastosowanie do typów wykresów wyświetlających grupowane słupki lub kolumny; nie wpływa na niepowiązane grupy serii w wykresie złożonym.
Poniższy przykład ustawia nachodzenie dla grupy zawierającej pierwszą serię:
import aspose.slides as slides
import aspose.slides.charts as charts
first_slide_index = 0
first_series_index = 0
overlap_percent = 30
with slides.Presentation() as presentation:
slide = presentation.slides[first_slide_index]
# Nowy wykres zawiera przykładowe serie, kategorie i wartości.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
series = chart.chart_data.series[first_series_index]
series.parent_series_group.overlap = overlap_percent
presentation.save("series_overlap.pptx", slides.export.SaveFormat.PPTX)
Wynik:

Change the Series Fill Color
Użyj ChartSeries.format aby ustawić domyślne wypełnienie całej serii. Jeśli punkt ma już explicite wypełnienie, jego ustawienie ChartDataPoint.format nadpisuje wypełnienie serii dla tego punktu.
Poniższy przykład stosuje jednolite niebieskie wypełnienie do pierwszej serii:
import aspose.pydrawing as drawing
import aspose.slides as slides
import aspose.slides.charts as charts
first_slide_index = 0
first_series_index = 0
with slides.Presentation() as presentation:
slide = presentation.slides[first_slide_index]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
series = chart.chart_data.series[first_series_index]
series.format.fill.fill_type = slides.FillType.SOLID
series.format.fill.solid_fill_color.color = drawing.Color.blue
presentation.save("series_color.pptx", slides.export.SaveFormat.PPTX)
Wynik:

Change the Series Name
Nazwa serii jest przechowywana w skoroszycie danych wykresu i zwykle wyświetlana w legendzie. W domyślnym skoroszycie utworzonym dla skumulowanego wykresu kolumnowego komórka B1 znajduje się w wierszu 0, kolumna 1 i zawiera nazwę pierwszej serii. Stałe nazwane w poniższym przykładzie wyraźnie opisują tę strukturę:
import aspose.slides as slides
import aspose.slides.charts as charts
first_slide_index = 0
worksheet_index = 0
series_name_row_index = 0
first_series_column_index = 1
with slides.Presentation() as presentation:
slide = presentation.slides[first_slide_index]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
workbook = chart.chart_data.chart_data_workbook
series_name_cell = workbook.get_cell(worksheet_index, series_name_row_index, first_series_column_index)
series_name_cell.value = "Revenue"
presentation.save("series_name.pptx", slides.export.SaveFormat.PPTX)
Możesz także zaktualizować komórkę już odwoływaną przez ChartSeries.name. To podejście unika przyjmowania konkretnego wiersza i kolumny w istniejącym wykresie:
import aspose.slides as slides
import aspose.slides.charts as charts
first_slide_index = 0
first_series_index = 0
first_name_cell_index = 0
with slides.Presentation() as presentation:
slide = presentation.slides[first_slide_index]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
series = chart.chart_data.series[first_series_index]
series_name_cell = series.name.as_cells[first_name_cell_index]
series_name_cell.value = "Revenue"
presentation.save("series_name.pptx", slides.export.SaveFormat.PPTX)
Wynik:

Create a Series with a Name from Multiple Cells
Złożona nazwa serii jest przydatna, gdy nazwa produktu i okres sprawozdawczy są przechowywane w oddzielnych komórkach skoroszytu. Na przykład możesz połączyć Product A w B1 i 2026 w C1 w jedną nazwę serii, zachowując oba elementy powiązane z ich komórkami źródłowymi.
Użyj ChartDataWorkbook.get_cell_collection aby pobrać zakres nazwy, a następnie przekaż tę kolekcję do ChartSeriesCollection.add. Argument skip_hidden_cells określa, czy ukryte komórki są uwzględniane: True wyklucza je, natomiast False włącza. Ten przykład używa False, aby włączyć każdą komórkę w zakresie nazwy.
Poniższy przykład tworzy prezentację z jedną serią i dwoma punktami danych. Komórki B1:C1 dostarczają tylko nazwę serii; A2:A3 dostarczają etykiety kategorii, a B2:B3 dostarczają wartości liczbowe.
import aspose.slides as slides
import aspose.slides.charts as charts
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 620, 180)
chart.chart_data.series.clear()
chart.chart_data.categories.clear()
chart.has_legend = True
workbook = chart.chart_data.chart_data_workbook
workbook.clear(0)
# Te dwie komórki dostarczają nazwę serii.
workbook.get_cell(0, 0, 1, "Product A")
workbook.get_cell(0, 0, 2, "2026")
name_cells = workbook.get_cell_collection("Sheet1!$B$1:$C$1", False)
series = chart.chart_data.series.add(name_cells, charts.ChartType.CLUSTERED_COLUMN)
# Oddzielne komórki dostarczają kategorie i numeryczne punkty danych.
north_category = workbook.get_cell(0, 1, 0, "North")
south_category = workbook.get_cell(0, 2, 0, "South")
chart.chart_data.categories.add(north_category)
chart.chart_data.categories.add(south_category)
north_value = workbook.get_cell(0, 1, 1, 120)
south_value = workbook.get_cell(0, 2, 1, 150)
series.data_points.add_data_point_for_bar_series(north_value)
series.data_points.add_data_point_for_bar_series(south_value)
presentation.save("composite_series_name.pptx", slides.export.SaveFormat.PPTX)
Wynikowa nazwa serii to Product A 2026, z odstępem pomiędzy dwoma wartościami komórek. Legenda wyświetla to jako jedną pozycję dla obu kolumn. Obraz poniżej został wygenerowany z zapisanej prezentacji:

Get the Automatic Series Fill Color
ChartSeries.get_automatic_series_color zwraca kolor obliczony na podstawie indeksu serii i stylu wykresu. Jest to kolor używany, gdy wypełnienie serii nie zostało jawnie określone. Wywołanie metody odczytuje obliczony kolor; nie przypisuje nowego wypełnienia.
Poniższy przykład wypisuje automatyczny kolor każdej domyślnej serii:
import aspose.slides as slides
import aspose.slides.charts as charts
first_slide_index = 0
with slides.Presentation() as presentation:
slide = presentation.slides[first_slide_index]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
series_count = len(chart.chart_data.series)
for series_index in range(series_count):
series = chart.chart_data.series[series_index]
automatic_color = series.get_automatic_series_color()
print(f"Series {series_index}: {automatic_color.name}")
Przykładowe wyjście dla domyślnego stylu wykresu:
Series 0: ff4f81bd
Series 1: ffc0504d
Series 2: ff9bbb59
Dokładne kolory zależą od stylu i motywu wykresu.
Set Invert Fill Color for a Chart Series
Dla serii słupkowych, kolumnowych i bąbelkowych, ChartSeries.invert_if_negative może wyświetlać ujemne wartości innym wypełnieniem. Ustaw regularne wypełnienie serii na jednolite, włącz odwracanie i przypisz kolor ujemnych wartości przez ChartSeries.inverted_solid_fill_color. Ujemne liczby pozostają niezmienione w skoroszycie; zmienia się tylko ich kolor wyświetlania.
Poniższy przykład zamienia domyślne dane wykresu na jedną serię. Wiersz 0 arkusza zawiera nazwę serii, kolumna 0 zawiera nazwy kategorii, a kolumna 1 zawiera wartości:
import aspose.pydrawing as drawing
import aspose.slides as slides
import aspose.slides.charts as charts
first_slide_index = 0
worksheet_index = 0
header_row_index = 0
category_column_index = 0
first_series_column_index = 1
first_data_row_index = 1
category_names = ["Category 1", "Category 2", "Category 3"]
series_values = [-20, 50, -30]
with slides.Presentation() as presentation:
slide = presentation.slides[first_slide_index]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
chart_data = chart.chart_data
workbook = chart_data.chart_data_workbook
chart_data.series.clear()
chart_data.categories.clear()
series_name_cell = workbook.get_cell(worksheet_index, header_row_index, first_series_column_index, "Series 1")
series = chart_data.series.add(series_name_cell, chart.type)
category_count = len(category_names)
for category_index in range(category_count):
data_row_index = first_data_row_index + category_index
category_name = category_names[category_index]
series_value = series_values[category_index]
category_cell = workbook.get_cell(worksheet_index, data_row_index, category_column_index, category_name)
chart_data.categories.add(category_cell)
value_cell = workbook.get_cell(worksheet_index, data_row_index, first_series_column_index, series_value)
series.data_points.add_data_point_for_bar_series(value_cell)
automatic_series_color = series.get_automatic_series_color()
series.format.fill.fill_type = slides.FillType.SOLID
series.format.fill.solid_fill_color.color = automatic_series_color
series.invert_if_negative = True
series.inverted_solid_fill_color.color = drawing.Color.red
presentation.save("inverted_solid_fill_color.pptx", slides.export.SaveFormat.PPTX)
Wynik:

Możesz włączyć odwracanie dla jednego punktu przez ChartDataPoint.invert_if_negative. W poniższym przykładzie odwracanie jest wyłączone dla serii i włączone tylko dla wybranego punktu. Punktowi przypisano także wartość ujemną, aby efekt był widoczny:
import aspose.pydrawing as drawing
import aspose.slides as slides
import aspose.slides.charts as charts
first_slide_index = 0
first_series_index = 0
target_data_point_index = 2
negative_value = -30
with slides.Presentation() as presentation:
slide = presentation.slides[first_slide_index]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
series = chart.chart_data.series[first_series_index]
automatic_series_color = series.get_automatic_series_color()
series.format.fill.fill_type = slides.FillType.SOLID
series.format.fill.solid_fill_color.color = automatic_series_color
series.inverted_solid_fill_color.color = drawing.Color.red
series.invert_if_negative = False
data_point = series.data_points[target_data_point_index]
data_point.value.as_cell.value = negative_value
data_point.invert_if_negative = True
presentation.save("data_point_invert_color_if_negative.pptx", slides.export.SaveFormat.PPTX)
Clear a Specific Data Point Value
Aby uczynić jeden punkt pustym bez usuwania pozostałych punktów, ustaw jego podlegającą komórkę skoroszytu na None. Dla wykresu kolumnowego wyświetlana wartość jest dostępna przez ChartDataPoint.value. Punkt pozostaje w tym samym miejscu kategorii, ale wykres traktuje jego wartość jako pustą zgodnie z ustawieniami pustych wartości wykresu.
Poniższy przykład usuwa tylko drugi punkt w pierwszej serii:
import aspose.slides as slides
import aspose.slides.charts as charts
first_slide_index = 0
first_series_index = 0
target_data_point_index = 1
with slides.Presentation() as presentation:
slide = presentation.slides[first_slide_index]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
series = chart.chart_data.series[first_series_index]
data_point = series.data_points[target_data_point_index]
data_point.value.as_cell.value = None
presentation.save("clear_data_point_value.pptx", slides.export.SaveFormat.PPTX)
Wykresy rozrzutu używają oddzielnych komórek X i Y, a wykresy bąbelkowe także komórki rozmiaru. Usuń tylko tę komórkę, która reprezentuje wartość, którą chcesz usunąć. Nie wywołuj ChartDataPointCollection.clear gdy chcesz zachować pozostałe punkty, ponieważ ta metoda usuwa każdy punkt z kolekcji.
Control the Display of Empty Cells
Ukryte komórki zawierające wartości to odrębny przypadek od pustych komórek. Aby uwzględnić lub wykluczyć dane z ukrytych wierszy i kolumn arkusza, zobacz Include Data from Hidden Rows and Columns.
Pusta komórka skoroszytu oznacza brak danych; komórka zawierająca 0 oznacza znaną wartość liczbową. Ustaw ChartDataCell.value na None, aby uczynić komórkę pustą. Zero liczbowe pozostaje zerem niezależnie od ustawienia pustej komórki.
Użyj Chart.display_blanks_as aby wybrać, jak wykres wyświetla puste komórki. To ustawienie dotyczy całego wykresu. Zmienia sposób, w jaki puste miejsca są rysowane, bez wypełniania pustej komórki zerem lub interpolowaną wartością.
Poniższy, samodzielny przykład tworzy wykres liniowy z jedną serią, usuwa wartość dla Dnia 3 i zapisuje wykres w każdej z trzech trybów. Nie wymaga pliku wejściowego. ChartDataWorkbook używa arkusza 0, kolumny 0 dla etykiet kategorii oraz kolumny 1 dla wartości; wiersz 0 zawiera nazwę serii. Ostateczne dane to 10, 20, empty, 30, 40.
import aspose.slides as slides
import aspose.slides.charts as charts
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.LINE_WITH_MARKERS, 40, 40, 640, 400)
chart_data = chart.chart_data
workbook = chart_data.chart_data_workbook
chart_data.series.clear()
chart_data.categories.clear()
series_name_cell = workbook.get_cell(0, 0, 1, "Measurements")
series = chart_data.series.add(series_name_cell, chart.type)
values = [10, 20, 25, 30, 40]
for i, value in enumerate(values):
category_cell = workbook.get_cell(0, i + 1, 0, f"Day {i + 1}")
chart_data.categories.add(category_cell)
value_cell = workbook.get_cell(0, i + 1, 1, value)
series.data_points.add_data_point_for_line_series(value_cell)
# Pozostaw Dzień 3 naprawdę pusty, zachowując jego kategorię i punkt danych.
workbook.get_cell(0, 3, 1).value = None
modes = [("Gap", charts.DisplayBlanksAsType.GAP), ("Zero", charts.DisplayBlanksAsType.ZERO), ("Span", charts.DisplayBlanksAsType.SPAN)]
for mode_name, mode in modes:
chart.display_blanks_as = mode
presentation.save(f"empty_cells_{mode_name}.pptx", slides.export.SaveFormat.PPTX)
Każdy plik wynikowy przechowuje tryb ustawiony przed zapisem: empty_cells_Gap.pptx, empty_cells_Zero.pptx i empty_cells_Span.pptx. Aby zapisać tylko jedną wersję, ustaw żądany tryb i zapisz prezentację raz zamiast iterować po trybach.
Porównanie poniżej pokazuje te same dane we wszystkich trzech plikach. Dzień 3 jest pusty w skoroszycie w każdym przypadku:

Widoczny efekt zależy od typu wykresu. Wykres liniowy umożliwia łatwe porównanie wszystkich trzech trybów. Wykresy słupkowe i kolumnowe nie mają linii łączącej brakującą kategorię, więc SPAN nie może wygenerować segmentu łączenia pokazanego powyżej; brakująca kolumna i kolumna o wysokości zero mogą wyglądać podobnie. Podobnie wykres rozrzutu z samymi znacznikami nie ma linii łączącej. Nie oczekuj trzech odrębnych wyników dla każdego typu wykresu; sprawdź wynik dla używanego typu.
Set the Series Gap Width
Szerokość przerwy to odstęp pomiędzy sąsiadującymi grupami słupków lub kolumn, wyrażony jako procent szerokości słupka lub kolumny. Podobnie jak nachodzenie, należy ona do grupy nadrzędnej serii, a nie do jednej serii. Ustaw ChartSeriesGroup.gap_width raz dla grupy. Większa wartość tworzy więcej przestrzeni między grupami; mniejsza wartość sprawia, że są one bardziej zwarte.
Poniższy przykład zmienia szerokość przerwy i zapisuje jedynie ostateczną prezentację:
import aspose.slides as slides
import aspose.slides.charts as charts
first_slide_index = 0
first_series_index = 0
gap_width_percent = 30
with slides.Presentation() as presentation:
slide = presentation.slides[first_slide_index]
chart = slide.shapes.add_chart(charts.ChartType.STACKED_COLUMN, 20, 20, 500, 200)
series = chart.chart_data.series[first_series_index]
series.parent_series_group.gap_width = gap_width_percent
presentation.save("gap_width_30.pptx", slides.export.SaveFormat.PPTX)
Wynik:

FAQ
Which chart types support data series?
Wszystkie typy wykresów reprezentowane przez wyliczenie ChartType używają danych wykresu, ale ich serie nie mają takiej samej struktury wartości ani ustawień. Na przykład wykresy kategoriowe używają kategorii i wartości, wykresy rozrzutu używają wartości X i Y, a wykresy bąbelkowe dodają rozmiary bąbelków. Użyj metody tworzenia punktu danych, która odpowiada typowi serii. Opcje takie jak nachodzenie i szerokość przerwy mają zastosowanie tylko do kompatybilnych grup słupków lub kolumn.
What is a chart series group?
ChartSeriesGroup zawiera kompatybilne serie, które współdzielą ustawienia wykresu na poziomie grupy. Wykres złożony może zawierać więcej niż jedną grupę, więc zmiana grupy uzyskanej przez jedną serię niekoniecznie zmieni każdą serię w wykresie.
Does a newly created chart contain default data?
Tak. Domyślnie ShapeCollection.add_chart tworzy przykładowe serie, kategorie i wartości. Możesz edytować te komórki lub wyczyścić zarówno serie, jak i kolekcje kategorii przed dodaniem całkowicie własnego zestawu danych. Przeciążenie może także utworzyć wykres bez danych domyślnych.
How are chart objects connected to workbook cells?
Nazwy serii, etykiety kategorii i wartości punktów danych odwołują się do komórek w ChartDataWorkbook. Zmiana odwoływanej komórki aktualizuje odpowiadający element wykresu. Budując własne dane, zachowaj wyrównanie wierszy kategorii i wierszy wartości serii, aby każdy punkt był rysowany pod właściwą kategorią.
How do I clear one point instead of the whole series?
Ustaw odpowiednią komórkę wartości na None, aby zachować pozycję kategorii punktu jako pusty punkt. Używaj ChartDataPointCollection.clear tylko wtedy, gdy zamierzasz usunąć wszystkie punkty z tej serii. Jeśli usuwasz także kategorie, zaktualizuj każdą serię, aby ich wartości pozostały wyrównane z kolekcją kategorii.
How are empty points displayed?
Wynik zależy od typu wykresu i Chart.display_blanks_as. Obsługiwane wykresy mogą wyświetlać puste miejsca jako przerwy, jako wartości zero lub łącząc sąsiednie punkty. Wybierz ustawienie, które odpowiada znaczeniu brakujących danych w prezentacji. Zobacz Control the Display of Empty Cells po pełny przykład i porównanie wizualne.
How are negative values formatted?
Dla obsługiwanych serii słupkowych, kolumnowych i bąbelkowych włącz ChartSeries.invert_if_negative i ustaw ChartSeries.inverted_solid_fill_color. Możesz nadpisać zachowanie dla pojedynczego punktu za pomocą ChartDataPoint.invert_if_negative. Właściwości te wpływają na formatowanie, a nie na przechowywane wartości liczbowe.
Which formatting wins when both a series and a point are formatted?
Explicite formatowanie punktu danych ma pierwszeństwo dla tego punktu. Inne punkty kontynuują używanie explicite formatu serii lub, gdy format serii nie jest określony, automatycznego stylu i motywu wykresu. Właściwości grupowe, takie jak nachodzenie i szerokość przerwy, sterują układem i nie są nadpisaniami formatu na poziomie punktu.
Is there a limit to how many series a chart can contain?
Aspose.Slides nie narzuca oddzielnego stałego limitu liczby serii. W praktyce ograniczenia pliku prezentacji, dostępna pamięć, czas renderowania i czytelność wykresu wyznaczają użyteczny limit.
What should I change when columns are too close together or too far apart?
Ustaw ChartSeriesGroup.gap_width w odpowiedniej grupie nadrzędnej serii. Zwiększ wartość, aby poszerzyć przestrzeń między grupami, lub zmniejsz ją, aby przybliżyć grupy do siebie.