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:
- Axis, bir grafik eksenidir.
- Chart, tek bir Excel grafiği.
- ChartArea, çalışma sayfasındaki grafik alanıdır.
- ChartDataTable, grafik veri tablosudur.
- ChartFrame, bir grafikte çerçeve nesnesidir.
- Bir grafikte bir serideki tek bir nokta olan ChartPoint.
- Bir koleksiyon olan ve bir serideki tüm noktaları içeren ChartPointCollection.
- Chart nesnelerinin bir koleksiyonu olan ChartCollection.
- Belirtilen Series, ChartPoint, Trendline için DataLabels.
- Bir şeklin doldurma biçimi olan FillFormat.
- 3D grafiğin zemini olan Floor.
- Grafik gösterimli olan Legend.
- Grafikteki çizgi olan Line.
- Series nesnelerinin bir koleksiyonu olan SeriesCollection.
- Bir grafikte tek bir veri serisini temsil eden Series.
- Bir grafik eksenindeki çizgi işaretleri ile ilişkili olan TickLabels.
- Bir grafik veya eksenin başlığı olan Title.
- Bir grafikteki trend çizgisi olan Trendline.
- Belirtilen veri serisi için tüm Trendline nesnelerinin bir koleksiyonu olan TrendlineCollection.
- 3D grafik duvarları olan Walls.
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: |
- Çalışma sayfası hücrelerine biraz veri ekleyin Cell nesnesinin setValue metodu ile. Bu, grafik veri kaynağı olarak kullanılacaktır.
- ChartCollection koleksiyonunun add yöntemini, Worksheet nesnesine kapsüllenmiş şekilde çağırarak çalışma sayfasına bir grafik ekleyin.
- Grafik türünü ChartType numaralandırma ile belirtin. Örneğin, örnek, grafik türü olarak ChartType.PYRAMID değerini kullanır.
- Yeni Chart nesnesine, endeksini geçirerek ChartCollection koleksiyonundan erişin.
- 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
// 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
// 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
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."); |