Personalizza gli assi dei grafici nelle presentazioni con Python
Panoramica
Questo articolo spiega come personalizzare gli assi del grafico in Aspose.Slides. Mostra come ottenere i valori effettivi dell’asse, scambiare i dati tra gli assi, nascondere l’asse verticale o orizzontale per i grafici a linee, modificare il tipo di asse di categoria, impostare il formato data per i valori dell’asse di categoria, ruotare il titolo di un asse, impostare la posizione dell’asse e visualizzare un’etichetta di unità sull’asse dei valori.
Ottenere i valori massimi sull’asse verticale nei grafici
Aspose.Slides per Python via .NET consente di ottenere i valori minimo e massimo su un asse verticale. Segui questi passaggi:
- Crea un’istanza della classe Presentation.
- Accedi alla prima diapositiva.
- Aggiungi un grafico con dati predefiniti.
- Ottieni il valore massimo effettivo sull’asse.
- Ottieni il valore minimo effettivo sull’asse.
- Ottieni l’unità principale effettiva dell’asse.
- Ottieni l’unità secondaria effettiva dell’asse.
- Ottieni la scala dell’unità principale effettiva dell’asse.
- Ottieni la scala dell’unità secondaria effettiva dell’asse.
Questo codice di esempio — un’implementazione dei passaggi sopra — mostra come ottenere i valori richiesti in Python:
import aspose.slides.charts as charts
import aspose.slides as slides
with slides.Presentation() as pres:
chart = pres.slides[0].shapes.add_chart(charts.ChartType.AREA, 100, 100, 500, 350)
chart.validate_chart_layout()
maxValue = chart.axes.vertical_axis.actual_max_value
minValue = chart.axes.vertical_axis.actual_min_value
majorUnit = chart.axes.horizontal_axis.actual_major_unit
minorUnit = chart.axes.horizontal_axis.actual_minor_unit
# Salva la presentazione
pres.save("ErrorBars_out.pptx", slides.export.SaveFormat.PPTX)
Scambiare i dati tra gli assi
Aspose.Slides consente di scambiare rapidamente i dati tra gli assi — i dati rappresentati sull’asse verticale (y) vengono spostati sull’asse orizzontale (x) e viceversa.
Questo codice Python mostra come eseguire lo scambio di dati tra gli assi in un grafico:
import aspose.slides.charts as charts
import aspose.slides as slides
# Crea una presentazione vuota
with slides.Presentation() as pres:
chart = pres.slides[0].shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 100, 100, 400, 300)
#Scambia righe e colonne
chart.chart_data.switch_row_column()
# Salva la presentazione
pres.save("SwitchChartRowColumns_out.pptx", slides.export.SaveFormat.PPTX)
Disattivare l’asse verticale per i grafici a linee
Questo codice Python mostra come nascondere l’asse verticale per un grafico a linee:
import aspose.slides.charts as charts
import aspose.slides as slides
with slides.Presentation() as pres:
chart = pres.slides[0].shapes.add_chart(charts.ChartType.LINE, 100, 100, 400, 300)
chart.axes.vertical_axis.is_visible = False
pres.save("chart-is_visible.pptx", slides.export.SaveFormat.PPTX)
Disattivare l’asse orizzontale per i grafici a linee
Questo codice mostra come nascondere l’asse orizzontale per un grafico a linee:
import aspose.slides.charts as charts
import aspose.slides as slides
with slides.Presentation() as pres:
chart = pres.slides[0].shapes.add_chart(charts.ChartType.LINE, 100, 100, 400, 300)
chart.axes.horizontal_axis.is_visible = False
pres.save("chart-2.pptx", slides.export.SaveFormat.PPTX)
Modificare l’asse di categoria
Utilizzando la proprietà CategoryAxisType, è possibile specificare il tipo di asse di categoria preferito (date o text). Questo codice in Python dimostra l’operazione:
import aspose.slides.charts as charts
import aspose.slides as slides
with slides.Presentation(path + "ExistingChart.pptx") as presentation:
chart = presentation.slides[0].shapes[0]
chart.axes.horizontal_axis.category_axis_type = charts.CategoryAxisType.DATE
chart.axes.horizontal_axis.is_automatic_major_unit = False
chart.axes.horizontal_axis.major_unit = 1
chart.axes.horizontal_axis.major_unit_scale = charts.TimeUnitType.MONTHS
presentation.save("ChangeChartCategoryAxis_out.pptx", slides.export.SaveFormat.PPTX)
Impostare il formato data per il valore dell’asse di categoria
Aspose.Slides per Python via .NET consente di impostare il formato data per un valore dell’asse di categoria. L’operazione è dimostrata in questo codice Python:
import aspose.slides.charts as charts
import aspose.slides as slides
from datetime import date
def to_oadate(dt):
delta = dt - date(1899, 12, 30)
return delta.days + (delta.seconds + delta.microseconds / 1e6) / (24 * 3600)
with slides.Presentation() as pres:
chart = pres.slides[0].shapes.add_chart(charts.ChartType.AREA, 50, 50, 450, 300)
wb = chart.chart_data.chart_data_workbook
wb.clear(0)
chart.chart_data.categories.clear()
chart.chart_data.series.clear()
chart.chart_data.categories.add(wb.get_cell(0, "A2", to_oadate(date(2015, 1, 1))))
chart.chart_data.categories.add(wb.get_cell(0, "A3", to_oadate(date(2016, 1, 1))))
chart.chart_data.categories.add(wb.get_cell(0, "A4", to_oadate(date(2017, 1, 1))))
chart.chart_data.categories.add(wb.get_cell(0, "A5", to_oadate(date(2018, 1, 1))))
series = chart.chart_data.series.add(charts.ChartType.LINE)
series.data_points.add_data_point_for_line_series(wb.get_cell(0, "B2", 1))
series.data_points.add_data_point_for_line_series(wb.get_cell(0, "B3", 2))
series.data_points.add_data_point_for_line_series(wb.get_cell(0, "B4", 3))
series.data_points.add_data_point_for_line_series(wb.get_cell(0, "B5", 4))
chart.axes.horizontal_axis.category_axis_type = charts.CategoryAxisType.DATE
chart.axes.horizontal_axis.is_number_format_linked_to_source = False
chart.axes.horizontal_axis.number_format = "yyyy"
pres.save("test.pptx", slides.export.SaveFormat.PPTX)
Impostare l’angolo di rotazione per il titolo dell’asse del grafico
Aspose.Slides per Python via .NET consente di impostare l’angolo di rotazione per il titolo di un asse del grafico. Questo codice Python dimostra l’operazione:
import aspose.slides.charts as charts
import aspose.slides as slides
with slides.Presentation() as pres:
chart = pres.slides[0].shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 450, 300)
chart.axes.vertical_axis.has_title = True
chart.axes.vertical_axis.title.text_format.text_block_format.rotation_angle = 90
pres.save("test.pptx", slides.export.SaveFormat.PPTX)
Impostare la posizione dell’asse in un asse di categoria o di valore
Aspose.Slides per Python via .NET consente di impostare la posizione dell’asse in un asse di categoria o di valore. Questo codice Python mostra come eseguire l’operazione:
import aspose.slides.charts as charts
import aspose.slides as slides
with slides.Presentation() as pres:
chart = pres.slides[0].shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 450, 300)
chart.axes.horizontal_axis.axis_between_categories = True
pres.save("AsposeScatterChart.pptx", slides.export.SaveFormat.PPTX)
Abilitare l’etichetta dell’unità di visualizzazione sull’asse dei valori del grafico
Aspose.Slides per Python via .NET consente di configurare un grafico per mostrare un’etichetta di unità sul suo asse dei valori. Questo codice Python dimostra l’operazione:
import aspose.slides.charts as charts
import aspose.slides as slides
with slides.Presentation() as pres:
chart = pres.slides[0].shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 450, 300)
chart.axes.vertical_axis.display_unit = charts.DisplayUnitType.MILLIONS
pres.save("Result.pptx", slides.export.SaveFormat.PPTX)
FAQ
Come impostare il valore in cui un asse incrocia l’altro (incrocio degli assi)?
Gli assi offrono un’impostazione di crossing setting: è possibile scegliere di incrociare a zero, al valore massimo di categoria/valore, o a un valore numerico specifico. Questo è utile per spostare l’asse X verso l’alto o verso il basso o per enfatizzare una linea di base.
Come posso posizionare le etichette dei tick rispetto all’asse (accanto, all’esterno, all’interno)?
Imposta la label position su “cross”, “outside” o “inside”. Questo influisce sulla leggibilità e aiuta a risparmiare spazio, soprattutto nei grafici piccoli.