Obtenha a posição real do rótulo de dados do gráfico em slides Java
Introdução para obter a posição real do rótulo de dados do gráfico em slides Java
Neste tutorial, você aprenderá como recuperar a posição real dos rótulos de dados do gráfico usando Aspose.Slides para Java. Criaremos um programa Java que gera uma apresentação em PowerPoint com um gráfico, personaliza os rótulos de dados e depois adiciona formas que representam as posições desses rótulos de dados.
Pré-requisitos
Antes de começar, certifique-se de ter a biblioteca Aspose.Slides para Java configurada em seu projeto Java.
Etapa 1: crie uma apresentação em PowerPoint
Primeiro, vamos criar uma nova apresentação em PowerPoint e adicionar um gráfico a ela. Personalizaremos os rótulos de dados do gráfico posteriormente neste tutorial.
// O caminho para o diretório de documentos.
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();
}
Etapa 2: personalizar rótulos de dados
Agora, vamos personalizar os rótulos de dados da série de gráficos. Definiremos sua posição e mostraremos os valores.
try {
// ... (código anterior)
for (IChartSeries series : chart.getChartData().getSeries()) {
series.getLabels().getDefaultDataLabelFormat().setPosition(LegendDataLabelPosition.OutsideEnd);
series.getLabels().getDefaultDataLabelFormat().setShowValue(true);
}
// ... (código restante)
} finally {
if (pres != null) pres.dispose();
}
Etapa 3: Obtenha a posição real dos rótulos de dados
Nesta etapa, iremos iterar pelos pontos de dados da série de gráficos e recuperar a posição real dos rótulos de dados que possuem um valor maior que 4. Em seguida, adicionaremos elipses para representar essas posições.
try {
// ... (código anterior)
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());
}
}
}
// ... (código restante)
} finally {
if (pres != null) pres.dispose();
}
Etapa 4: salve a apresentação
Por fim, salve a apresentação gerada em um arquivo.
try {
// ... (código anterior)
pres.save(dataDir + "GetActualPositionOFChartDatalabel.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Código-fonte completo para obter a posição real do rótulo de dados do gráfico em slides Java
// O caminho para o diretório de documentos.
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());//PENDÊNCIA
}
}
}
pres.save(dataDir + "GetActualPositionOFChartDatalabel", SaveFormat.Pptx);
}
finally
{
if (pres != null) pres.dispose();
}
Conclusão
Neste tutorial, você aprendeu como recuperar a posição real dos rótulos de dados do gráfico em Java Slides usando Aspose.Slides for Java. Agora você pode usar esse conhecimento para aprimorar suas apresentações em PowerPoint com rótulos de dados personalizados e representações visuais de suas posições.
Perguntas frequentes
Como posso personalizar rótulos de dados em um gráfico?
Para personalizar rótulos de dados em um gráfico, você pode usar osetDefaultDataLabelFormat
método na série de gráficos e definir propriedades como posição e visibilidade. Por exemplo:
for (IChartSeries series : chart.getChartData().getSeries()) {
series.getLabels().getDefaultDataLabelFormat().setPosition(LegendDataLabelPosition.OutsideEnd);
series.getLabels().getDefaultDataLabelFormat().setShowValue(true);
}
Como posso adicionar formas para representar as posições dos rótulos de dados?
Você pode iterar pelos pontos de dados de uma série de gráficos e usar o métodogetActualX
, getActualY
, getActualWidth
, egetActualHeight
métodos do rótulo de dados para obter sua posição. Então, você pode adicionar formas usando oaddAutoShape
método. Aqui está um exemplo:
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);
Como posso salvar a apresentação gerada?
Você pode salvar a apresentação gerada usando osave
método. Forneça o caminho do arquivo desejado e oSaveFormat
como parâmetros. Por exemplo:
pres.save(dataDir + "GetActualPositionOFChartDatalabel.pptx", SaveFormat.Pptx);