AFFAIRE Introduction
On pourra utiliser la programmation dite lettrée (“literate programming”), qui est une programmation didactique qui vise à expliciter et expliquer ce que font les programmes, comme Knuth (1984) le décrit (repris dans le chapitre 4 de Knuth (1992)):
Changeons notre approche traditionnelle de la conception de programmes : au lieu d’imaginer que notre tâche principale consiste à dire à un ordinateur ce qu’il doit faire, concentrons-nous plutôt sur l’explication aux êtres humains de ce que nous voulons qu’un ordinateur fasse.
Objectifs
- Comprendre la programmation informatique, comprendre la démonstration mathématique
- Programmer pour comprendre des phénomènes mathématiques
Moyens - Langages - Outils (bibliothèques pour la création de graphiques mathématiques)
Installations
Les textes ci-dessous ont été engendrés par deepseek, soit 深度求索 (Shēndù Qiúsuǒ), qu’on peut traduire ainsi :
- 深度 (shēndù) : profondeur (au sens intellectuel ou technique),
- 求索 (qiúsuǒ) : chercher, explorer, poursuivre une quête.
→ “Explorer en profondeur”, soit DeepSeek (深度求索 étant la traduction officielle chinoise de la marque).
Quarto : vers la programmation didactique
Installer et tester l’installation de Quarto.
📚 Quarto : La programmation lettrée accessible au lycéen
Quarto est un outil magique qui te permet de créer des documents intelligents en mélangeant du texte, du code et des résultats dans un seul fichier. Imagine écrire un compte-rendu de TP où :
- *les explications** (en Markdown simple) 📝
- le code (Python, R, ou même Java) 💻
- les résultats (graphiques, tableaux, calculs) 📊
s’assemblent automatiquement en un seul document propre (PDF, site web, diaporama).
✨ C’est comme si ton cahier devenait vivant : quand tu modifies le code, les graphiques se mettent à jour tout seuls !
Parfait pour :
- les rapports scientifiques (physique, maths),
- les présentations interactives,
- les portfolios de programmation.
👉 Avec Quarto, tu racontes une histoire avec du code, et l’ordinateur t’aide à la mettre en page !
Création de graphiques avec Java - L’espace des possibles
Il existe plusieurs bibliothèques Java offrant des fonctionnalités similaires à Matplotlib (Python) pour la création de graphiques et la visualisation de données. En voici quelques-unes des plus populaires.
📊 JFreeChart
Équivalent le plus proche : Bibliothèque open-source mature et largement utilisée.
Fonctionnalités :
- Graphiques 2D (courbes, barres, secteurs, histogrammes, nuages de points).
- Interactivité (zoom, tooltips).
- Export en PNG, JPEG, SVG, PDF.
- Graphiques 2D (courbes, barres, secteurs, histogrammes, nuages de points).
Exemple d’utilisation :
= ...; // Création des données Dataset dataset = ChartFactory.createLineChart("Titre", "X", "Y", dataset); JFreeChart chart = new ChartFrame("Graphique", chart); ChartFrame frame .pack(); frame.setVisible(true); frame
📊 XChart
Avantage : Légère, intuitive et conçue pour une intégration rapide.
Fonctionnalités :
- Types de graphiques variés (lignes, barres, aires, histogrammes, etc.).
- Style personnalisable (couleurs, polices).
- Export SVG/PNG et génération de HTML interactif.
- Types de graphiques variés (lignes, barres, aires, histogrammes, etc.).
Exemple :
= new CategoryChartBuilder().build(); CategoryChart chart .addSeries("Série 1", xData, yData); chartnew SwingWrapper<>(chart).displayChart();
📊 JavaFX Chart API (Intégré à JavaFX)
Idéal pour : Applications desktop modernes.
Types inclus :
LineChart
,BarChart
,PieChart
,ScatterChart
,AreaChart
.
Avantage : Animations fluides et rendu vectoriel.
Exemple :
<Number, Number> chart = new LineChart<>(xAxis, yAxis); LineChart.Series series = new XYChart.Series(); XYChart.getData().add(new XYChart.Data(1, 10)); series.getData().add(series); chart
📊 Orson Charts (Commercial avec version gratuite)
- Points forts :
- Graphiques 3D (surfaces, nuages de points).
- Rendus haute qualité.
- Compatible avec Swing/JavaFX.
- Graphiques 3D (surfaces, nuages de points).
📊 Jzy3d
- Spécialisation : Visualisation 3D interactive (similaire à
mplot3d
de Matplotlib).
- Fonctionnalités : Surfaces, nuages de points 3D, couleurs interpolées.
📊 Tablesaw
- Focus : Analyse de données + visualisation (inspiré par
pandas
+matplotlib
).
- Graphiques : Lignes, barres, histogrammes via
tech.tablesaw.plotly
.
- Export : Graphiques interactifs au format HTML (utilisant Plotly).
Comparatif rapide
Bibliothèque | 2D | 3D | Interactivité | Export HTML | Intégration UI |
---|---|---|---|---|---|
JFreeChart | ✅ | ❌ | ✅ | ❌ | Swing |
XChart | ✅ | ❌ | ✅ | ✅ | Swing/JavaFX |
JavaFX Charts | ✅ | ❌ | ✅ | ❌ | JavaFX |
Jzy3d | ❌ | ✅ | ✅ | ❌ | Swing |
Tablesaw | ✅ | ❌ | ✅ | ✅ | Browser |
Recommandation
- Pour un équivalent direct à Matplotlib : JFreeChart (pour sa maturité).
- Pour des graphiques interactifs simples : XChart.
- Pour une application JavaFX : utilisez l’API JavaFX Chart.
- Pour des visualisations 3D : Jzy3d.
Toutes ces bibliothèques sont bien documentées avec des exemples disponibles sur GitHub ou leurs sites officiels.
Notre choix : XChart dans VSCodium
Pour utiliser XChart dans VSCodium, suivez ces étapes :
Configuration du projet (Maven)
Ajoutez la dépendance XChart dans votre pom.xml
:
dependencies>
<dependency>
<groupId>org.knowm.xchart</groupId>
<artifactId>xchart</artifactId>
<version>3.8.6</version> <!-- Vérifiez la dernière version sur Maven Central -->
<dependency>
</dependencies> </
Exemple de code simple
Créez un fichier Main.java
:
import org.knowm.xchart.CategoryChart;
import org.knowm.xchart.CategoryChartBuilder;
import org.knowm.xchart.SwingWrapper;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
// 1. Créer des données
var xData = Arrays.asList("A", "B", "C", "D");
var yData = Arrays.asList(4, 6, 3, 8);
// 2. Initialiser le graphique
= new CategoryChartBuilder()
CategoryChart chart .width(800)
.height(600)
.title("Exemple XChart")
.xAxisTitle("Catégories")
.yAxisTitle("Valeurs")
.build();
// 3. Ajouter les données
.addSeries("Série 1", xData, yData);
chart
// 4. Afficher dans une fenêtre
new SwingWrapper<>(chart).displayChart();
}
}
Exécution avec VSCodium
- Étape 1 : Ouvrez le dossier du projet dans VSCodium
- Étape 2 : Compilez et exécutez avec Maven :
Ouvrez le terminal intégré (`Ctrl + ``)
Exécutez dans un shell :
mvn clean compile exec:java -Dexec.mainClass="Main"
Exporter comme image (PNG)
Ajoutez ce code à la fin de main()
pour sauvegarder le graphique :
import org.knowm.xchart.BitmapEncoder;
import java.io.IOException;
// ...
try {
.saveBitmap(chart, "./mon-graphique", BitmapEncoder.BitmapFormat.PNG);
BitmapEncoder} catch (IOException e) {
.printStackTrace();
e}
Dépannage courant
- Erreur “No valid Maven installation” :
Installez Maven et configurez le chemin dans VSCodium (extension Maven for Java).
- Erreur de dépendance :
Exécutezmvn dependency:resolve
dans le terminal.
- Fenêtre graphique ne s’affiche pas :
Vérifiez que vous utilisezSwingWrapper
et que votre OS prend en charge Swing.
Personnalisation avancée
Modifiez les couleurs/styles :
.getStyler()
chart.setSeriesColors(new Color[]{new Color(255, 0, 0)}) // Rouge
.setPlotGridLinesVisible(false);
Documentation : XChart GitHub
Exemples complets : XChart Demo
Maven pour un débutant : Définition Simple
Maven est un outil qui t’aide à gérer ton projet Java comme un chef cuisinier gère sa recette 🧑🍳. Imagine que tu veuilles faire un gâteau (ton programme). Au lieu d’acheter les ingrédients un par un (bibliothèques), Maven les récupère automatiquement pour toi !
🔍 Analogie Lycée
Concept Maven | Équivalent Lycée |
---|---|
pom.xml (fichier de configuration) |
Ta liste de courses 📝 |
Dépendances (bibliothèques) | Les ingrédients du gâteau 🥚🍫 |
Maven Central (magasin en ligne) | Le supermarché 🛒 |
Build (compilation) | Cuire le gâteau au four 🔥 |
🛠 À quoi ça sert ?
- Télécharger automatiquement des bibliothèques (comme XChart)
- Compiler ton code en un clic
- Créer un fichier .JAR (exécutable)
- Gérer les versions des outils
💻 Installation Rapide (Windows/Mac)
Télécharge Maven ici : https://maven.apache.org
Dézippe le dossier
Ajoute le chemin au PATH :
- Windows :
C:\chemin\vers\apache-maven-3.x\bin
- Mac :
/chemin/vers/apache-maven-3.x/bin
- Windows :
Vérifie dans le terminal dans un shell :
mvn --version
📁 Structure d’un Projet Maven
mon-projet/
├── src/
│ ├── main/
│ │ └── java/ <── TES FICHIERS JAVA (.java)
│ └── test/ (pour les tests)
└── pom.xml <── FICHIER CLÉ ! ✨
✨ Le fichier pom.xml
(Exemple Simplissime)
project>
<modelVersion>4.0.0</modelVersion>
<
<!-- Carte d'identité du projet -->
groupId>fr.lycee</groupId>
<artifactId>mon-projet</artifactId>
<version>1.0</version>
<
<!-- Ingrédients -->
dependencies>
<dependency>
<groupId>org.knowm.xchart</groupId>
<artifactId>xchart</artifactId>
<version>3.8.6</version>
<dependency>
</dependencies>
</project> </
🚀 Commandes de Base à Connaître
Commande | Effet Magique ✨ |
---|---|
mvn compile |
Compile ton code |
mvn exec:java |
Exécute le programme |
mvn package |
Crée un .JAR exécutable |
mvn clean |
Nettoie le projet (efface les .class) |
Exemple pour lancer un programme :
mvn compile exec:java -Dexec.mainClass="fr.lycee.MonProgramme"
💡 Conseil de Pro
Dans VSCodium :
1. Installe l’extension “Extension Pack for Java”
2. Crée ton pom.xml
3. VS Code détectera automatiquement les dépendances !
4. Utilise les boutons ▶️ pour compiler/exécuter
🧩 Pourquoi c’est génial ?
- Plus besoin de chercher les bibliothèques sur internet 🔍
- Tous les membres du groupe utilisent les mêmes versions
- Fonctionne sur tous les ordinateurs 💻
“Maven c’est comme un robot qui fait le sale boulot à ta place !” 🤖
Tu commences ? Je te conseille ce tutoriel vidéo simple 🎬