Mengatur Callout Untuk Label Data di Slide Java

Pengenalan Pengaturan Callout untuk Label Data di Aspose.Slides untuk Java

Dalam tutorial ini, kami akan mendemonstrasikan cara menyiapkan info untuk label data dalam bagan menggunakan Aspose.Slides untuk Java. Info dapat berguna untuk menyorot titik data tertentu dalam bagan Anda. Kami akan memandu kode langkah demi langkah dan memberikan kode sumber yang diperlukan.

Prasyarat

  • Anda harus menginstal Aspose.Slides untuk Java.
  • Buat proyek Java dan tambahkan perpustakaan Aspose.Slides ke proyek Anda.

Langkah 1: Buat Presentasi dan Tambahkan Bagan

Pertama, kita perlu membuat presentasi dan menambahkan grafik ke slide. Pastikan untuk mengganti"Your Document Directory" dengan jalur sebenarnya ke direktori dokumen Anda.

String dataDir = "Your Document Directory";
Presentation pres = new Presentation(dataDir + "testc.pptx");
ISlide slide = pres.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.Doughnut, 10, 10, 500, 500, false);

Langkah 2: Konfigurasikan Bagan

Selanjutnya, kita akan mengonfigurasi bagan dengan mengatur properti seperti legenda, seri, dan kategori.

IChartDataWorkbook workBook = chart.getChartData().getChartDataWorkbook();
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
chart.setLegend(false);

// Konfigurasikan seri dan kategori (Anda dapat menyesuaikan jumlah seri dan kategori)
int seriesIndex = 0;
while (seriesIndex < 15) {
    IChartSeries series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType());
    series.setExplosion(0);
    series.getParentSeriesGroup().setDoughnutHoleSize((byte) 20);
    series.getParentSeriesGroup().setFirstSliceAngle(351);
    seriesIndex++;
}

int categoryIndex = 0;
while (categoryIndex < 15) {
    chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex));
    int i = 0;
    while (i < chart.getChartData().getSeries().size()) {
        // Tambahkan titik data di sini
        // ...
        i++;
    }
    categoryIndex++;
}

Langkah 3: Sesuaikan Label Data

Sekarang, kita akan menyesuaikan label data, termasuk menyiapkan info untuk rangkaian terakhir.

int i = 0;
while (i < chart.getChartData().getSeries().size()) {
    IChartSeries iCS = chart.getChartData().getSeries().get_Item(i);
    IChartDataPoint dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1));
    dataPoint.getFormat().getFill().setFillType(FillType.Solid);
    // Sesuaikan pemformatan titik data (Isi, Garis, dll.)

    if (i == chart.getChartData().getSeries().size() - 1) {
        IDataLabel lbl = dataPoint.getLabel();
        lbl.getTextFormat().getTextBlockFormat().setAutofitType(TextAutofitType.Shape);
        //Sesuaikan format label (Font, Isi, dll.)
        lbl.getDataLabelFormat().setShowValue(false);
        lbl.getDataLabelFormat().setShowCategoryName(true);
        lbl.getDataLabelFormat().setShowSeriesName(false);
        // Aktifkan info
        lbl.getDataLabelFormat().setShowLabelAsDataCallout(true);
        lbl.getDataLabelFormat().setShowLeaderLines(true);
    }
    i++;
}

Langkah 4: Simpan Presentasi

Terakhir, simpan presentasi dengan bagan yang dikonfigurasi.

pres.save("chart.pptx", SaveFormat.Pptx);

Sekarang, Anda telah berhasil menyiapkan info untuk label data dalam bagan menggunakan Aspose.Slides untuk Java. Sesuaikan kode sesuai dengan bagan spesifik dan kebutuhan data Anda.

Kode Sumber Lengkap Untuk Mengatur Callout Untuk Label Data di Slide Java

