チャートの操作
新しい insert_chart メソッドが DocumentBuilder クラスに追加されました。それでは、DocumentBuilder.insert_chart メソッドを使用して単純な縦棒グラフをドキュメントに挿入する方法を見てみましょう。
グラフを挿入する方法
このセクションでは、ドキュメントにグラフを挿入する方法を学習します。
縦棒グラフの挿入
次のコード例は、縦棒グラフを挿入する方法を示しています。
このコードは次の結果を生成します。
add、add_double、および add_date メソッドがあり、すべてのチャート タイプのデータ ソースの可能なすべてのバリアントをカバーするために公開されました。
このコードは次の結果を生成します。
散布図の挿入
以下の例は、散布図を挿入する方法を示しています。
このコードは次の結果を生成します。
面グラフの挿入
次のコード例は、面グラフを挿入する方法を示しています。
このコードは次の結果を生成します。
バブル チャートの挿入
次のコード例は、バブル チャートを挿入する方法を示しています。
このコードは次の結果を生成します。
Shape.chart オブジェクトを使用したグラフの操作
グラフを挿入してデータを入力したら、その外観を変更できます。 Shape.chart プロパティには、パブリック API を通じて使用できるすべてのチャート関連のオプションが含まれています。
たとえば、Chart タイトルまたは凡例の動作を変更してみましょう。
このコードは次の結果を生成します。
ChartSeries のチャートのコレクションの操作方法
ChartSeries コレクションを見てみましょう。すべてのチャート シリーズは Chart.series コレクションを通じて利用できます。
シリーズを 1 つずつ削除したり、すべてをクリアしたり、必要に応じて新しいシリーズを追加したりできます。新しく挿入されたグラフには、このコレクションにいくつかのデフォルト シリーズが追加されています。それらを削除するには、chart.series.clear() メソッドを呼び出す必要があります。
単一の ChartSeries クラスの操作
特定のシリーズを操作する方法は次のとおりです。
以下の結果をご覧ください。
すべての単一 ChartSeries にはデフォルトの ChartDataPoint オプションがあります。次のコードを使用してそれらを変更してみてください。
以下の結果をご覧ください。
ChartSeries
の単一の ChartDataPoint を操作する方法
ChartDataPoint を使用すると、グラフ シリーズの単一のデータ ポイントの書式設定をカスタマイズできます。
以下の結果をご覧ください。
単一の ChartSeries の ChartDataLabel を操作する方法
ChartDataLabel を使用すると、LegendKey、CategoryName、SeriesName、Value などの表示/非表示など、グラフ シリーズの単一のデータ ラベルの書式設定を指定できます。
以下の結果をご覧ください。
ChartSeries の ChartDataLabels のデフォルト オプションを定義する方法
ChartDataLabelCollection クラスは、チャート シリーズの ChartDataLabels のデフォルト オプションを設定するために使用できるプロパティを定義します。これらのプロパティには、show_category_name、show_bubble_size、show_percentage、show_series_name、show_value などが含まれます。
以下の結果をご覧ください。
チャートデータラベルの番号をフォーマットする方法
ChartDataLabel.number_format を使用すると、グラフの単一のデータ ラベルの数値書式設定を指定できます。
次のコード例は、データ ラベルの数値をフォーマットする方法を示しています。
グラフ軸のプロパティを設定する方法
グラフの軸、スケーリング、値軸の表示単位を操作する場合は、ChartAxis、AxisDisplayUnit、および AxisScaling クラスを使用してください。
次のコード例は、X 軸と Y 軸のプロパティを定義する方法を示しています。
軸のDate時間値の設定方法
次のコード例は、日付/時刻値を軸プロパティに設定する方法を示しています。
軸の数値をフォーマットする方法
次のコード例は、値軸の数値の形式を変更する方法を示しています。
軸の境界を設定する方法
AxisBound クラスは、軸値の最小値または最大値の境界を表します。 Bound は、数値、日時、または特別な「自動」値として指定できます。
次のコード例は、軸の境界を設定する方法を示しています。
ラベル間の間隔単位の設定方法
次のコード例は、軸上のラベル間の間隔単位を設定する方法を示しています。
グラフの軸を非表示にする方法
グラフの軸を表示または非表示にしたい場合は、ChartAxis.hidden プロパティの値を設定するだけでこれを実現できます。
次のコード例は、グラフの Y 軸を非表示にする方法を示しています。
グラフのラベルを揃える方法
複数行ラベルのテキスト配置を設定したい場合は、ChartAxis.tick_label_alignment プロパティの値を設定するだけでこれを実現できます。
次のコード例は、ラベルの配置をチェックする方法を示しています。
塗りつぶしとストロークの書式設定を設定する方法
塗りつぶしとストロークの書式設定は、グラフ シリーズ、データ ポイント、マーカーに設定できます。これを行うには、ChartSeries、ChartDataPoint、および ChartMarker クラスの ChartFormat タイプのプロパティを使用するだけでなく、Stroke クラスの fore_color、back_color、visible、transparency などの一部のプロパティのエイリアスを使用する必要があります。
次のコード例は、シリーズの色を設定する方法を示しています。
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
shape = builder.insert_chart(aw.drawing.charts.ChartType.COLUMN, 432, 252)
chart = shape.chart
seriesColl = chart.series
# Delete default generated series.
seriesColl.clear()
# Create category names array.
categories = [ "AW Category 1", "AW Category 2" ]
# Adding new series. Value and category arrays must be the same size.
series1 = seriesColl.add("AW Series 1", categories, [ 1, 2 ])
series2 = seriesColl.add("AW Series 2", categories, [ 3, 4 ])
series3 = seriesColl.add("AW Series 3", categories, [ 5, 6 ])
# Set series color.
series1.format.fill.fore_color = drawing.Color.red
series2.format.fill.fore_color = drawing.Color.yellow
series3.format.fill.fore_color = drawing.Color.blue
doc.save(docs_base.artifacts_dir + "WorkingWithCharts.set_series_color.docx")
次のコード例は、線の色と太さを設定する方法を示しています。
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
shape = builder.insert_chart(aw.drawing.charts.ChartType.LINE, 432, 252)
chart = shape.chart
seriesColl = chart.series
# Delete default generated series.
seriesColl.clear()
# Adding new series.
series1 = seriesColl.add_double("AW Series 1", [ 0.7, 1.8, 2.6 ], [ 2.7, 3.2, 0.8 ])
series2 = seriesColl.add_double("AW Series 2", [ 0.5, 1.5, 2.5 ], [ 3, 1, 2 ])
# Set series color.
series1.format.stroke.fore_color = drawing.Color.red
series1.format.stroke.weight = 5
series2.format.stroke.fore_color = drawing.Color.light_green
series2.format.stroke.weight = 5
doc.save(docs_base.artifacts_dir + "WorkingWithCharts.line_color_and_weight.docx")