チャートの操作

チャートの操作

チャートの操作

Aspose.Words FOSS for .NET は、ネイティブな Word チャート(Word 自体が作成する DrawingML チャートと同じもの)を描画レイヤーのシェイプとして挿入できます。DocumentBuilder.InsertChart はシェイプを作成して返します;シェイプの Chart プロパティは、系列、軸、凡例、書式設定を公開します。本ガイドでは、チャートの作成、チャートタイプの選択、系列およびデータ ポイントの操作、軸とグリッドライン、そしてチャート要素の書式設定について説明します。


チャートの作成

カーソル位置にチャート シェイプを挿入し、包含される Shape を取得するには、DocumentBuilder.InsertChart(chartType, width, height) を呼び出します。その Chart プロパティは、設定する Chart オブジェクトです。新しく挿入されたチャートにはプレースホルダーのデモ系列が含まれているので、ChartSeriesCollection.Add(seriesName, categories, values) で実データを追加する前に Chart.Series をクリアしてください:

using Aspose.Words;
using Aspose.Words.Drawing.Charts;

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;

// Delete default generated series.
chart.Series.Clear();

string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });

doc.Save("chart.docx");

この例では、Document を構築し、DocumentBuilder.InsertChart(ChartType.Line, 432, 252) を使用して折れ線グラフ シェイプを挿入し、shape.Chart を読み取って Chart オブジェクトを取得し、chart.Series.Clear() を呼び出してプレースホルダー系列を削除し、chart.Series.Add(seriesName, categories, values) で実際の系列を1つ追加し、Document.Save で結果を書き出します。


チャートの種類

ChartType は標準的な Word チャート ファミリーをカバーします — Line、Bar、Column(それらの Stacked、PercentStacked、3D バリアントを含む)、Pie、PieOfPie、Doughnut、Area、Scatter、Bubble、Radar、Stock、Surface、および新しい Word 2016 のチャート タイプ Treemap、Sunburst、Histogram、Pareto、BoxAndWhisker、Waterfall を含みます。目的の値を chartType 引数として InsertChart に渡してください;挿入後に既存のチャートのタイプを変更する方法は、シェイプを置き換える以外にありません。


シリーズとデータポイント

Chart.Series は ChartSeries オブジェクトの ChartSeriesCollection です。上記で使用した Add(seriesName, categories, values) のオーバーロードに加えて、ChartSeriesCollection には X/Y 値ペア、日付、バブルサイズ用のオーバーロードがあり、さらに Insert、Remove(index)、Clear() が用意されています。各 ChartSeries は、ポイントごとの書式設定用の DataPoints(ChartDataPointCollection)を公開します — Format、Marker、Explosion、InvertIfNegative — そして HasDataLabels / DataLabels によって ChartDataLabelCollection(ShowValue、ShowCategoryName、ShowPercentage、Position)を有効化および設定できます。


軸とグリッドライン

Chart.AxisX、AxisY、および AxisZ は ChartAxis オブジェクトです(Chart.Axes はそれらすべてを反復処理するための ChartAxisCollection として機能します)。各軸は HasMajorGridlines / HasMinorGridlines、MajorUnit / MinorUnit(対応する *IsAuto フラグ付き)、Crosses / CrossesAt、CategoryType、そしてラベルのフォントと向き用の TickLabels オブジェクト(AxisTickLabels)を持ちます。ChartAxis.Title(ChartAxisTitle)は、その Text と Show プロパティを通じて軸キャプションテキストを設定します。


凡例、タイトル、データテーブル

Chart.Title(ChartTitle)はチャート全体のキャプションを設定します — Text、Show、および Font。Chart.Legend(ChartLegend)は、Position(LegendPosition の値で、Bottom、Right、または Top など)を通じて凡例の表示有無と位置を制御し、個別の LegendEntries を公開します。Chart.DataTable(ChartDataTable)は、プロット領域下部に基礎となるシリーズ値をテーブルとして表示でき、Show、HasLegendKeys、およびボーダートグルを備えています。


チャート要素の書式設定

ほとんどのチャート要素 — シリーズ、データポイント、軸、タイトル、そして凡例 — は、タイプ ChartFormat の Format プロパティを公開し、これによりその要素の色用の Fill と Stroke が取得でき、さらにデータポイントのマーカー形状用の ShapeType(ChartShapeType)が提供されます。ChartFormat.SetDefaultFill() は要素をテーマベースのデフォルト外観にリセットします。