String dataDir = "Your Document Directory";
Presentation pres = new Presentation(dataDir + "testc.pptx");
ISlide slide = pres.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.Doughnut, 10, 10, 500, 500, false);
IChartDataWorkbook workBook = chart.getChartData().getChartDataWorkbook();
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
chart.setLegend(false);
int seriesIndex = 0;
while (seriesIndex < 15)
{
	IChartSeries series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType());
	series.setExplosion(0);
	series.getParentSeriesGroup().setDoughnutHoleSize((byte) 20);
	series.getParentSeriesGroup().setFirstSliceAngle(351);
	seriesIndex++;
}
int categoryIndex = 0;
while (categoryIndex < 15)
{
	chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex));
	int i = 0;
	while (i < chart.getChartData().getSeries().size())
	{
		IChartSeries iCS = chart.getChartData().getSeries().get_Item(i);
		IChartDataPoint dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1));
		dataPoint.getFormat().getFill().setFillType(FillType.Solid);
		dataPoint.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
		dataPoint.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.WHITE);
		dataPoint.getFormat().getLine().setWidth(1);
		dataPoint.getFormat().getLine().setStyle(LineStyle.Single);
		dataPoint.getFormat().getLine().setDashStyle(LineDashStyle.Solid);
		if (i == chart.getChartData().getSeries().size() - 1)
		{
			IDataLabel lbl = dataPoint.getLabel();
			lbl.getTextFormat().getTextBlockFormat().setAutofitType(TextAutofitType.Shape);
			lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(NullableBool.True);
			lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new FontData("DINPro-Bold"));
			lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12);
			lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(FillType.Solid);
			lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.LIGHT_GRAY);
			lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.WHITE);
			lbl.getDataLabelFormat().setShowValue(false);
			lbl.getDataLabelFormat().setShowCategoryName(true);
			lbl.getDataLabelFormat().setShowSeriesName(false);
			//lbl.getDataLabelFormat().setShowLabelAsDataCallout(benar);
			lbl.getDataLabelFormat().setShowLeaderLines(true);
			lbl.getDataLabelFormat().setShowLabelAsDataCallout(false);
			chart.validateChartLayout();
			lbl.setX(lbl.getX() + (float) 0.5);
			lbl.setY(lbl.getY() + (float) 0.5);
		}
		i++;
	}
	categoryIndex++;
}
pres.save("chart.pptx", SaveFormat.Pptx);

Kesimpulan

Dalam tutorial ini, kita telah menjelajahi cara menyiapkan info untuk label data dalam bagan menggunakan Aspose.Slides untuk Java. Info adalah alat berharga untuk menekankan titik data tertentu dalam bagan dan presentasi Anda. Kami telah menyediakan panduan langkah demi langkah bersama dengan kode sumber untuk membantu Anda mencapai penyesuaian ini.

FAQ

Bagaimana cara menyesuaikan tampilan label data?

Untuk mengkustomisasi tampilan label data, Anda dapat mengubah properti seperti font, isian, dan gaya garis. Misalnya:

IDataLabel lbl = dataPoint.getLabel();
lbl.getTextFormat().getTextBlockFormat().setAutofitType(TextAutofitType.Shape);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(NullableBool.True);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new FontData("DINPro-Bold"));
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(FillType.Solid);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.LIGHT_GRAY);
lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.WHITE);

Bagaimana cara mengaktifkan atau menonaktifkan info untuk label data?

Untuk mengaktifkan atau menonaktifkan info untuk label data, gunakansetShowLabelAsDataCallout metode. Setel ketrue untuk mengaktifkan info danfalseuntuk menonaktifkannya.

lbl.getDataLabelFormat().setShowLabelAsDataCallout(true); // Aktifkan info
lbl.getDataLabelFormat().setShowLabelAsDataCallout(false); // Nonaktifkan info

Bisakah saya menyesuaikan garis pemimpin untuk label data?

Ya, Anda dapat menyesuaikan garis pemimpin untuk label data menggunakan properti seperti gaya garis, warna, dan lebar. Misalnya:

lbl.getDataLabelFormat().setShowLeaderLines(true); // Aktifkan garis pemimpin
lbl.getDataLabelFormat().getLeaderLinesFormat().getFormat().getLine().setStyle(LineStyle.Single);
lbl.getDataLabelFormat().getLeaderLinesFormat().getFormat().getLine().setWidth(1);
lbl.getDataLabelFormat().getLeaderLinesFormat().getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
lbl.getDataLabelFormat().getLeaderLinesFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.BLACK);

Ini adalah beberapa opsi penyesuaian umum untuk label data dan info di Aspose.Slides untuk Java. Anda selanjutnya dapat menyesuaikan tampilan dengan kebutuhan spesifik Anda.