.NET でプレゼンテーションのチャート凡例をカスタマイズする
概要
Aspose.Slides for .NET は、PowerPoint プレゼンテーションにおけるチャート凡例のカスタマイズオプションを提供します。この記事では、凡例の位置とサイズの設定、凡例全体のフォントサイズの設定、個々の凡例エントリの書式設定、選択したエントリの非表示または復元方法を示します。
FAQ では、凡例のスペース確保、複数行ラベルの表示、プレゼンテーションテーマからの書式継承など、関連する動作について説明します。
凡例の位置指定
凡例の X, Y, Width および Height プロパティを使用して、チャートの寸法に対する割合で位置とサイズを指定します。
この例では、プレゼンテーションを作成し、デフォルトデータを使用したクラスター化列グラフを最初のスライドに追加します。目的の凡例のオフセットと寸法をチャートの幅と高さで割ることで相対値に変換します。凡例はチャートの左上隅から 50 ポイントオフセットし、サイズは 100×100 ポイントになります。
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 50, 50, 500, 500);
// Express the legend's position and size relative to the chart.
chart.Legend.X = 50 / chart.Width;
chart.Legend.Y = 50 / chart.Height;
chart.Legend.Width = 100 / chart.Width;
chart.Legend.Height = 100 / chart.Height;
presentation.Save("legend_position.pptx", SaveFormat.Pptx);
凡例のフォントサイズの設定
凡例の TextFormat を使用してテキスト書式にアクセスし、FontHeight をポイントで設定します。
この例では、デフォルトデータのチャートを作成し、凡例テキストを 20 ポイントに設定します。また、縦軸の自動範囲を無効にし、範囲を -5 から 10 に設定します。
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 50, 50, 600, 400);
chart.Legend.TextFormat.PortionFormat.FontHeight = 20;
chart.Axes.VerticalAxis.IsAutomaticMinValue = false;
chart.Axes.VerticalAxis.MinValue = -5;
chart.Axes.VerticalAxis.IsAutomaticMaxValue = false;
chart.Axes.VerticalAxis.MaxValue = 10;
presentation.Save("legend_font_size.pptx", SaveFormat.Pptx);
個別の凡例エントリのフォントサイズの設定
凡例の Entries コレクションを使用して特定のエントリの書式にアクセスします。エントリのインデックスはゼロベースなので、インデックス 1 は2番目のエントリを指します。
この例では、デフォルトデータに少なくとも2つの系列が含まれるクラスター化列グラフを作成します。2番目の凡例エントリを太字・斜体・20ポイントの青色テキストで書式設定します。
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 50, 50, 600, 400);
var textFormat = chart.Legend.Entries[1].TextFormat;
textFormat.PortionFormat.FontBold = NullableBool.True;
textFormat.PortionFormat.FontHeight = 20;
textFormat.PortionFormat.FontItalic = NullableBool.True;
textFormat.PortionFormat.FillFormat.FillType = FillType.Solid;
textFormat.PortionFormat.FillFormat.SolidFillColor.Color = Color.Blue;
presentation.Save("legend_entry_format.pptx", SaveFormat.Pptx);
個別の凡例エントリを非表示にする
補助系列をデータは表示したまま凡例から除外するには、ILegendEntryProperties.Hide を true に設定し、IChartSeries.RelatedLegendEntry を介して行います。これにより選択した凡例エントリのみが非表示になり、系列やデータポイントは削除されません。対照的に、IChart.HasLegend を false に設定すると、凡例全体が非表示になります。
以下の例では、デフォルトデータを使用して複数系列のクラスター化列グラフを作成します。第2系列の凡例エントリ(インデックス 1)を非表示にしてプレゼンテーションを保存します。その後、Hide を false に設定してエントリを復元し、2番目のコピーを保存します。列は両方のファイルで表示されたままです。
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 50, 50, 600, 200);
chart.HasLegend = true;
var legendEntry = chart.ChartData.Series[1].RelatedLegendEntry;
legendEntry.Hide = true;
presentation.Save("hidden_legend_entry.pptx", SaveFormat.Pptx);
// チャートデータを変更せずに同じエントリを復元します。
legendEntry.Hide = false;
presentation.Save("restored_legend_entry.pptx", SaveFormat.Pptx);
以下の比較では、すべてのエントリが表示され、シリーズ 2 が凡例から非表示になったチャートの比較;すべての列は表示されたままです。

柱状、棒、折れ線チャートでは、凡例エントリは系列を識別します。円グラフでは、個々のデータポイント(スライス)を識別するため、代わりに選択したスライスに対して IChartDataPoint.RelatedLegendEntry を使用します。API はこのデータポイントプロパティを Pie, Pie3D, ExplodedPie, ExplodedPie3D, PieOfPie, BarOfPie の各チャートタイプに対してドキュメント化しています。ドーナツチャートには適用されないことに注意してください。
よくある質問
チャートが凡例の上に重なるのではなく、凡例のためにスペースを確保するようにできますか?
はい。Overlay を false に設定すると、プロット領域に重ねるのではなく凡例用のスペースを確保できます。
複数行の凡例ラベルを作成できますか?
はい。利用可能な幅が不足している場合、長いラベルは折り返されます。系列名に改行文字を含めて改行を指定することもできます。
凡例をプレゼンテーションテーマのカラースキームに従わせるにはどうすればよいですか?
凡例の色、塗りつぶし、フォントを設定しないままにしておくと、テーマの書式設定を継承します。明示的な書式設定は対応するテーマ設定を上書きします。