Java Slaytlarında Grafik Veri Etiketinin Gerçek Konumunu Alın

Java Slaytlarında Grafik Veri Etiketinin Gerçek Konumunu Almaya Giriş

Bu eğitimde Aspose.Slides for Java’yı kullanarak grafik veri etiketlerinin gerçek konumunu nasıl alacağınızı öğreneceksiniz. Grafik içeren bir PowerPoint sunumu oluşturan, veri etiketlerini özelleştiren ve ardından bu veri etiketlerinin konumlarını temsil eden şekiller ekleyen bir Java programı oluşturacağız.

Önkoşullar

Başlamadan önce Java projenizde Aspose.Slides for Java kütüphanesinin kurulu olduğundan emin olun.

1. Adım: PowerPoint Sunusu Oluşturun

Öncelikle yeni bir PowerPoint sunusu oluşturalım ve ona bir grafik ekleyelim. Grafiğin veri etiketlerini öğreticinin ilerleyen kısımlarında özelleştireceğiz.

// Belgeler dizininin yolu.
String dataDir = "Your Document Directory";
Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 500, 400);
    chart.validateChartLayout();
} finally {
    if (pres != null) pres.dispose();
}

2. Adım: Veri Etiketlerini Özelleştirin

Şimdi grafik serisi için veri etiketlerini özelleştirelim. Konumlarını belirleyip değerlerini göstereceğiz.

try {
    // ... (önceki kod)
    for (IChartSeries series : chart.getChartData().getSeries()) {
        series.getLabels().getDefaultDataLabelFormat().setPosition(LegendDataLabelPosition.OutsideEnd);
        series.getLabels().getDefaultDataLabelFormat().setShowValue(true);
    }
    // ... (kalan kod)
} finally {
    if (pres != null) pres.dispose();
}

3. Adım: Veri Etiketlerinin Gerçek Konumunu Alın

Bu adımda grafik serisinin veri noktalarını yineleyeceğiz ve değeri 4’ten büyük olan veri etiketlerinin gerçek konumunu alacağız. Daha sonra bu konumları temsil etmek için elipsler ekleyeceğiz.

try {
    // ... (önceki kod)
    for (IChartSeries series : chart.getChartData().getSeries()) {
        for (IChartDataPoint point : series.getDataPoints()) {
            if (point.getValue().toDouble() > 4) {
                float x = point.getLabel().getActualX();
                float y = point.getLabel().getActualY();
                float w = point.getLabel().getActualWidth();
                float h = point.getLabel().getActualHeight();
                IAutoShape shape = chart.getUserShapes().getShapes().addAutoShape(ShapeType.Ellipse, x, y, w, h);
                shape.getFillFormat().setFillType(FillType.Solid);
                shape.getFillFormat().getSolidFillColor().setColor(com.aspose.cells.Color.fromArgb(100, 0, 255, 0).d());
            }
        }
    }
    // ... (kalan kod)
} finally {
    if (pres != null) pres.dispose();
}

4. Adım: Sunuyu Kaydetme

Son olarak oluşturulan sunumu bir dosyaya kaydedin.

try {
    // ... (önceki kod)
    pres.save(dataDir + "GetActualPositionOFChartDatalabel.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Java Slaytlarında Grafik Veri Etiketinin Gerçek Konumunu Almak için Kaynak Kodunu Tamamlayın

// Belgeler dizininin yolu.
String dataDir = "Your Document Directory";
Presentation pres = new Presentation();
try
{
	IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 500, 400);
	for (IChartSeries series : chart.getChartData().getSeries())
	{
		series.getLabels().getDefaultDataLabelFormat().setPosition(LegendDataLabelPosition.OutsideEnd);
		series.getLabels().getDefaultDataLabelFormat().setShowValue(true);
	}
	chart.validateChartLayout();
	for (IChartSeries series : chart.getChartData().getSeries())
	{
		for (IChartDataPoint point : series.getDataPoints())
		{
			if (point.getValue().toDouble() > 4)
			{
				float x = point.getLabel().getActualX();
				float y = point.getLabel().getActualY();
				float w = point.getLabel().getActualWidth();
				float h = point.getLabel().getActualHeight();
				IAutoShape shape = chart.getUserShapes().getShapes().addAutoShape(ShapeType.Ellipse, x, y, w, h);
				shape.getFillFormat().setFillType(FillType.Solid);
				shape.getFillFormat().getSolidFillColor().setColor(com.aspose.cells.Color.fromArgb(100, 0, 255, 0).d());//YAPMAK
			}
		}
	}
	pres.save(dataDir + "GetActualPositionOFChartDatalabel", SaveFormat.Pptx);
}
finally
{
	if (pres != null) pres.dispose();
}

Çözüm

Bu eğitimde, Aspose.Slides for Java’yı kullanarak Java Slides’daki grafik veri etiketlerinin gerçek konumunu nasıl alacağınızı öğrendiniz. Artık bu bilgiyi PowerPoint sunumlarınızı özelleştirilmiş veri etiketleri ve konumlarının görsel temsilleriyle geliştirmek için kullanabilirsiniz.

SSS’ler

Bir grafikteki veri etiketlerini nasıl özelleştirebilirim?

Bir grafikteki veri etiketlerini özelleştirmek içinsetDefaultDataLabelFormat Grafik serisindeki yöntemi kullanın ve konum ve görünürlük gibi özellikleri ayarlayın. Örneğin:

for (IChartSeries series : chart.getChartData().getSeries()) {
    series.getLabels().getDefaultDataLabelFormat().setPosition(LegendDataLabelPosition.OutsideEnd);
    series.getLabels().getDefaultDataLabelFormat().setShowValue(true);
}

Veri etiketi konumlarını temsil edecek şekilleri nasıl ekleyebilirim?

Bir grafik serisinin veri noktalarını yineleyebilir vegetActualX, getActualY, getActualWidth , VegetActualHeightKonumunu almak için veri etiketinin yöntemleri. Daha sonra, kullanarak şekiller ekleyebilirsiniz.addAutoShape yöntem. İşte bir örnek:

float x = point.getLabel().getActualX();
float y = point.getLabel().getActualY();
float w = point.getLabel().getActualWidth();
float h = point.getLabel().getActualHeight();
IAutoShape shape = chart.getUserShapes().getShapes().addAutoShape(ShapeType.Ellipse, x, y, w, h);

Oluşturulan sunumu nasıl kaydedebilirim?

Oluşturulan sunumu kullanarak kaydedebilirsiniz.save yöntem. İstediğiniz dosya yolunu veSaveFormat parametreler olarak. Örneğin:

pres.save(dataDir + "GetActualPositionOFChartDatalabel.pptx", SaveFormat.Pptx);