Grafikleri Özelleştirme

Grafikler Oluşturma

Aspose.Cells ile elektronik tablolara çeşitli grafikler eklemek mümkündür. Aspose.Cells çok esnek grafik nesneleri sağlar. Bu konu, Aspose.Cells’in grafik nesnelerini tartışmaktadır.

Basitçe bir Grafik Oluşturma

Aspose.Cells ile bir grafik oluşturmak oldukça basittir, aşağıdaki örnek kodlar ile:

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the output directory.
Workbook workbook = new Workbook();
// Obtaining the reference of the first worksheet
Worksheet worksheet = workbook.getWorksheets().get(0);
// Adding sample values to cells
worksheet.getCells().get("A2").putValue("Category1");
worksheet.getCells().get("A3").putValue("Category2");
worksheet.getCells().get("A4").putValue("Category3");
worksheet.getCells().get("B1").putValue("Column1");
worksheet.getCells().get("B2").putValue(4);
worksheet.getCells().get("B3").putValue(20);
worksheet.getCells().get("B4").putValue(50);
worksheet.getCells().get("C1").putValue("Column2");
worksheet.getCells().get("C2").putValue(50);
worksheet.getCells().get("C3").putValue(100);
worksheet.getCells().get("C4").putValue(150);
// Adding a chart to the worksheet
int chartIndex = worksheet.getCharts().add(ChartType.COLUMN, 5, 0, 15, 5);
// Accessing the instance of the newly added chart
Chart chart = worksheet.getCharts().get(chartIndex);
// Setting chart data source as the range "A1:C4"
chart.setChartDataRange("A1:C4", true);
workbook.save( "ColumnChart.xlsx", SaveFormat.XLSX);

Grafi̇k Oluşturma İçin Bilmeni̇z Gerekenler

Grafik oluşturmadan önce, Aspose.Cells kullanarak grafik oluştururken faydalı bazı temel kavramları anlamanız önemlidir.

Grafikleme Nesneleri

Aspose.Cells, her türlü grafik oluşturmak için kullanılan özel bir sınıf kümesi sağlar. Bu sınıflar, tüm türde grafikler oluşturmak için kullanılır ve grafik oluşturma blokları olarak hareket eder. Grafik nesneleri aşağıda listelenmiştir:

Grafik Nesneleri Kullanma

Yukarıda belirtildiği gibi, tüm grafik nesneleri, ilgili sınıfların örnekleridir ve belirli görevleri yerine getirmek için belirli özellikler ve metotlar sağlar. Grafik nesnelerini kullanarak grafikler oluşturun.

Herhangi bir türdeki grafiği bir çalışma sayfasına ChartCollection koleksiyonunu kullanarak ekleyin. ChartCollection koleksiyonundaki her öğe bir Chart nesnesini temsil eder. Bir Chart nesnesi, grafiğin görünümünü özelleştirmek için gereken tüm Çizim Nesnelerini kapsar. Bir sonraki bölüm, basit bir grafik oluşturmak için birkaç temel çizim nesnesinin nasıl kullanılacağını gösterir.

Basit Bir Grafik Oluşturma

Aspose.Cells ile birçok farklı grafik türü oluşturmak mümkündür. Aspose.Cells tarafından desteklenen tüm standart grafikler, ChartType adında bir numaralama içeren önceden tanımlanmıştır. Önceden tanımlanmış grafik tipleri şunlardır:

