Python で PowerPoint チャートをアニメーション化
Aspose.Slides for Python via .NET はチャート要素のアニメーションをサポートしています。 シリーズ, カテゴリ, シリーズ要素, カテゴリ要素 は ISequence.AddEffect メソッドと 2 つの列挙体 EffectChartMajorGroupingType と EffectChartMinorGroupingType を使用してアニメーション化できます。
チャートシリーズ アニメーション
チャートシリーズをアニメーションさせたい場合、以下の手順に従ってコードを記述してください。
- プレゼンテーションをロードします。
- チャートオブジェクトの参照を取得します。
- シリーズをアニメーションさせます。
- プレゼンテーションファイルを書き込みます。
以下の例では、チャートシリーズをアニメーションさせました。
import aspose.slides.animation as anim;
import aspose.slides as slides
# プレゼンテーション ファイルを表す Presentation クラスのインスタンスを作成します
with slides.Presentation(path + "ExistingChart.pptx") as presentation:
# チャート オブジェクトの参照を取得します
slide = presentation.slides[0]
shapes = slide.shapes
chart = shapes[0]
# シリーズをアニメーション化します
slide.timeline.main_sequence.add_effect(chart,
anim.EffectType.FADE,
anim.EffectSubtype.NONE,
anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart,
anim.EffectChartMajorGroupingType.BY_SERIES, 0,
anim.EffectType.APPEAR,
anim.EffectSubtype.NONE,
anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart,
anim.EffectChartMajorGroupingType.BY_SERIES, 1,
anim.EffectType.APPEAR,
anim.EffectSubtype.NONE,
anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart,
anim.EffectChartMajorGroupingType.BY_SERIES, 2,
anim.EffectType.APPEAR,
anim.EffectSubtype.NONE,
anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart,
anim.EffectChartMajorGroupingType.BY_SERIES, 3,
anim.EffectType.APPEAR,
anim.EffectSubtype.NONE,
anim.EffectTriggerType.AFTER_PREVIOUS)
# 変更されたプレゼンテーションをディスクに保存します
presentation.save("AnimatingSeries_out.pptx", slides.export.SaveFormat.PPTX)
チャートカテゴリ アニメーション
チャートカテゴリをアニメーションさせたい場合、以下の手順に従ってコードを記述してください。
- プレゼンテーションをロードします。
- チャートオブジェクトの参照を取得します。
- カテゴリをアニメーションさせます。
- プレゼンテーションファイルを書き込みます。
以下の例では、チャートカテゴリをアニメーションさせました。
import aspose.slides.animation as anim;
import aspose.slides as slides
with slides.Presentation(path + "ExistingChart.pptx") as presentation:
# チャート オブジェクトの参照を取得します
slide = presentation.slides[0]
shapes = slide.shapes
chart = shapes[0]
# カテゴリ要素をアニメーション化します
slide.timeline.main_sequence.add_effect(chart, anim.EffectType.FADE, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 0, 0, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 0, 1, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 0, 2, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 0, 3, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 1, 0, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 1, 1, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 1, 2, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 1, 3, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 2, 0, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 2, 1, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 2, 2, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 2, 3, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
# プレゼンテーション ファイルをディスクに書き込みます
presentation.save("AnimatingCategoriesElements_out.pptx", slides.export.SaveFormat.PPTX)
シリーズ要素のアニメーション
シリーズ要素をアニメーションさせたい場合、以下の手順に従ってコードを記述してください。
- プレゼンテーションをロードします。
- チャートオブジェクトの参照を取得します。
- シリーズ要素をアニメーションさせます。
- プレゼンテーションファイルを書き込みます。
以下の例では、シリーズ要素をアニメーションさせました。
import aspose.slides.animation as anim;
import aspose.slides as slides
# プレゼンテーションをロードします
with slides.Presentation(path + "ExistingChart.pptx") as presentation:
# チャート オブジェクトの参照を取得します
slide = presentation.slides[0]
shapes = slide.shapes
chart = shapes[0]
# シリーズ要素をアニメーション化します
slide.timeline.main_sequence.add_effect(chart, anim.EffectType.FADE, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_SERIES, 0, 0, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_SERIES, 0, 1, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_SERIES, 0, 2, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_SERIES, 0, 3, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_SERIES, 1, 0, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_SERIES, 1, 1, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_SERIES, 1, 2, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_SERIES, 1, 3, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_SERIES, 2, 0, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_SERIES, 2, 1, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_SERIES, 2, 2, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_SERIES, 2, 3, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
# プレゼンテーション ファイルをディスクに書き込みます
presentation.save("AnimatingSeriesElements_out.pptx", slides.export.SaveFormat.PPTX)
カテゴリ要素のアニメーション
カテゴリ要素をアニメーションさせたい場合、以下の手順に従ってコードを記述してください。
- プレゼンテーションをロードします。
- チャートオブジェクトの参照を取得します。
- カテゴリ要素をアニメーションさせます。
- プレゼンテーションファイルを書き込みます。
以下の例では、カテゴリ要素をアニメーションさせました。
import aspose.slides.animation as anim;
import aspose.slides as slides
with slides.Presentation(path + "ExistingChart.pptx") as presentation:
# チャートオブジェクトの参照を取得します
slide = presentation.slides[0]
shapes = slide.shapes
chart = shapes[0]
# カテゴリ要素をアニメーション化します
slide.timeline.main_sequence.add_effect(chart, anim.EffectType.FADE, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 0, 0, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 0, 1, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 0, 2, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 0, 3, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 1, 0, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 1, 1, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 1, 2, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 1, 3, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 2, 0, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 2, 1, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 2, 2, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
slide.timeline.main_sequence.add_effect(chart, anim.EffectChartMinorGroupingType.BY_ELEMENT_IN_CATEGORY, 2, 3, anim.EffectType.APPEAR, anim.EffectSubtype.NONE, anim.EffectTriggerType.AFTER_PREVIOUS)
# プレゼンテーションファイルをディスクに書き込みます
presentation.save("AnimatingCategoriesElements_out.pptx", slides.export.SaveFormat.PPTX)
FAQ
通常の図形と同様に、チャートでも異なるエフェクトタイプ(例: 入場、強調、終了)がサポートされていますか?
はい。チャートは図形として扱われるため、入場、強調、終了を含む標準的なアニメーション効果タイプがサポートされており、スライドのタイムラインとアニメーションシーケンスを通じて完全に制御できます。
チャートのアニメーションとスライド遷移を組み合わせられますか?
はい。Transitionsはスライド全体に適用され、アニメーション効果はスライド上のオブジェクトに適用されます。同一のプレゼンテーションで両方を併用でき、個別に制御できます。
PPTX に保存するときにチャートアニメーションは保持されますか?
はい。save to PPTXを使用すると、すべてのアニメーション効果とその順序が保持されます。これはプレゼンテーションのネイティブなアニメーションモデルの一部であるためです。
既存のプレゼンテーションからチャートアニメーションを読み取り、変更できますか?
はい。APIを使用すると、スライドのタイムライン、シーケンス、エフェクトにアクセスでき、既存のチャートアニメーションを確認し、最初からすべてを再作成せずに調整できます。
Aspose.Slides for Python via .NET を使用して、チャートアニメーションを含むビデオを作成できますか?
はい。export a presentation to video を使用すれば、アニメーションを保持したままビデオにエクスポートでき、タイミングやその他のエクスポート設定を構成して、生成されたクリップがアニメーション再生を反映するようにできます。