Python を使用したプレゼンテーションのチャート データテーブルのカスタマイズ

概要

Aspose.Slides for Python via Java を使用すると、チャートのデータテーブルを表示し、テキストの書式設定、枠線、凡例キーをカスタマイズできます。この記事では、テーブルの有効化、テキストの書式設定、各種枠線の制御、および凡例キーの表示/非表示の方法を説明します。例では、設定したチャートを PPTX ファイルに保存します。

フォント プロパティの設定

チャートのデータテーブルを表示するには、True を setDataTable に渡します。getChartDataTable を使用してテーブルにアクセスし、テキストの書式設定を構成します。

  1. Presentation クラスを使用してプレゼンテーションをロードします。
  2. 最初のスライドにクラスター化された縦棒グラフを追加します。
  3. チャートのデータテーブルを有効にします。
  4. setFontBold で太字を有効にし、setFontHeight に 20 を渡して 20 ポイントのテキストにします。
  5. 変更したプレゼンテーションを保存します。

次の例では、作業ディレクトリに少なくとも 1 枚のスライドが含まれる test.pptx が必要です。位置 (50, 50) に幅 600 ポイント、高さ 400 ポイントのデフォルト データのチャートを追加します。保存された output.pptx には、データテーブルが有効化され、指定したフォント設定が適用されたチャートが含まれます。

import jpype
import asposeslides

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

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

presentation = Presentation("test.pptx")
try:
    slide = presentation.getSlides().get_Item(0)

    chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400)
    chart.setDataTable(True)

    portion_format = chart.getChartDataTable().getTextFormat().getPortionFormat()
    portion_format.setFontBold(NullableBool.True_)
    portion_format.setFontHeight(20)

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

データテーブルの枠線をカスタマイズ

Chart.setDataTable でテーブルを有効にし、Chart.getChartDataTable で取得します。以下の 3 種類の枠線を個別に制御できます。

各メソッドに True を渡すと枠線が表示され、False を渡すと非表示になります。次の例は、デフォルト データのクラスター化縦棒グラフを作成し、水平枠線と外枠を表示し、垂直枠線を非表示にします。入力ファイルは不要です。チャートの位置とサイズはポイント単位で指定します。

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, 600, 400)
    chart.setDataTable(True)

    data_table = chart.getChartDataTable()
    data_table.setBorderHorizontal(True)
    data_table.setBorderVertical(False)
    data_table.setBorderOutline(True)

    presentation.save("data-table-borders.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

以下の比較は、同じチャート データと凡例キー設定を 4 つのケースで使用しています。すべての枠線を有効にした状態から、残りのバリアントはそれぞれ 1 つの枠線設定だけを無効にします。左下のバリアントが例の枠線設定と一致します。

すべての枠線が有効、水平枠線なし、垂直枠線なし、外枠なしのチャート データテーブル

凡例キーの表示または非表示

凡例キーは、データテーブルの系列名の横に表示される小さな色付きマーカーです。テーブルの各行をチャートの系列に対応させるのに役立ちます。setShowLegendKey に True を渡すとこれらのマーカーが表示され、False を渡すと非表示にできます。

個別のチャート凡例は Chart.setLegend で制御します。これらの設定は独立しており、個別凡例を非表示にしてもデータテーブル内のキーは非表示にならず、テーブルのキーを非表示にしても個別凡例は影響を受けません。

次の例は、デフォルト データのチャートを作成し、データテーブルを有効にして凡例キーを表示し、個別凡例を非表示にします。すべてのテーブル枠線は明示的に有効化されています。入力プレゼンテーションは不要です。テーブルのキーだけを非表示にしたい場合は、setShowLegendKey に False を渡します。

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, 600, 400)
    chart.setDataTable(True)
    chart.setLegend(False)

    data_table = chart.getChartDataTable()
    data_table.setBorderHorizontal(True)
    data_table.setBorderVertical(True)
    data_table.setBorderOutline(True)
    data_table.setShowLegendKey(True)

    presentation.save("data-table-legend-keys.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

以下の比較は、凡例キーが有効なテーブルと無効なテーブルを同じチャートで示しています。すべての枠線は引き続き有効で、個別のチャート凡例は両方のケースで非表示です。

左側に凡例キーが表示され、右側に非表示のチャート データテーブル

よくある質問

チャートのデータテーブルに凡例キーを表示できますか?

はい。True を setShowLegendKey に渡すと凡例キーが表示され、False を渡すと非表示にできます。

PDF、HTML、画像にエクスポートする際にデータテーブルは保持されますか?

はい。Aspose.Slides はスライドの一部としてチャートと表示されたデータテーブルをレンダリングし、PDF、HTML、画像 にエクスポートします。

テンプレートからロードしたチャートのデータテーブルを操作できますか?

はい。既存のプレゼンテーションまたはテンプレートからロードしたチャートについては、hasDataTable と setDataTable を使用して、データテーブルが表示されているかどうかを確認または変更できます。

データテーブルが有効になっているチャートを検索する方法は?

各スライドのシェイプを列挙し、チャートを特定して、hasDataTable メソッドを呼び出します。戻り値が True の場合、データテーブルが有効になっていることを示します。