Grafik Tipleri Açıklama
Column Kümelenmiş Sütun Grafiğini Temsil Eder
ColumnStacked Tasvir Yığılmış Sutun Grafiği
Column100PercentStacked Tasvir 100% Yığılmış Sutun Grafiği
Column3DClustered Tasvir 3D Küme Sutun Grafiği
Column3DStacked Tasvir 3D Yığılmış Sutun Grafiği
Column3D100PercentStacked Tasvir 3D 100% Yığılmış Sutun Grafiği
Column3D Tasvir 3D Sutun Grafiği
Bar Tasvir Kümeleme Çubuk Grafiği
BarStacked Yığın Çubuk Grafiğini Temsil Eder
Bar100PercentStacked 100% Yığılmış Çubuk Grafiğini Temsil Eder
Bar3DClustered 3D Küme Çubuk Grafiğini Temsil Eder
Bar3DStacked 3D Yığılmış Çubuk Grafiğini Temsil Eder
Bar3D100PercentStacked 3D 100% Yığılmış Çubuk Grafiğini Temsil Eder
Line Çizgi Grafiğini Temsil Eder
LineStacked Yığılmış Çizgi Grafiğini Temsil Eder
Line100PercentStacked 100% Yığılmış Çizgi Grafiğini Temsil Eder
LineWithDataMarkers Veri İşaretleri Bulunan Çizgi Grafiğini Temsil Eder
LineStackedWithDataMarkers Veri İşaretleri Bulunan Yığılmış Çizgi Grafiğini Temsil Eder
Line100PercentStackedWithDataMarkers 100% Yığılmış Veri İşaretleri Bulunan Çizgi Grafiğini Temsil Eder
Line3D 3D Çizgi Grafiğini Temsil Eder
Pie Pasta Grafiğini Temsil Eder
Pie3D 3D Pasta Grafiğini Temsil Eder
PiePie Pasta Grafiğinde Pasta Temsil Eder
PieExploded Patlamış Pasta Grafiğini Temsil Eder
Pie3DExploded 3D Patlamış Pasta Grafiğini Temsil Eder
PieBar Pasta Grafiğinde Çubuk Temsil Eder
Scatter Saçılma Grafiğini Temsil Eder
ScatterConnectedByCurvesWithDataMarker Eğrilerle Bağlı Saçılma Grafiğini, Veri İşaretleriyle Temsil Eder
ScatterConnectedByCurvesWithoutDataMarker Eğrilerle Bağlı Saçılma Grafiğini, Veri İşaretleri olmadan Temsil Eder
ScatterConnectedByLinesWithDataMarker Çizgilerle Bağlı Saçılma Grafiğini, Veri İşaretleriyle Temsil Eder
ScatterConnectedByLinesWithoutDataMarker Çizgilerle Bağlı Saçılma Grafiğini, Veri İşaretleri olmadan Temsil Eder
Area Alan Grafiğini Temsil Eder
AreaStacked Yığılmış Alan Grafiğini Temsil Eder
Area100PercentStacked 100% Yığılmış Alan Grafiğini Temsil Eder
Area3D 3D Alan Grafiğini Temsil Eder
Area3DStacked 3D Yığılmış Alan Grafiğini Temsil Eder
Area3D100PercentStacked 3D 100% Yığılmış Alan Grafiğini Temsil Eder
Doughnut Donut Grafiğini Temsil Eder
DoughnutExploded Exploded Doughnut Chartını Temsil Ediyor
Radar Radar Grafiğini Temsil Eder
RadarWithDataMarkers Veri İşaretleriyle Radar Grafiğini Temsil Eder
RadarFilled Dolu Radar Grafiğini Temsil Ediyor
Surface3D 3 boyutlu Yüzey Grafiğini Temsil Ediyor
SurfaceWireframe3D Tel Çerçeveli 3 Boyutlu Yüzey Grafiğini Temsil Eder
SurfaceContour Kontur Grafiğini Temsil Ediyor
SurfaceContourWireframe Tel Kafesli Kontur Grafiğini Temsil Ediyor
Bubble Balon Grafiğini Temsil Ediyor
Bubble3D 3 Boyutlu Balon Grafiğini Temsil Ediyor
Cylinder Silindir Grafiğini Temsil Ediyor
CylinderStacked Yığılmış Silindir Grafiğini Temsil Ediyor
Cylinder100PercentStacked 100% Yığılmış Silindir Grafiğini Temsil Ediyor
CylindricalBar Silindirik Sütun Grafiğini Temsil Eder
CylindricalBarStacked Yığılmış Silindirik Sütun Grafiğini Temsil Eder
CylindricalBar100PercentStacked Yüzde 100 Yığılmış Silindirik Sütun Grafiğini Temsil Eder
CylindricalColumn3D 3 Boyutlu Silindirik Sütun Grafiğini Temsil Eder
Cone Konik Grafiğini Temsil Ediyor
ConeStacked Yığılmış Konik Grafiğini Temsil Ediyor
Cone100PercentStacked 100% Yığılmış Konik Grafiğini Temsil Ediyor
ConicalBar Konik Çubuk Grafiğini Temsil Ediyor
ConicalBarStackedStacked Konik Çubuk Grafiğini Temsil Ediyor
ConicalBar100PercentStacked 100% Yığılmış Konik Çubuk Grafiğini Temsil Ediyor
ConicalColumn3D 3 Boyutlu Konik Sütun Grafiğini Temsil Ediyor
Pyramid Piramit Grafiğini Temsil Ediyor
PyramidStacked Yığılmış Piramit Grafiğini Temsil Ediyor
Pyramid100PercentStacked 100% Yığılmış Piramit Grafiğini Temsil Ediyor
PyramidBar Piramit Çubuk Grafiğini Temsil Eder
PyramidBarStacked Stacked Piramit Çubuk Grafiğini Temsil Ediyor
PyramidBar100PercentStacked 100% Yığılmış Piramit Çubuk Grafiğini Temsil Ediyor
PyramidColumn3D 3D Piramit Sutun Grafiğini Temsil Eder
Aspose.Cells kullanarak bir grafik oluşturmak için:
  1. Çalışma sayfası hücrelerine biraz veri ekleyin Cell nesnesinin setValue metodu ile. Bu, grafik veri kaynağı olarak kullanılacaktır.
  2. ChartCollection koleksiyonunun add yöntemini, Worksheet nesnesine kapsüllenmiş şekilde çağırarak çalışma sayfasına bir grafik ekleyin.
  3. Grafik türünü ChartType numaralandırma ile belirtin. Örneğin, örnek, grafik türü olarak ChartType.PYRAMID değerini kullanır.
  4. Yeni Chart nesnesine, endeksini geçirerek ChartCollection koleksiyonundan erişin.
  5. Grafiği yönetmek için Chart nesnesine kapsüllenmiş olan herhangi bir grafik nesnesini kullanın. Aşağıdaki örnek, SeriesCollection grafik nesnesini grafik veri kaynağını belirtmek için kullanır.

