Personnaliser les axes de graphiques dans les présentations avec Java
Obtenir les valeurs maximales sur l’axe vertical des graphiques
Aspose.Slides for Java vous permet d’obtenir les valeurs minimale et maximale sur un axe vertical. Parcourez ces étapes:
- Créez une instance de la classe Presentation.
- Accédez à la première diapositive.
- Ajoutez un graphique avec des données par défaut.
- Obtenez la valeur maximale réelle sur l’axe.
- Obtenez la valeur minimale réelle sur l’axe.
- Obtenez l’unité principale réelle de l’axe.
- Obtenez l’unité secondaire réelle de l’axe.
- Obtenez l’échelle de l’unité principale réelle de l’axe.
- Obtenez l’échelle de l’unité secondaire réelle de l' axe.
Presentation pres = new Presentation();
try {
Chart chart = (Chart)pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Area, 100, 100, 500, 350);
chart.validateChartLayout();
double maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue();
double minValue = chart.getAxes().getVerticalAxis().getActualMinValue();
double majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit();
double minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit();
// Enregistre la présentation
pres.save("MaxValuesVerticalAxis_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Échanger les données entre les axes
Aspose.Slides vous permet d’échanger rapidement les données entre les axes — les données représentées sur l’axe vertical (axe y) sont déplacées vers l’axe horizontal (axe x) et vice‑versa.
Ce code Java vous montre comment effectuer l’échange de données entre les axes d’un graphique:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 400, 300);
//Échange les lignes et les colonnes
chart.getChartData().switchRowColumn();
//Enregistre la présentation
pres.save("SwitchChartRowColumns_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Désactiver l’axe vertical pour les graphiques en courbes
Ce code Java vous montre comment masquer l’axe vertical d’un graphique en courbes:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 100, 100, 400, 300);
chart.getAxes().getVerticalAxis().setVisible(false);
pres.save("chart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Désactiver l’axe horizontal pour les graphiques en courbes
Ce code vous montre comment masquer l’axe horizontal d’un graphique en courbes:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 100, 100, 400, 300);
chart.getAxes().getHorizontalAxis().setVisible(false);
pres.save("chart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Modifier un axe de catégorie
En utilisant la propriété CategoryAxisType, vous pouvez spécifier le type d’axe de catégorie souhaité (date ou text). Ce code en Java montre l’opération:
Presentation presentation = new Presentation("ExistingChart.pptx");
try {
IChart chart = (IChart)presentation.getSlides().get_Item(0).getShapes().get_Item(0);
chart.getAxes().getHorizontalAxis().setCategoryAxisType(CategoryAxisType.Date);
chart.getAxes().getHorizontalAxis().setAutomaticMajorUnit(false);
chart.getAxes().getHorizontalAxis().setMajorUnit(1);
chart.getAxes().getHorizontalAxis().setMajorUnitScale(TimeUnitType.Months);
presentation.save("ChangeChartCategoryAxis_out.pptx", SaveFormat.Pptx);
} finally {
if (presentation != null) presentation.dispose();
}
Définir le format de date pour les valeurs de l’axe de catégorie
Aspose.Slides for Java vous permet de définir le format de date pour une valeur d’axe de catégorie. L’opération est illustrée dans ce code Java:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Area, 50, 50, 450, 300);
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().add(wb.getCell(0, "A2", convertToOADate(new GregorianCalendar(2015, 1, 1))));
chart.getChartData().getCategories().add(wb.getCell(0, "A3", convertToOADate(new GregorianCalendar(2016, 1, 1))));
chart.getChartData().getCategories().add(wb.getCell(0, "A4", convertToOADate(new GregorianCalendar(2017, 1, 1))));
chart.getChartData().getCategories().add(wb.getCell(0, "A5", convertToOADate(new GregorianCalendar(2018, 1, 1))));
IChartSeries series = chart.getChartData().getSeries().add(ChartType.Line);
series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B2", 1));
series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B3", 2));
series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B4", 3));
series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B5", 4));
chart.getAxes().getHorizontalAxis().setCategoryAxisType(CategoryAxisType.Date);
chart.getAxes().getHorizontalAxis().setNumberFormatLinkedToSource(false);
chart.getAxes().getHorizontalAxis().setNumberFormat("yyyy");
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
public static String convertToOADate(GregorianCalendar date) throws ParseException
{
double oaDate;
SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");
java.util.Date baseDate = myFormat.parse("30 12 1899");
Long days = TimeUnit.DAYS.convert(date.getTimeInMillis() - baseDate.getTime(), TimeUnit.MILLISECONDS);
oaDate = (double) days + ((double) date.get(Calendar.HOUR_OF_DAY) / 24) + ((double) date.get(Calendar.MINUTE) / (60 * 24)) + ((double) date.get(Calendar.SECOND) / (60 * 24 * 60));
return String.valueOf(oaDate);
}
Définir un angle de rotation pour le titre d’un axe de graphique
Aspose.Slides for Java vous permet de définir l’angle de rotation pour le titre d’un axe de graphique. Ce code Java montre l’opération:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 450, 300);
chart.getAxes().getVerticalAxis().setTitle(true);
chart.getAxes().getVerticalAxis().getTitle().getTextFormat().getTextBlockFormat().setRotationAngle(90);
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Définir la position de l’axe sur un axe de catégorie ou de valeur
Aspose.Slides for Java vous permet de définir la position de l’axe dans un axe de catégorie ou de valeur. Ce code Java montre comment effectuer la tâche:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 450, 300);
chart.getAxes().getHorizontalAxis().setAxisBetweenCategories(true);
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Activer l’étiquette d’unité d’affichage sur l’axe de valeur du graphique
Aspose.Slides for Java vous permet de configurer un graphique pour afficher une étiquette d’unité sur son axe de valeur. Ce code Java montre l’opération:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 450, 300);
chart.getAxes().getVerticalAxis().setDisplayUnit(DisplayUnitType.Millions);
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Comment définir la valeur à laquelle un axe coupe l’autre (croisement d’axes) ?
Les axes offrent un paramètre de croisement: vous pouvez choisir de croiser à zéro, au maximum de la catégorie/valeur, ou à une valeur numérique spécifique. Ceci est utile pour déplacer l’axe X vers le haut ou le bas ou pour mettre en évidence une ligne de base.
Comment positionner les libellés des graduations par rapport à l’axe (à côté, à l’extérieur, à l’intérieur) ?
Définissez la position du libellé sur “cross”, “outside” ou “inside”. Cela influence la lisibilité et aide à économiser de l’espace, surtout sur les petits graphiques.