使用 Python 在簡報中自訂圖表圖例
Contents
[
Hide
]
概觀
Aspose.Slides 提供在 PowerPoint 簡報中自訂圖表圖例的選項。本文件說明如何設定圖例的位置與大小、為整個圖例設定字型大小,以及對單一圖例項目套用格式設定。
文件亦在 FAQ 中說明多項相關行為,包括使用非覆蓋模式讓繪圖區留出空間給圖例、允許長圖例標籤自動換列或使用換行符號,以及在未明確設定文字與填色時,讓圖例格式繼承簡報主題的配色方案。
圖例定位
若要設定圖例屬性,請依照以下步驟操作:
- 建立 Presentation 類別的執行個體。
- 取得投影片的參考。
- 在投影片上新增圖表。
- 設定圖例屬性。
- 將簡報儲存為 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 允許您設定圖例的字型大小。請依照以下步驟操作:
- 實例化 Presentation 類別。
- 建立預設圖表。
- 設定字型大小。
- 設定最小軸值。
- 設定最大軸值。
- 將簡報儲存至磁碟。
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 允許您設定單一圖例項目的字型大小。請依照以下步驟操作:
- 實例化 Presentation 類別。
- 建立預設圖表。
- 存取圖例項目。
- 設定字型大小。
- 將簡報儲存至磁碟。
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 以啟用非覆蓋模式;此時繪圖區會縮小以容納圖例。
我可以製作多行圖例標籤嗎?
可以。當空間不足時,長標籤會自動換列;亦可在系列名稱中加入換行字元以強制換行。
如何讓圖例遵循簡報主題的配色方案?
請不要為圖例或其文字設定明確的顏色、填色或字型。如此一來,圖例會從主題繼承設定,且在版面設計變更時會正確更新。