Grafik verisini eklerken, veri kaynağı hücre aralığı (örneğin “A1:C3”) veya ardışık olmayan hücrelerin dizisi (örneğin “A1, A3, A5”) veya değerlerin dizisi (örneğin “1,2,3”) olabilir.

Bu genel adımlar, herhangi bir türde bir grafik oluşturmanıza olanak tanır. Farklı grafikler oluşturmak için farklı grafik nesnelerini kullanın.

Örnek kod yürütüldüğünde, aşağıdaki gibi bir piramit grafik çalışma sayfasına eklenir.

Veri kaynağı ile piramit grafik

todo:image_alt_text

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(HowToCreatePyramidChart.class) + "charts/";
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Obtaining the reference of the first worksheet
WorksheetCollection worksheets = workbook.getWorksheets();
Worksheet sheet = worksheets.get(0);
// Adding some sample value to cells
Cells cells = sheet.getCells();
Cell cell = cells.get("A1");
cell.setValue(50);
cell = cells.get("A2");
cell.setValue(100);
cell = cells.get("A3");
cell.setValue(150);
cell = cells.get("B1");
cell.setValue(4);
cell = cells.get("B2");
cell.setValue(20);
cell = cells.get("B3");
cell.setValue(180);
cell = cells.get("C1");
cell.setValue(320);
cell = cells.get("C2");
cell.setValue(110);
cell = cells.get("C3");
cell.setValue(180);
cell = cells.get("D1");
cell.setValue(40);
cell = cells.get("D2");
cell.setValue(120);
cell = cells.get("D3");
cell.setValue(250);
ChartCollection charts = sheet.getCharts();
// Adding a chart to the worksheet
int chartIndex = charts.add(ChartType.PYRAMID, 5, 0, 15, 5);
Chart chart = charts.get(chartIndex);
// Adding NSeries (chart data source) to the chart ranging from "A1"
// cell to "B3"
SeriesCollection serieses = chart.getNSeries();
serieses.add("A1:B3", true);
// Saving the Excel file
workbook.save(dataDir + "HToCPyramidChart_out.xls");
// Print message
System.out.println("Pyramid chart is successfully created.");