ヒントとベストプラクティス

  • 実データを追加する前に、プレースホルダー系列(chart.Series.Clear())を必ずクリアまたは置き換えてください — 新しく挿入したチャートにはサンプルデータがすでに含まれています。
  • データ形状(カテゴリ、X/Y ペア、日付、またはバブルサイズ)に合った ChartSeriesCollection.Add のオーバーロードを使用し、すべてをカテゴリ/値ペアに強制的に入れるのは避けてください。
  • 系列に HasDataLabels = true を設定してから、その DataLabels コレクションを構成してください — ラベルがオフになっている間、コレクションの表示プロパティは目に見える効果がありません。
  • クラシック形式と Word-2016 スタイルのチャートで異なるグリッド線や軸の動作に依存する前に、Chart.ChartSpace を読むか、特定の ChartType を確認してください。
  • 要素の外観をリセットしたい場合は、すべての塗りつぶしプロパティを手動でクリアするよりも ChartFormat.SetDefaultFill() を使用する方が望ましいです。

一般的な問題

問題原因修正
新しいチャートが予期しないデモデータを表示しますInsertChart がプレースホルダーシリーズでチャートをシードします独自のシリーズを追加する前に chart.Series.Clear() を呼び出してください
データラベルが表示されませんHasDataLabels が DataLabels を構成する前に、シリーズに設定されていませんでしたseries.HasDataLabels = true を設定し、series.DataLabels 上の ShowValue/ShowCategoryName を構成します。
値軸にグリッドラインが表示されません。HasMajorGridlines/HasMinorGridlines はその軸のデフォルトで false です。設定 chart.AxisY.HasMajorGridlines = true(必要に応じて HasMinorGridlines)
凡例が表示されません。Chart.Legend.Position は LegendPosition.None に設定されています。Position を Bottom、Right、Top、Left、または TopRight に設定します。

FAQ

ドキュメントにチャートを挿入するにはどうすればよいですか?

DocumentBuilder.InsertChart(chartType, width, height) を呼び出します。これにより、包含する Shape が返されます。その Chart プロパティを読み取ってチャートを構成します。

チャートにデータを追加するにはどうすればよいですか?

chart.Series.Clear() でプレースホルダー系列をクリアし、次に chart.Series.Add(seriesName, categories, values) を呼び出します(または X/Y、日付、バブル データ用の他の Add オーバーロードのいずれか)。

利用可能なチャートタイプはどれですか?

ChartType には、クラシック系(Line、Bar、Column、Pie、Area、Scatter、Bubble、Radar、Stock、Surface、およびそれらの積み上げ型と 3D バリアント)と、Word 2016 のチャートタイプ(Treemap、Sunburst、Histogram、Pareto、BoxAndWhisker、Waterfall)が含まれます。

凡例の表示位置を変更するにはどうすればよいですか?

Chart.Legend.Position を LegendPosition の値に設定します。例えば LegendPosition.Bottom や LegendPosition.Right です。

個別のデータポイントを、その系列の他のポイントとは異なる形式で設定できますか?

はい — ChartSeries.DataPoints(ChartDataPointCollection)にインデックスし、その ChartDataPoint の Format、Marker、または Explosion を、系列レベルの書式設定とは独立して設定します。


API Reference の概要

クラス/メソッド説明
DocumentBuilder.InsertChartカーソルにチャート シェイプを挿入し、返します。
Chartチャート構成オブジェクト、Shape.Chart を介して取得できます。
ChartType利用可能なチャートタイプの列挙(line、bar、pie、Word-2016 のチャートタイプ)。
ChartSeriesCollection / ChartSeriesチャートのデータ系列と、それらを追加、挿入、または削除するメソッド。
ChartDataPointCollection / ChartDataPointシリーズ内のポイントごとの書式設定。
ChartDataLabelCollection / ChartDataLabelチャートポイントに表示される値/カテゴリ ラベル。
ChartAxis / ChartAxisCollection軸の設定 — グリッドライン、単位、交差点、目盛ラベル。
ChartLegend / LegendPosition凡例の表示可否と配置。
ChartTitleチャート全体のキャプション。
ChartDataTableプロット領域の下に表示される、シリーズ値のオプションテーブル。
ChartFormatほとんどのチャート要素で共有される、塗り、ストローク、形状の書式設定。

参照

 日本語