使用 Python 在簡報中自訂圖表圖例

概觀

Aspose.Slides 提供在 PowerPoint 簡報中自訂圖表圖例的選項。本文件說明如何設定圖例的位置與大小、為整個圖例設定字型大小,以及對單一圖例項目套用格式設定。

文件亦在 FAQ 中說明多項相關行為,包括使用非覆蓋模式讓繪圖區留出空間給圖例、允許長圖例標籤自動換列或使用換行符號,以及在未明確設定文字與填色時,讓圖例格式繼承簡報主題的配色方案。

圖例定位

若要設定圖例屬性,請依照以下步驟操作:

  1. 建立 Presentation 類別的執行個體。
  2. 取得投影片的參考。
  3. 在投影片上新增圖表。
  4. 設定圖例屬性。
  5. 將簡報儲存為 PPTX 檔。

以下範例示範如何設定圖表圖例的位置與大小。

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ChartType, Presentation, SaveFormat

# 建立空白簡報。
presentation = Presentation()
try:
    # 取得投影片的參考。
    slide = presentation.getSlides().get_Item(0)

    # 在投影片上加入叢集直條圖。
    chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 500, 500)

    # 設定圖例屬性。
    legend = chart.getLegend()
    legend.setX(50 / chart.getWidth())
    legend.setY(50 / chart.getHeight())
    legend.setWidth(100 / chart.getWidth())
    legend.setHeight(100 / chart.getHeight())

    # 將簡報儲存至磁碟。
    presentation.save("Legend_out.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

設定圖例的字型大小

Aspose.Slides for Python via Java 允許您設定圖例的字型大小。請依照以下步驟操作:

  1. 實例化 Presentation 類別。
  2. 建立預設圖表。
  3. 設定字型大小。
  4. 設定最小軸值。
  5. 設定最大軸值。
  6. 將簡報儲存至磁碟。
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ChartType, Presentation, SaveFormat

# 建立空白簡報。
presentation = Presentation()
try:
    chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400)

    chart.getLegend().getTextFormat().getPortionFormat().setFontHeight(20)

    vertical_axis = chart.getAxes().getVerticalAxis()
    vertical_axis.setAutomaticMinValue(False)
    vertical_axis.setMinValue(-5)
    vertical_axis.setAutomaticMaxValue(False)
    vertical_axis.setMaxValue(10)

    presentation.save("output.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

設定單一圖例項目的字型大小

Aspose.Slides for Python via Java 允許您設定單一圖例項目的字型大小。請依照以下步驟操作:

  1. 實例化 Presentation 類別。
  2. 建立預設圖表。
  3. 存取圖例項目。
  4. 設定字型大小。
  5. 將簡報儲存至磁碟。
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ChartType, FillType, NullableBool, Presentation, SaveFormat

Color = jpype.JClass("java.awt.Color")

# 建立空白簡報。
presentation = Presentation()
try:
    chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400)

    text_format = chart.getLegend().getEntries().get_Item(1).getTextFormat()
    portion_format = text_format.getPortionFormat()

    portion_format.setFontBold(NullableBool.True_)
    portion_format.setFontHeight(20)
    portion_format.setFontItalic(NullableBool.True_)
    portion_format.getFillFormat().setFillType(FillType.Solid)
    portion_format.getFillFormat().getSolidFillColor().setColor(Color.BLUE)

    presentation.save("output.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

常見問題

我可以啟用圖例,使圖表自動為其分配空間而不是覆蓋嗎?

可以。使用 setOverlay 並將參數設為 False 以啟用非覆蓋模式;此時繪圖區會縮小以容納圖例。

我可以製作多行圖例標籤嗎?

可以。當空間不足時,長標籤會自動換列;亦可在系列名稱中加入換行字元以強制換行。

如何讓圖例遵循簡報主題的配色方案?

請不要為圖例或其文字設定明確的顏色、填色或字型。如此一來,圖例會從主題繼承設定,且在版面設計變更時會正確更新。