Balon Grafik oluşturmak için, ChartType değerinin ChartType.BUBBLE olarak ayarlanması gerekmekte ve ayrıca, BalonBoyutları, Değerler ve XDeğerleri gibi ekstra özelliklerin buna göre ayarlanması gerekmektedir. Aşağıdaki kodu yürütme işlemi sonucunda, çalışma sayfasına bir balon grafik eklenir.

Veri kaynağı ile balon grafik

todo:image_alt_text

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(HowToCreateBubbleChart.class) + "charts/";
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Obtaining the reference of the first worksheet
WorksheetCollection worksheets = workbook.getWorksheets();
Worksheet sheet = worksheets.get(0);
// Adding some sample value to cells
Cells cells = sheet.getCells();
Cell cell = cells.get("A1");
cell.setValue(50);
cell = cells.get("A2");
cell.setValue(100);
cell = cells.get("A3");
cell.setValue(150);
cell = cells.get("B1");
cell.setValue(4);
cell = cells.get("B2");
cell.setValue(20);
cell = cells.get("B3");
cell.setValue(180);
cell = cells.get("C1");
cell.setValue(320);
cell = cells.get("C2");
cell.setValue(110);
cell = cells.get("C3");
cell.setValue(180);
cell = cells.get("D1");
cell.setValue(40);
cell = cells.get("D2");
cell.setValue(120);
cell = cells.get("D3");
cell.setValue(250);
ChartCollection charts = sheet.getCharts();
// Adding a chart to the worksheet
int chartIndex = charts.add(ChartType.BUBBLE, 5, 0, 15, 5);
Chart chart = charts.get(chartIndex);
// Adding NSeries (chart data source) to the chart ranging from "A1"
// cell to "B3"
SeriesCollection serieses = chart.getNSeries();
serieses.add("A1:B3", true);
// Set bubble sizes
chart.getNSeries().get(0).setBubbleSizes("B2:D2");
chart.getNSeries().get(0).setXValues("B3:D3");
chart.getNSeries().get(0).setValues("B1:D1");
// Saving the Excel file
workbook.save(dataDir + "HToCrBChart_out.xls");
// Print message
System.out.println("Bubble chart is successfully created.");

Veri İşaretçisi ile Çizgi Grafiği

Bir veri işaretçili çizgi grafiği oluşturmak için, ChartType ChartType.LINE_WITH_DATA_MARKERS olarak ayarlanmalı ve ayrıca, arka plan alanı, Seri İşaretçileri, Değerler & XDeğerleri gibi ekstra özellikler buna göre ayarlanmalıdır. Aşağıdaki kodu yürütme işlemi sonucunda, çalışma sayfasına bir veri işaretçili çizgi grafiği eklenir.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// Instantiate a workbook
Workbook workbook = new Workbook();
// Access first worksheet
Worksheet worksheet = workbook.getWorksheets().get(0);
// Set columns title
worksheet.getCells().get(0, 0).setValue("X");
worksheet.getCells().get(0, 1).setValue("Y");
// Create random data and save in the cells
for (int i = 1; i < 21; i++)
{
worksheet.getCells().get(i, 0).setValue(i);
worksheet.getCells().get(i, 1).setValue(0.8);
}
for (int i = 21; i < 41; i++)
{
worksheet.getCells().get(i, 0).setValue(i - 20);
worksheet.getCells().get(i, 1).setValue(0.9);
}
// Add a chart to the worksheet
int idx = worksheet.getCharts().add(ChartType.LINE_WITH_DATA_MARKERS, 1, 3, 20, 20);
// Access the newly created chart
Chart chart = worksheet.getCharts().get(idx);
// Set chart style
chart.setStyle(3);
// Set autoscaling value to true
chart.setAutoScaling(true);
// Set foreground color white
chart.getPlotArea().getArea().setForegroundColor(Color.getWhite());
// Set Properties of chart title
chart.getTitle().setText("Sample Chart");
// Set chart type
chart.setType(ChartType.LINE_WITH_DATA_MARKERS);
// Set Properties of categoryaxis title
chart.getCategoryAxis().getTitle().setText("Units");
//Set Properties of nseries
int s2_idx = chart.getNSeries().add("A2: A2", true);
int s3_idx = chart.getNSeries().add("A22: A22", true);
// Set IsColorVaried to true for varied points color
chart.getNSeries().setColorVaried(true);
// Set properties of background area and series markers
chart.getNSeries().get(s2_idx).getArea().setFormatting(FormattingType.CUSTOM);
chart.getNSeries().get(s2_idx).getMarker().getArea().setForegroundColor(Color.getYellow());
chart.getNSeries().get(s2_idx).getMarker().getBorder().setVisible(false);
// Set X and Y values of series chart
chart.getNSeries().get(s2_idx).setXValues("A2: A21");
chart.getNSeries().get(s2_idx).setValues("B2: B21");
// Set properties of background area and series markers
chart.getNSeries().get(s3_idx).getArea().setFormatting(FormattingType.CUSTOM);
chart.getNSeries().get(s3_idx).getMarker().getArea().setForegroundColor(Color.getGreen());
chart.getNSeries().get(s3_idx).getMarker().getBorder().setVisible(false);
// Set X and Y values of series chart
chart.getNSeries().get(s3_idx).setXValues("A22: A41");
chart.getNSeries().get(s3_idx).setValues("B22: B41");
// Save the workbook
workbook.save(outDir + "LineWithDataMarkerChart.xlsx", SaveFormat.XLSX);

