Impostazione del callout per l'etichetta dati nelle diapositive Java

Introduzione all’impostazione del callout per l’etichetta dati in Aspose.Slides per Java

In questo tutorial, dimostreremo come impostare i callout per le etichette dei dati in un grafico utilizzando Aspose.Slides per Java. I callout possono essere utili per evidenziare punti dati specifici nel grafico. Esamineremo il codice passo dopo passo e forniremo il codice sorgente necessario.

Prerequisiti

  • Dovresti avere Aspose.Slides per Java installato.
  • Crea un progetto Java e aggiungi la libreria Aspose.Slides al tuo progetto.

Passaggio 1: crea una presentazione e aggiungi un grafico

Per prima cosa dobbiamo creare una presentazione e aggiungere un grafico a una diapositiva. Assicurati di sostituire"Your Document Directory" con il percorso effettivo della directory dei documenti.

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);

Passaggio 2: configura il grafico

Successivamente, configureremo il grafico impostando proprietà come legenda, serie e categorie.

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

// Configura serie e categorie (puoi regolare il numero di serie e categorie)
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()) {
        // Aggiungi punti dati qui
        // ...
        i++;
    }
    categoryIndex++;
}

Passaggio 3: personalizzare le etichette dati

Ora personalizzeremo le etichette dei dati, inclusa l’impostazione dei callout per le ultime serie.

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);
    // Personalizza la formattazione dei punti dati (riempimento, linea, ecc.)

    if (i == chart.getChartData().getSeries().size() - 1) {
        IDataLabel lbl = dataPoint.getLabel();
        lbl.getTextFormat().getTextBlockFormat().setAutofitType(TextAutofitType.Shape);
        //Personalizza la formattazione dell'etichetta (carattere, riempimento, ecc.)
        lbl.getDataLabelFormat().setShowValue(false);
        lbl.getDataLabelFormat().setShowCategoryName(true);
        lbl.getDataLabelFormat().setShowSeriesName(false);
        // Abilita callout
        lbl.getDataLabelFormat().setShowLabelAsDataCallout(true);
        lbl.getDataLabelFormat().setShowLeaderLines(true);
    }
    i++;
}

Passaggio 4: salva la presentazione

Infine, salva la presentazione con il grafico configurato.

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

Ora hai impostato correttamente i callout per le etichette dati in un grafico utilizzando Aspose.Slides per Java. Personalizza il codice in base ai tuoi requisiti specifici di grafici e dati.

Codice sorgente completo per l’impostazione del callout per l’etichetta dati nelle diapositive 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(true);
			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);

Conclusione

In questo tutorial, abbiamo esplorato come impostare i callout per le etichette dei dati in un grafico utilizzando Aspose.Slides per Java. I callout sono strumenti preziosi per enfatizzare punti dati specifici nei grafici e nelle presentazioni. Abbiamo fornito una guida passo passo insieme al codice sorgente per aiutarti a ottenere questa personalizzazione.

Domande frequenti

Come posso personalizzare l’aspetto delle etichette dati?

Per personalizzare l’aspetto delle etichette dati, è possibile modificare proprietà quali carattere, riempimento e stili di linea. Per esempio:

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);

Come posso abilitare o disabilitare i callout per le etichette dati?

Per abilitare o disabilitare i callout per le etichette dati, utilizzare il filesetShowLabelAsDataCallout metodo. Impostalo sutrue per abilitare i callout efalseper disabilitarli.

lbl.getDataLabelFormat().setShowLabelAsDataCallout(true); // Abilita callout
lbl.getDataLabelFormat().setShowLabelAsDataCallout(false); // Disabilita callout

Posso personalizzare le linee guida per le etichette dati?

Sì, puoi personalizzare le linee guida per le etichette dati utilizzando proprietà come stile di linea, colore e larghezza. Per esempio:

lbl.getDataLabelFormat().setShowLeaderLines(true); // Abilita linee guida
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);

Queste sono alcune opzioni di personalizzazione comuni per le etichette dei dati e i callout in Aspose.Slides per Java. Puoi personalizzare ulteriormente l’aspetto in base alle tue esigenze specifiche.