JavaScript Kullanarak Sunumlarda Grafik Veri Etiketlerini Yönetme
Giriş
Bir grafikteki veri etiketleri, grafik veri serileri veya bireysel veri noktaları hakkında ayrıntılar gösterir. Okuyucuların veri serilerini hızlıca tanımlamasına olanak tanır ve grafiklerin daha kolay anlaşılmasını sağlar.
Grafik Veri Etiketlerindeki Verinin Hassasiyetini Ayarlama
Bu JavaScript kodu, bir grafik veri etiketinde verinin hassasiyetini nasıl ayarlayacağınızı gösterir:
var pres = new aspose.slides.Presentation();
try {
var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 50, 50, 450, 300);
chart.setDataTable(true);
chart.getChartData().getSeries().get_Item(0).setNumberFormatOfValues("#,##0.00");
pres.save("output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Yüzdeyi Etiket Olarak Görüntüleme
Java üzerinden Aspose.Slides for Node.js, görüntülenen grafiklerde yüzde etiketleri ayarlamanıza olanak tanır. Bu JavaScript kodu, işlemi göstermektedir:
// Sunum sınıfının bir örneğini oluşturur
var pres = new aspose.slides.Presentation();
try {
// İlk slaytı alır
var slide = pres.getSlides().get_Item(0);
var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 20, 20, 400, 400);
var series;
var total_for_Cat = new double[chart.getChartData().getCategories().size()];
for (var k = 0; k < chart.getChartData().getCategories().size(); k++) {
var cat = chart.getChartData().getCategories().get_Item(k);
for (var i = 0; i < chart.getChartData().getSeries().size(); i++) {
total_for_Cat[k] = total_for_Cat[k] + chart.getChartData().getSeries().get_Item(i).getDataPoints().get_Item(k).getValue().getData();
}
}
var dataPontPercent = 0.0;
for (var x = 0; x < chart.getChartData().getSeries().size(); x++) {
series = chart.getChartData().getSeries().get_Item(x);
series.getLabels().getDefaultDataLabelFormat().setShowLegendKey(false);
for (var j = 0; j < series.getDataPoints().size(); j++) {
var lbl = series.getDataPoints().get_Item(j).getLabel();
dataPontPercent = (series.getDataPoints().get_Item(j).getValue().getData() / total_for_Cat[j]) * 100;
var port = new aspose.slides.Portion();
port.setText(java.callStaticMethodSync("java.lang.String", "format", "{0:F2} %.2f", dataPontPercent));
port.getPortionFormat().setFontHeight(8.0);
lbl.getTextFrameForOverriding().setText("");
var para = lbl.getTextFrameForOverriding().getParagraphs().get_Item(0);
para.getPortions().add(port);
lbl.getDataLabelFormat().setShowSeriesName(false);
lbl.getDataLabelFormat().setShowPercentage(false);
lbl.getDataLabelFormat().setShowLegendKey(false);
lbl.getDataLabelFormat().setShowCategoryName(false);
lbl.getDataLabelFormat().setShowBubbleSize(false);
}
}
// Grafiği içeren sunumu kaydeder
pres.save("output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Grafik Veri Etiketleriyle Yüzde İşaretini Ayarlama
Bu JavaScript kodu, bir grafik veri etiketi için yüzde işaretini nasıl ayarlayacağınızı gösterir:
// Presentation sınıfının bir örneğini oluşturur
var pres = new aspose.slides.Presentation();
try {
// İndeks üzerinden slayt referansını alır
var slide = pres.getSlides().get_Item(0);
// Bir slayta PercentsStackedColumn grafiği oluşturur
var chart = slide.getShapes().addChart(aspose.slides.ChartType.PercentsStackedColumn, 20, 20, 500, 400);
// NumberFormatLinkedToSource özelliğini false olarak ayarlar
chart.getAxes().getVerticalAxis().setNumberFormatLinkedToSource(false);
chart.getAxes().getVerticalAxis().setNumberFormat("0.00%");
chart.getChartData().getSeries().clear();
var defaultWorksheetIndex = 0;
// Grafik veri çalışma sayfasını alır
var workbook = chart.getChartData().getChartDataWorkbook();
// Yeni seri ekler
var series = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 1, "Reds"), chart.getType());
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 1, 0.3));
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 1, 0.5));
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 1, 0.8));
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 1, 0.65));
// Serinin dolgu rengini ayarlar
series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid));
series.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
// LabelFormat özelliklerini ayarlar
series.getLabels().getDefaultDataLabelFormat().setShowValue(true);
series.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false);
series.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%");
series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10);
series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE"));
series.getLabels().getDefaultDataLabelFormat().setShowValue(true);
// Yeni seri ekler
var series2 = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 2, "Blues"), chart.getType());
series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 2, 0.7));
series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 2, 0.5));
series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 2, 0.2));
series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 2, 0.35));
// Dolgu tipini ve rengini ayarlar
series2.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid));
series2.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));
series2.getLabels().getDefaultDataLabelFormat().setShowValue(true);
series2.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false);
series2.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%");
series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10);
series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE"));
// Sunumu diske yazar
pres.save("SetDataLabelsPercentageSign_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Eksen’den Etiket Mesafesini Ayarlama
Bu JavaScript kodu, eksenlerden çizilen bir grafikle çalışırken kategori ekseninden etiket mesafesini nasıl ayarlayacağınızı gösterir:
// Presentation sınıfının bir örneğini oluşturur
var pres = new aspose.slides.Presentation();
try {
// Bir slaytın referansını alır
var sld = pres.getSlides().get_Item(0);
// Slayta bir grafik oluşturur
var ch = sld.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 300);
// Etiket mesafesini bir eksenden ayarlar
ch.getAxes().getHorizontalAxis().setLabelOffset(500);
// Sunumu diske yazar
pres.save("output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Etiket Konumunu Ayarlama
Pasta grafiği gibi herhangi bir eksene dayanmayan bir grafik oluşturduğunuzda, grafiğin veri etiketleri kenara çok yakın olabilir. Böyle bir durumda, lider çizgilerinin net bir şekilde görüntülenmesi için veri etiketinin konumunu ayarlamanız gerekir.
Bu JavaScript kodu, bir pasta grafiğinde etiket konumunu nasıl ayarlayacağınızı gösterir:
var pres = new aspose.slides.Presentation();
try {
var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 200, 200);
var series = chart.getChartData().getSeries();
var label = series.get_Item(0).getLabels().get_Item(0);
label.getDataLabelFormat().setShowValue(true);
label.getDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.OutsideEnd);
label.setX(0.71);
label.setY(0.04);
pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}

SSS
Yoğun grafiklerde veri etiketlerinin çakışmasını nasıl önleyebilirim?
Otomatik etiket yerleştirme, lider çizgileri ve küçültülmüş yazı tipini birleştirin; gerekirse bazı alanları (örneğin kategori) gizleyin veya sadece uç/anahtar noktalara etiket gösterin.
Sıfır, negatif veya boş değerler için yalnızca etiketleri nasıl devre dışı bırakabilirim?
Etiketleri etkinleştirmeden önce veri noktalarını filtreleyin ve tanımlı bir kurala göre 0, negatif veya eksik değerler için gösterimi kapatın.
PDF/görsellere dışa aktarırken tutarlı bir etiket stili nasıl sağlanır?
Yazı tiplerini (aile, boyut) açıkça ayarlayın ve geri dönüşü önlemek için yazı tipinin render tarafında mevcut olduğunu doğrulayın.