Bonjour à tous !!!

Je suis entrain de réfléchir à un moyen de créer des graphiques.

Je suis parti d'un exemple simple : la répartition des ventes d'un produit par mois.
En x : Janvier, Février, Mars,...
En y : 70, 100, 150, ...

Premier problème, les graduations : je ne peux pas toujours mettre 0 comme valeur initiale pour l'axe y. Car pour certains graphiques le 0 n'est pas significatif.
Une solution serait d'utiliser les fonctions donnant le minimum et le maximum dans une liste de données comme valeur initiale et finale pour l'axe.
C'est déjà un peu mieux, mais le graphique n'est pas très agréable à regarder. Il faut un espace minimum en dessous de la valeur minimale et au dessus de la valeur maximale.

Je commence à imaginer mon algorithme :
Il y a entre 6 et 10 graduations.
Les graduations s'espacent de 1, 2, 5, 10 puis 20 (je peux encore continuer)
Si la valeur maximale dans mes données est comprise entre [153 et 171] par exemple, la valeur maximale de ma graduation est 180


Graduations | Pas | Max Graphe|Max Valeur >=
10 20 200 172
9 20 180 153
8 20 160 134
7 20 140 115
6 20 120 96
10 10 100 86
9 10 90 77
8 10 80 67
7 10 70 58
6 10 60 48
10 5 50 43
9 5 45 39
8 5 40 34
7 5 35 29
6 5 30 24
5 5 25 20
10 2 20 18
9 2 18 16
8 2 16 14
7 2 14 12
6 2 12 10
10 1 10 9
9 1 9 8
8 1 8 7
7 1 7 6
6 1 6 5

Ca commence à prendre forme, mais je fais face à un autre problème. Si les valeurs dans ma base de données sont proches du style 150 152 148. Même en connaissant la valeur maximale : 152 dans ce cas ci, le graphique ne ressemble toujours à rien. Je dois aussi prendre en considération la valeur minimale…

Ce n'est qu'un début évidemment et j'attends vos remarques avec la plus grande attention.

PS : Quand l'algorithme sera correct, je le ferai en vb.net