From c11af3741feda4a943ebd7507588f5058a8a4e51 Mon Sep 17 00:00:00 2001 From: "hugo.debuyser.etu" <hugo.debuyser.etu@univ-lille.fr> Date: Thu, 24 Oct 2024 17:28:29 +0200 Subject: [PATCH] =?UTF-8?q?Changement=20de=20la=20m=C3=A9thode=20d'afficha?= =?UTF-8?q?ge=20des=20points=20sur=20le=20graphe=20et=20sur=20les=20nouvea?= =?UTF-8?q?ux=20points?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sae/classification/model/Iris.java | 1 + .../classification/view/MainStageView.java | 32 ++++++++++++------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/main/java/fr/univlille/sae/classification/model/Iris.java b/src/main/java/fr/univlille/sae/classification/model/Iris.java index 94e3972..8db8d70 100644 --- a/src/main/java/fr/univlille/sae/classification/model/Iris.java +++ b/src/main/java/fr/univlille/sae/classification/model/Iris.java @@ -62,6 +62,7 @@ public class Iris extends LoadableData{ return petalLength; } + public String getVariety() { return variety; } public double getDataType(String axes){ switch (axes){ diff --git a/src/main/java/fr/univlille/sae/classification/view/MainStageView.java b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java index 9fe2d12..0e686af 100644 --- a/src/main/java/fr/univlille/sae/classification/view/MainStageView.java +++ b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java @@ -17,6 +17,8 @@ import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; import javafx.scene.paint.Color; import javafx.scene.shape.Circle; +import javafx.scene.shape.Rectangle; +import javafx.scene.shape.Shape; import javafx.stage.Stage; import java.io.File; @@ -71,8 +73,12 @@ public class MainStageView implements Observer { scatterChart.getData().clear(); XYChart.Series series1 = new XYChart.Series(); - series1.setName("Iris"); + XYChart.Series series2 = new XYChart.Series(); + XYChart.Series series3 = new XYChart.Series(); + series1.setName("Setosa"); + series2.setName("Versicolor"); + series3.setName("Virginica"); //Jalon 1: on verifie que le type de donnée est bien IRIS if(model.getType() == DataType.IRIS) { @@ -83,7 +89,7 @@ public class MainStageView implements Observer { else{ controller.setAxesSelected(""); // On ajoute la serie au nuage - scatterChart.getData().add(series1); + scatterChart.getData().addAll(series1, series2, series3); //On recupere les données du model List<LoadableData> points = new ArrayList<>(model.getDatas()); @@ -95,20 +101,24 @@ public class MainStageView implements Observer { XYChart.Data<Double, Double> dataPoint = new XYChart.Data<>(iris.getDataType(actualX), iris.getDataType(actualY)); - dataPoint.setNode(getCircle(iris)); + dataPoint.setNode(getForm(iris, new Circle(5))); - series1.getData().add(dataPoint); + if(iris.getVariety().equals("Setosa")){ + series1.getData().add(dataPoint); + }else if(iris.getVariety().equals("Versicolor")){ + series2.getData().add(dataPoint); + }else if(iris.getVariety().equals("Virginica")){ + series3.getData().add(dataPoint); + } } } } } - - private Circle getCircle(Iris iris) { - Circle circle = new Circle(5); - circle.setFill(iris.getColor()); - circle.setOnMouseClicked(e -> { + private Shape getForm(Iris iris, Shape form) { + form.setFill(iris.getColor()); + form.setOnMouseClicked(e -> { ContextMenu contextMenu = new ContextMenu(); for(String attributes : iris.getAttributesName()) { contextMenu.getItems().add(new MenuItem(attributes + " : " + iris.getDataType(attributes))); @@ -116,7 +126,7 @@ public class MainStageView implements Observer { contextMenu.show(root, e.getScreenX(), e.getScreenY()); }); - return circle; + return form; } @@ -136,7 +146,7 @@ public class MainStageView implements Observer { iris.getDataType(actualY) ); - dataPoint.setNode(getCircle(iris)); + dataPoint.setNode(getForm(iris, new Rectangle(10, 10))); if (!scatterChart.getData().isEmpty()) { XYChart.Series series = (XYChart.Series) scatterChart.getData().get(0); series.getData().add(dataPoint); -- GitLab