Bonjour,

J'ai fait un bout de code pour tracer une courbe de tendance de puissance à partir de points récupérés dans un datagrid.
Maintenant je voudrais afficher les coefficients a et b pour voir si ça colle et surtout pour les utiliser dans des calculs.
J'ai écrit le bout de code suivant pour les visualiser dans des "Label" (je n'ai pas changé le nom vu que c'est provisoire.
Le problème c'est que si la courbe afficher semble correcte, je n'obtiens pas les coeff et quand on regarde les points collectés, tous les x restent à 0.

Je soupçonne que le problème vient du fait que j'ai des "," dans mes valeurs de x, mais je ne trouve pas comment pallier à ce problème, et j'ai cherché pourtant ! Mais étant débutante, il y a surement une subtilité qui m'a échappée.

Si vous connaissez aussi un bon tuto sur les charts et datagrid, je prends !

Merci

Karen

Code VB.NET : 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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Private Sub BtnCourbe_Click(sender As Object, e As EventArgs) Handles BtnCourbe.Click
        'Effacer les courbes
        ChartEta.Series.Clear()
        ChartEta.Series.Add(New DataVisualization.Charting.Series())
        ChartEta.Series.Item(0).ChartType = False
        ChartEta.Series.Item(0).MarkerStyle = DataVisualization.Charting.MarkerStyle.Cross
        'Afficher les points d'etalonnage
        ChartEta.Visible = True
        For Each Ligne As DataGridViewRow In DataGridView2.Rows
            If Not IsNothing(Ligne.Cells.Item(1).Value) Then
                ChartEta.Series.Item(0).Points.AddXY(Ligne.Cells.Item(0).Value, Ligne.Cells.Item(2).Value)
            End If
        Next
        'Afficher la courbe
        ChartEta.Series.Add("Trendline")
        ChartEta.Series("Trendline").ChartType = SeriesChartType.Line
        ChartEta.DataManipulator.FinancialFormula(FinancialFormula.Forecasting, "Power,1,false,false", ChartEta.Series.Item(0), ChartEta.Series("Trendline"))
        'Afficher les valeurs a et b
        Dim CoupleXY As DataPoint
        Dim x1 As Double
        Dim x2 As Double
        Dim y1 As Double
        Dim y2 As Double
        For Each CoupleXY In ChartEta.Series("Trendline").Points
            If CoupleXY.XValue = 1 Then
                y2 = CoupleXY.YValues(0)
            Else
                x1 = CoupleXY.XValue
                y1 = CoupleXY.YValues(0)
            End If
            If x1 <> 0 And y2 <> 0 Then Exit For
        Next
        Dim a As Double
        Dim b As Double
        a = y2
        Label1.Text = "a=" + a.ToString
        b = Math.Log(y1 / y2) / Math.Log(x1)
        Label2.Text = "b=" + b.ToString
 
    End Sub