Bonjour,
Je suis en train de mettre en place une graphe de monitoring dont les données sont insérées toutes les 2 secondes. Je ne veux pas que toutes données soit visibles sur le graphique. Je voudrais mettre en place une intervalle d'affichage. J'ai utilisé ce code pour pouvoir le faire
Ce code, je le mets à l'initialisation du graphique et le résultat est que j'ai le graphique qui n'affiche que les premières données affichées dans cette intervalle. Ensuite, elle ne se deplace pas en fonction des autres données insérées. Ce qui est normal. Donc j'ai mis le code dans la fonction qui insère les points
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 chartLine.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Number; chartLine.ChartAreas[0].AxisX.ScaleView.Size = modulo;
La par contre rien ne se fait, on voit sur le graphique tous les points insérés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 for (int i = 0; i < data.Count; i++) { if (chartLine.InvokeRequired) { this.Invoke((MethodInvoker)delegate { chartLine.Series[0].Points.AddXY(data.Keys.ElementAt(i), data[data.Keys.ElementAt(i)]); chartLine.Series["Lower limit"].Points.AddXY(data.Keys.ElementAt(i), lower[i]); chartLine.Series["Upper limit"].Points.AddXY(data.Keys.ElementAt(i), upper[i]); if (chartLine.Series[0].Points.Count % modulo == 0) { min = max; max += modulo; chartLine.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Number; chartLine.ChartAreas[0].AxisX.ScaleView.MinSize = min; } }); } }
Est ce que quelqu'un a une idée pour rendre l'intervalle d'affichage dynamique? Du même type que le graphique dans windows task manager.
Merci pour votre aide
Partager