リーダーライン付きの円グラフの作成
リーダーライン付き円グラフを作成するためにAspose.Cells for .NET APIの使用を示すために、まず新しい Workbookを作成し、シリーズデータソースとして機能するデータを入力します。データが整ったら、グラフのコレクションにタイプ ChartType.PieのChartを追加し、所望のグラフビューを得るために異なる側面を設定します。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create an instance of Workbook in XLSX format | |
Workbook workbook = new Workbook(FileFormatType.Xlsx); | |
// Access the first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Add two columns of data | |
worksheet.Cells["A1"].PutValue("Retail"); | |
worksheet.Cells["A2"].PutValue("Services"); | |
worksheet.Cells["A3"].PutValue("Info & Communication"); | |
worksheet.Cells["A4"].PutValue("Transport Equip"); | |
worksheet.Cells["A5"].PutValue("Construction"); | |
worksheet.Cells["A6"].PutValue("Other Products"); | |
worksheet.Cells["A7"].PutValue("Wholesale"); | |
worksheet.Cells["A8"].PutValue("Land Transport"); | |
worksheet.Cells["A9"].PutValue("Air Transport"); | |
worksheet.Cells["A10"].PutValue("Electric Appliances"); | |
worksheet.Cells["A11"].PutValue("Securities"); | |
worksheet.Cells["A12"].PutValue("Textiles & Apparel"); | |
worksheet.Cells["A13"].PutValue("Machinery"); | |
worksheet.Cells["A14"].PutValue("Metal Products"); | |
worksheet.Cells["A15"].PutValue("Cash"); | |
worksheet.Cells["A16"].PutValue("Banks"); | |
worksheet.Cells["B1"].PutValue(10.4); | |
worksheet.Cells["B2"].PutValue(5.2); | |
worksheet.Cells["B3"].PutValue(6.4); | |
worksheet.Cells["B4"].PutValue(10.4); | |
worksheet.Cells["B5"].PutValue(7.9); | |
worksheet.Cells["B6"].PutValue(4.1); | |
worksheet.Cells["B7"].PutValue(3.5); | |
worksheet.Cells["B8"].PutValue(5.7); | |
worksheet.Cells["B9"].PutValue(3); | |
worksheet.Cells["B10"].PutValue(14.7); | |
worksheet.Cells["B11"].PutValue(3.6); | |
worksheet.Cells["B12"].PutValue(2.8); | |
worksheet.Cells["B13"].PutValue(7.8); | |
worksheet.Cells["B14"].PutValue(2.4); | |
worksheet.Cells["B15"].PutValue(1.8); | |
worksheet.Cells["B16"].PutValue(10.1); | |
// Create a pie chart and add it to the collection of charts | |
int id = worksheet.Charts.Add(ChartType.Pie, 3, 3, 23, 13); | |
// Access newly created Chart instance | |
Chart chart = worksheet.Charts[id]; | |
// Set series data range | |
chart.NSeries.Add("B1:B16", true); | |
// Set category data range | |
chart.NSeries.CategoryData = "A1:A16"; | |
// Turn off legend | |
chart.ShowLegend = false; | |
// Access data labels | |
DataLabels dataLabels = chart.NSeries[0].DataLabels; | |
// Turn on category names | |
dataLabels.ShowCategoryName = true; | |
// Turn on percentage format | |
dataLabels.ShowPercentage = true; | |
// Set position | |
dataLabels.Position = LabelPositionType.OutsideEnd; | |
// Set separator | |
dataLabels.SeparatorType = DataLabelsSeparatorType.Comma; |
これまでに円グラフを作成し、異なる側面を設定しました。これからは、チャートのリーダーラインをオンにします。リーダーラインを表示するには、データラベルを少し移動する必要があります。
次のコードは、リーダーラインをオンにし、チャートを更新し、それからデータラベルの位置を計算して適切に移動します。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Create an instance of Workbook in XLSX format | |
Workbook workbook = new Workbook(FileFormatType.Xlsx); | |
// Access the first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Add two columns of data | |
worksheet.Cells["A1"].PutValue("Retail"); | |
worksheet.Cells["A2"].PutValue("Services"); | |
worksheet.Cells["A3"].PutValue("Info & Communication"); | |
worksheet.Cells["A4"].PutValue("Transport Equip"); | |
worksheet.Cells["A5"].PutValue("Construction"); | |
worksheet.Cells["A6"].PutValue("Other Products"); | |
worksheet.Cells["A7"].PutValue("Wholesale"); | |
worksheet.Cells["A8"].PutValue("Land Transport"); | |
worksheet.Cells["A9"].PutValue("Air Transport"); | |
worksheet.Cells["A10"].PutValue("Electric Appliances"); | |
worksheet.Cells["A11"].PutValue("Securities"); | |
worksheet.Cells["A12"].PutValue("Textiles & Apparel"); | |
worksheet.Cells["A13"].PutValue("Machinery"); | |
worksheet.Cells["A14"].PutValue("Metal Products"); | |
worksheet.Cells["A15"].PutValue("Cash"); | |
worksheet.Cells["A16"].PutValue("Banks"); | |
worksheet.Cells["B1"].PutValue(10.4); | |
worksheet.Cells["B2"].PutValue(5.2); | |
worksheet.Cells["B3"].PutValue(6.4); | |
worksheet.Cells["B4"].PutValue(10.4); | |
worksheet.Cells["B5"].PutValue(7.9); | |
worksheet.Cells["B6"].PutValue(4.1); | |
worksheet.Cells["B7"].PutValue(3.5); | |
worksheet.Cells["B8"].PutValue(5.7); | |
worksheet.Cells["B9"].PutValue(3); | |
worksheet.Cells["B10"].PutValue(14.7); | |
worksheet.Cells["B11"].PutValue(3.6); | |
worksheet.Cells["B12"].PutValue(2.8); | |
worksheet.Cells["B13"].PutValue(7.8); | |
worksheet.Cells["B14"].PutValue(2.4); | |
worksheet.Cells["B15"].PutValue(1.8); | |
worksheet.Cells["B16"].PutValue(10.1); | |
// Create a pie chart and add it to the collection of charts | |
int id = worksheet.Charts.Add(ChartType.Pie, 3, 3, 23, 13); | |
// Access newly created Chart instance | |
Chart chart = worksheet.Charts[id]; | |
// Set series data range | |
chart.NSeries.Add("B1:B16", true); | |
// Set category data range | |
chart.NSeries.CategoryData = "A1:A16"; | |
// Turn off legend | |
chart.ShowLegend = false; | |
// Access data labels | |
DataLabels dataLabels = chart.NSeries[0].DataLabels; | |
// Turn on category names | |
dataLabels.ShowCategoryName = true; | |
// Turn on percentage format | |
dataLabels.ShowPercentage = true; | |
// Set position | |
dataLabels.Position = LabelPositionType.OutsideEnd; | |
// Set separator | |
dataLabels.SeparatorType = DataLabelsSeparatorType.Comma; | |
// Turn on leader lines | |
chart.NSeries[0].HasLeaderLines = true; | |
// Calculete chart | |
chart.Calculate(); | |
// You need to move DataLabels a little leftward or rightward depending on their position to show leader lines | |
int DELTA = 100; | |
for (int i = 0; i < chart.NSeries[0].Points.Count; i++) | |
{ | |
int X = chart.NSeries[0].Points[i].DataLabels.X; | |
// If it is greater than 2000, then move the X position a little right otherwise move the X position a little left | |
if (X > 2000) | |
chart.NSeries[0].Points[i].DataLabels.X = X + DELTA; | |
else | |
chart.NSeries[0].Points[i].DataLabels.X = X - DELTA; | |
} |
最後に、次のコードでチャートを画像形式で保存し、ワークブックをXLSX形式で保存します。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Create an instance of Workbook in XLSX format | |
Workbook workbook = new Workbook(FileFormatType.Xlsx); | |
// Access the first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Add two columns of data | |
worksheet.Cells["A1"].PutValue("Retail"); | |
worksheet.Cells["A2"].PutValue("Services"); | |
worksheet.Cells["A3"].PutValue("Info & Communication"); | |
worksheet.Cells["A4"].PutValue("Transport Equip"); | |
worksheet.Cells["A5"].PutValue("Construction"); | |
worksheet.Cells["A6"].PutValue("Other Products"); | |
worksheet.Cells["A7"].PutValue("Wholesale"); | |
worksheet.Cells["A8"].PutValue("Land Transport"); | |
worksheet.Cells["A9"].PutValue("Air Transport"); | |
worksheet.Cells["A10"].PutValue("Electric Appliances"); | |
worksheet.Cells["A11"].PutValue("Securities"); | |
worksheet.Cells["A12"].PutValue("Textiles & Apparel"); | |
worksheet.Cells["A13"].PutValue("Machinery"); | |
worksheet.Cells["A14"].PutValue("Metal Products"); | |
worksheet.Cells["A15"].PutValue("Cash"); | |
worksheet.Cells["A16"].PutValue("Banks"); | |
worksheet.Cells["B1"].PutValue(10.4); | |
worksheet.Cells["B2"].PutValue(5.2); | |
worksheet.Cells["B3"].PutValue(6.4); | |
worksheet.Cells["B4"].PutValue(10.4); | |
worksheet.Cells["B5"].PutValue(7.9); | |
worksheet.Cells["B6"].PutValue(4.1); | |
worksheet.Cells["B7"].PutValue(3.5); | |
worksheet.Cells["B8"].PutValue(5.7); | |
worksheet.Cells["B9"].PutValue(3); | |
worksheet.Cells["B10"].PutValue(14.7); | |
worksheet.Cells["B11"].PutValue(3.6); | |
worksheet.Cells["B12"].PutValue(2.8); | |
worksheet.Cells["B13"].PutValue(7.8); | |
worksheet.Cells["B14"].PutValue(2.4); | |
worksheet.Cells["B15"].PutValue(1.8); | |
worksheet.Cells["B16"].PutValue(10.1); | |
// Create a pie chart and add it to the collection of charts | |
int id = worksheet.Charts.Add(ChartType.Pie, 3, 3, 23, 13); | |
// Access newly created Chart instance | |
Chart chart = worksheet.Charts[id]; | |
// Set series data range | |
chart.NSeries.Add("B1:B16", true); | |
// Set category data range | |
chart.NSeries.CategoryData = "A1:A16"; | |
// Turn off legend | |
chart.ShowLegend = false; | |
// Access data labels | |
DataLabels dataLabels = chart.NSeries[0].DataLabels; | |
// Turn on category names | |
dataLabels.ShowCategoryName = true; | |
// Turn on percentage format | |
dataLabels.ShowPercentage = true; | |
// Set position | |
dataLabels.Position = LabelPositionType.OutsideEnd; | |
// Set separator | |
dataLabels.SeparatorType = DataLabelsSeparatorType.Comma; | |
// In order to save the chart image, create an instance of ImageOrPrintOptions | |
ImageOrPrintOptions anOption = new ImageOrPrintOptions(); | |
// Set image format | |
anOption.ImageType = Drawing.ImageType.Png; | |
// Set resolution | |
anOption.HorizontalResolution = 200; | |
anOption.VerticalResolution = 200; | |
// Render chart to image | |
chart.ToImage(dataDir + "output_out.png", anOption); | |
// Save the workbook to see chart inside the Excel | |
workbook.Save(dataDir + "output_out.xlsx"); |
作成された円グラフ |
---|
![]() |