Özel Grafikler Oluşturma

Şimdiye kadar grafikler hakkında konuştuğumuzda, standart biçimlendirme ayarlarına sahip standart grafikleri inceledik. Sadece veri kaynağını tanımlıyoruz, birkaç özellik belirliyoruz ve grafik varsayılan biçim ayarlarıyla oluşturuluyor. Ancak Apose.Cells, geliştiricilere kendi format ayarlarıyla grafik oluşturmalarını destekleyen özel grafikler oluşturmaya da olanak tanır.

Özel Grafikler Oluşturma

Geliştiriciler, Aspose.Cells’in basit API’sını kullanarak çalışma zamanında özel grafikler oluşturabilirler.

Bir grafik, bir veri serisinden oluşur. Aspose.Cells’te her veri serisi bir Series nesnesi tarafından temsil edilir, SeriesCollection nesnesi ise Series nesnelerinin bir koleksiyonunu hizmet eder. Özel bir grafik oluştururken, geliştiriciler farklı veri serileri için farklı grafik türlerini kullanma özgürlüğüne sahiptir (bir SeriesCollection nesnesinde toplanmış veri serileri için).

Aşağıdaki örnek kod, özel grafikler nasıl oluşturulurunu göstermektedir. Bu örnekte, birinci veri serisi için sütun grafik ve ikinci serisi için çizgi grafik kullanacağız. Sonuç olarak, çalışma sayfasına sütun grafik ve çizgi grafikle birlikte eklendi.

Sütun ve çizgi grafiklerini birleştiren özel grafik

todo:image_alt_text

Programlama Örneği

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(HowToCreateCustomChart.class) + "charts/";
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Obtaining the reference of the first worksheet
WorksheetCollection worksheets = workbook.getWorksheets();
Worksheet sheet = worksheets.get(0);
// Adding some sample value to cells
Cells cells = sheet.getCells();
Cell cell = cells.get("A1");
cell.setValue(50);
cell = cells.get("A2");
cell.setValue(100);
cell = cells.get("A3");
cell.setValue(150);
cell = cells.get("B1");
cell.setValue(4);
cell = cells.get("B2");
cell.setValue(20);
cell = cells.get("B3");
cell.setValue(180);
cell = cells.get("C1");
cell.setValue(320);
cell = cells.get("C2");
cell.setValue(110);
cell = cells.get("C3");
cell.setValue(180);
cell = cells.get("D1");
cell.setValue(40);
cell = cells.get("D2");
cell.setValue(120);
cell = cells.get("D3");
cell.setValue(250);
ChartCollection charts = sheet.getCharts();
// Adding a chart to the worksheet
int chartIndex = charts.add(ChartType.COLUMN_3_D, 5, 0, 15, 5);
Chart chart = charts.get(chartIndex);
// Adding NSeries (chart data source) to the chart ranging from "A1"
// cell to "B3"
SeriesCollection serieses = chart.getNSeries();
serieses.add("A1:B3", true);
// Saving the Excel file
workbook.save(dataDir + "HTCCustomChart_out.xls");
// Print message
System.out.println("Customized chart is successfully created.");