チャートの作成と管理
チャートの作成
単純なチャートの作成
以下の例コードを使用して、Aspose.Cells for Python via .NETでチャートを簡単に作成できます:
from aspose.cells import Workbook | |
from aspose.cells.charts import ChartType | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Instantiating a Workbook object | |
workbook = Workbook() | |
# Obtaining the reference of the first worksheet | |
worksheet = workbook.worksheets[0] | |
# Adding sample values to cells | |
worksheet.cells.get("A2").put_value("Category1") | |
worksheet.cells.get("A3").put_value("Category2") | |
worksheet.cells.get("A4").put_value("Category3") | |
worksheet.cells.get("B1").put_value("Column1") | |
worksheet.cells.get("B2").put_value(4) | |
worksheet.cells.get("B3").put_value(20) | |
worksheet.cells.get("B4").put_value(50) | |
worksheet.cells.get("C1").put_value("Column2") | |
worksheet.cells.get("C2").put_value(50) | |
worksheet.cells.get("C3").put_value(100) | |
worksheet.cells.get("C4").put_value(150) | |
# Adding a chart to the worksheet | |
chartIndex = worksheet.charts.add(ChartType.COLUMN, 5, 0, 15, 5) | |
# Accessing the instance of the newly added chart | |
chart = worksheet.charts[chartIndex] | |
# Setting chart data source as the range "A1:C4" | |
chart.set_chart_data_range("A1:C4", True) | |
# Saving the Excel file | |
workbook.save(dataDir + "output.xls") |
チャート作成のための注意事項
チャートを作成する前に、Aspose.Cells for Python via .NETを使用したチャート作成時に役立つ基本的な概念を理解することが重要です。
チャートオブジェクト
Aspose.Cells for Python via .NETは、Aspose.Cells for Python via .NETがサポートするチャートを作成するために使用されるAspose.Cells.Charts名前空間内の特殊なクラスセットを提供します。これらのクラスは、チャート作成オブジェクトを作成するために使用され、これらはチャートの構成要素として機能します。チャート作成オブジェクトは以下の通りです:
- シリーズ、チャート内の単一のデータシリーズ。
- 軸、チャートの軸。
- Chart, 単一のExcelグラフ。
- ChartArea, ワークシート内のグラフエリア。
- ChartDataTable, グラフデータテーブル。
- ChartFrame, グラフ内のフレームオブジェクト。
- ChartPoint, グラフ内のシリーズの単一のポイント。
- ChartPointCollection, 1つのシリーズ内のすべてのポイントを含むコレクション。
- Charts, Chartオブジェクトのコレクション。
- DataLabels, 指定されたシリーズのすべてのDataLabelオブジェクトのコレクション。
- FillFormat, シェイプの塗りつぶし形式。
- Floor, 3Dグラフの床。
- Legend, グラフの凡例。
- Line, グラフの線。
- SeriesCollection, Seriesオブジェクトのコレクション。
- TickLabels, グラフ軸の目盛りのラベル。
- Title, グラフまたは軸のタイトル。
- Trendline, グラフ内のトレンドライン。
- TrendlineCollection, 指定されたデータシリーズのすべてのTrendlineオブジェクトのコレクション。
- Walls, 3Dグラフの壁。
Chartingオブジェクトの使用
上記のように、すべてのチャートオブジェクトはそれぞれのクラスのインスタンスであり、特定のタスクを実行するための特定のプロパティとメソッドを提供します。チャートオブジェクトを使用して、チャートを作成します。
ワークシートに任意の種類のチャートを追加するには、chartsのコレクションを使用します。chartsのコレクション内の各アイテムはChartオブジェクトを表します。Chartオブジェクトはグラフの外観をカスタマイズするために必要な他のすべてのチャートオブジェクトをカプセル化します。次のセクションでは、いくつかの基本的なチャートオブジェクトを使用して、単純なチャートを作成する方法を示します。
Aspose.Cells for Python via .NETを使用したチャートの作成
手順:
- Cellオブジェクトのput_valueメソッドを使用してワークシートセルにデータを追加します。 これはグラフのデータソースとして使用されます。
- chartsコレクションのaddメソッドを呼び出してワークシートにチャートを追加します。これはWorksheetオブジェクトにカプセル化されています。
- ChartType列挙型を使用してチャートのタイプを指定します。 たとえば、以下の例では、ChartType.PYRAMID値をチャートの種類として使用しています。
- インデックスを渡してchartsコレクションから新しいChartオブジェクトをアクセスします。
- Chartオブジェクトにカプセル化されたチャートの管理に使用できるいずれかのチャートオブジェクトを使用します。 以下の例では、SeriesCollectionチャートオブジェクトを使用して、チャートのデータソースを指定します。
チャートにソースデータを追加する場合、データソースはセルの範囲(“A1:C3"など)、非連続セルのシーケンス(“A1, A3, A5"など)、値のシーケンス(“1,2,3"など)のいずれかです。
これらの一般的な手順を使用すると、任意のタイプのチャートを作成できます。異なるチャートオブジェクトを使用して、異なるチャートを作成します。
Aspose.Cells for Python via .NETを使用すると、多種多様なチャートを作成できます。Aspose.Cells for Python via .NETがサポートするすべての標準チャートは、Aspose.Cells.Charts.ChartTypeと呼ばれる列挙体に事前定義されています。
事前定義されたチャートの種類は:
チャートの種類 | 説明 |
---|---|
Column | クラスタ化された列チャートを表します。 |
ColumnStacked | 積み上げ列チャートを表します。 |
Column100PercentStacked | 100% 積み上げ列チャートを表します。 |
Column3DClustered | 3D クラスタ化された列チャートを表します。 |
Column3DStacked | 3D 積み上げ列チャートを表します。 |
Column3D100PercentStacked | 3D 100% 積み上げ列チャートを表します。 |
Column3D | 3D 列チャートを表します。 |
Bar | クラスタ化された棒チャートを表します。 |
BarStacked | 積み上げ棒チャートを表します。 |
Bar100PercentStacked | 100% 積み上げ棒チャートを表します。 |
Bar3DClustered | 3D クラスタ化された棒チャートを表します。 |
Bar3DStacked | 3D 積み上げ棒チャートを表します。 |
Bar3D100PercentStacked | 3D 100% 積み上げ棒チャートを表します。 |
Line | 折れ線チャートを表します。 |
LineStacked | 積み上げ折れ線チャートを表します。 |
Line100PercentStacked | 100% 積み上げ折れ線チャートを表します。 |
LineWithDataMarkers | データマーカー付きの折れ線チャートを表します。 |
LineStackedWithDataMarkers | データマーカー付きの積み上げ折れ線チャートを表します。 |
Line100PercentStackedWithDataMarkers | データマーカー付きの100% 積み上げ折れ線チャートを表します。 |
Line3D | 3D 折れ線チャートを表します。 |
Pie | 円グラフを表します。 |
Pie3D | 3D 円グラフを表します。 |
PiePie | パイ オブ パイ チャートを表します。 |
PieExploded | 分解された円グラフを表します。 |
Pie3DExploded | 3Dエクスプロード円グラフを表します |
PieBar | パイチャートのバーを表します |
Scatter | 散布図を表します |
ScatterConnectedByCurvesWithDataMarker | データマーカー付きの曲線で接続された散布図を表します |
ScatterConnectedByCurvesWithoutDataMarker | データマーカーなしの曲線で接続された散布図を表します |
ScatterConnectedByLinesWithDataMarker | データマーカー付きの線で接続された散布図を表します |
ScatterConnectedByLinesWithoutDataMarker | データマーカーなしの線で接続された散布図を表します |
Area | エリアチャートを表します |
AreaStacked | 積み上げエリアチャートを表します |
Area100PercentStacked | 100% 積み上げエリアチャートを表します |
Area3D | 3Dエリアチャートを表します |
Area3DStacked | 3D積み上げエリアチャートを表します |
Area3D100PercentStacked | 3D 100% 積み上げエリアチャートを表します |
Doughnut | ドーナツチャートを表します |
DoughnutExploded | 分裂したドーナツチャートを表します |
Radar | レーダーチャートを表します |
RadarWithDataMarkers | データマーカー付きのレーダーチャートを表します |
RadarFilled | 塗りつぶしのレーダーチャートを表します |
Surface3D | 3Dサーフェスチャートを表します |
SurfaceWireframe3D | ワイヤーフレーム3Dサーフェスチャートを表します |
SurfaceContour | 等高線チャートを表します |
SurfaceContourWireframe | ワイヤーフレーム等高線チャートを表します |
Bubble | バブルチャートを表します |
Bubble3D | 3Dバブルチャートを表します |
Cylinder | シリンダーチャートを表します |
CylinderStacked | 積み上げシリンダーチャートを表します |
Cylinder100PercentStacked | 100% 積み上げシリンダーチャートを表します |
CylindericalBar | 円柱形バーチャートを表します |
CylindericalBarStacked | 積み上げ円柱形バーチャートを表します |
CylindericalBar100PercentStacked | 100% 積み上げ円柱形バーチャートを表します |
CylindericalColumn3D | 3D円柱チャートを表します |
Cone | 円錐チャートを表します |
ConeStacked | 積み重ね円錐チャートを表します |
Cone100PercentStacked | 100% 積み重ね円錐チャートを表します |
ConicalBar | 円錐バーチャートを表します |
ConicalBarStacked 積み重ね円錐バーチャートを表します | |
ConicalBar100PercentStacked | 100% 積み重ね円錐バーチャートを表します |
ConicalColumn3D | 3D円錐柱チャートを表します |
Pyramid | ピラミッドチャートを表します |
PyramidStacked | 積み重ねピラミッドチャートを表します |
Pyramid100PercentStacked | 100% 積み重ねピラミッドチャートを表します |
PyramidBar | ピラミッドバーチャートを表します |
PyramidBarStacked | 積み重ねピラミッドバーチャートを表します |
PyramidBar100PercentStacked | 100% 積み重ねピラミッドバーチャートを表します |
PyramidColumn3D | 3Dピラミッド柱チャートを表します |
セルの範囲をデータソースとして割り当てると、左上から右下までの範囲を設定できます。例えば、“A1:C3"は有効ですが、“C3:A1"は無効です。
|
ピラミッドチャート
例のコードを実行すると、ワークシートにピラミッドチャートが追加されます。
from aspose.cells import Workbook | |
from aspose.cells.charts import ChartType | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Instantiating a Workbook object | |
workbook = Workbook() | |
# Adding a new worksheet to the Excel object | |
sheetIndex = workbook.worksheets.add() | |
# Obtaining the reference of the newly added worksheet by passing its sheet index | |
worksheet = workbook.worksheets[sheetIndex] | |
# Adding sample values to cells | |
worksheet.cells.get("A1").put_value(50) | |
worksheet.cells.get("A2").put_value(100) | |
worksheet.cells.get("A3").put_value(150) | |
worksheet.cells.get("B1").put_value(4) | |
worksheet.cells.get("B2").put_value(20) | |
worksheet.cells.get("B3").put_value(50) | |
# Adding a chart to the worksheet | |
chartIndex = worksheet.charts.add(ChartType.PYRAMID, 5, 0, 15, 5) | |
# Accessing the instance of the newly added chart | |
chart = worksheet.charts[chartIndex] | |
# Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3" | |
chart.n_series.add("A1:B3", True) | |
# Saving the Excel file | |
workbook.save(dataDir + "output.xls") |
折れ線グラフ
上記の例では、ChartTypeをLineに変更するだけで、折れ線グラフが作成されます。完全なソースは以下に提供されています。コードを実行すると、ワークシートに折れ線グラフが追加されます。
from aspose.cells import Workbook | |
from aspose.cells.charts import ChartType | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Instantiating a Workbook object | |
workbook = Workbook() | |
# Adding a new worksheet to the Excel object | |
sheetIndex = workbook.worksheets.add() | |
# Obtaining the reference of the newly added worksheet by passing its sheet index | |
worksheet = workbook.worksheets[sheetIndex] | |
# Adding sample values to cells | |
worksheet.cells.get("A1").put_value(50) | |
worksheet.cells.get("A2").put_value(100) | |
worksheet.cells.get("A3").put_value(150) | |
worksheet.cells.get("B1").put_value(4) | |
worksheet.cells.get("B2").put_value(20) | |
worksheet.cells.get("B3").put_value(50) | |
# Adding a chart to the worksheet | |
chartIndex = worksheet.charts.add(ChartType.LINE, 5, 0, 15, 5) | |
# Accessing the instance of the newly added chart | |
chart = worksheet.charts[chartIndex] | |
# Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3" | |
chart.n_series.add("A1:B3", True) | |
# Saving the Excel file | |
workbook.save(dataDir + "output.xls") |
バブルチャート
バブルチャートを作成するには、ChartTypeをChartType.BUBBLEに設定し、BubbleSizes、Values、XValuesなどの追加のプロパティを適切に設定する必要があります。次のコードを実行すると、ワークシートにバブルチャートが追加されます。
データマーカー付きラインチャート
データマーカー付きラインチャートを作成するには、ChartTypeをChartType.LineWithDataMarkersに設定し、バックグラウンドエリア、シリーズマーカー、Values、XValuesなどの追加のプロパティを適切に設定する必要があります。次のコードを実行すると、ワークシートにデータマーカー付きラインチャートが追加されます。
from aspose.cells import SaveFormat, Workbook | |
from aspose.cells.charts import ChartType, FormattingType | |
from aspose.pydrawing import Color | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# Instantiate a workbook | |
workbook = Workbook() | |
# Access first worksheet | |
worksheet = workbook.worksheets[0] | |
# Set columns title | |
worksheet.cells.get(0, 0).value = "X" | |
worksheet.cells.get(0, 1).value = "Y" | |
# Create random data and save in the cells | |
for i in range(1, 21): | |
worksheet.cells.get(i, 0).value = i | |
worksheet.cells.get(i, 1).value = 0.8 | |
for i in range(21, 41): | |
worksheet.cells.get(i, 0).value = i - 20 | |
worksheet.cells.get(i, 1).value = 0.9 | |
# Add a chart to the worksheet | |
idx = worksheet.charts.add(ChartType.LINE_WITH_DATA_MARKERS, 1, 3, 20, 20) | |
# Access the newly created chart | |
chart = worksheet.charts[idx] | |
# Set chart style | |
chart.style = 3 | |
# Set autoscaling value to true | |
chart.auto_scaling = True | |
# Set foreground color white | |
chart.plot_area.area.foreground_color = Color.white | |
# Set Properties of chart title | |
chart.title.text = "Sample Chart" | |
# Set chart type | |
chart.type = ChartType.LINE_WITH_DATA_MARKERS | |
# Set Properties of categoryaxis title | |
chart.category_axis.title.text = "Units" | |
# Set Properties of nseries | |
s2_idx = chart.n_series.add("A2: A2", True) | |
s3_idx = chart.n_series.add("A22: A22", True) | |
# Set IsColorVaried to true for varied points color | |
chart.n_series.is_color_varied = True | |
# Set properties of background area and series markers | |
chart.n_series[s2_idx].area.formatting = FormattingType.CUSTOM | |
chart.n_series[s2_idx].marker.area.foreground_color = Color.yellow | |
chart.n_series[s2_idx].marker.border.is_visible = False | |
# Set X and Y values of series chart | |
chart.n_series[s2_idx].x_values = "A2: A21" | |
chart.n_series[s2_idx].values = "B2: B21" | |
# Set properties of background area and series markers | |
chart.n_series[s3_idx].area.formatting = FormattingType.CUSTOM | |
chart.n_series[s3_idx].marker.area.foreground_color = Color.green | |
chart.n_series[s3_idx].marker.border.is_visible = False | |
# Set X and Y values of series chart | |
chart.n_series[s3_idx].x_values = "A22: A41" | |
chart.n_series[s3_idx].values = "B22: B41" | |
# Save the workbook | |
workbook.save(outputDir + r"LineWithDataMarkerChart.xlsx", SaveFormat.XLSX) |