Partager via


Recherche de points de données avec des contrôles Chart

Vous pouvez rechercher les valeurs X et Y de points de données dans une série pour une plage de valeurs ou une valeur spécifique.La recherche de points de données avec des valeurs spécifiques est utile lorsque vous souhaitez :

  • vérifier une plage de valeurs ;

  • modifier l'apparence visuelle de points ayant une certaine valeur ;

  • définir des étiquettes de points ;

  • utiliser la position d'un point pour un dessin personnalisé.

Recherche de points de données

La propriété de collection Series.Points expose plusieurs méthodes pour la recherche de points.

  • FindValue
    Retourne le premier point d'une série avec la valeur spécifiée.

  • FindMaxValue
    Retourne le premier point d'une série avec la plus grande valeur.

  • FindMinValue
    Retourne le premier point d'une série avec la plus petite valeur.

Notes

Ces méthodes retournent une valeur Null si aucun point ne correspond aux critères de recherche.

Utilisez chacune de ces méthodes dans une boucle pour trouver tous les points qui correspondent à des critères de recherche.Pour trouver tous les points à partir d'un index de départ prédéfini, utilisez l'une des méthodes avec un paramètre startFromIndex.Si vous fournissez ce paramètre, la méthode l'utilise également pour indiquer l'index du point de données retourné.

Le code suivant montre comment rechercher des points de données par la première valeur Y.

' Find the first data point with the maximum Y value.
Dim maxDataPoint As DataPoint = mySeries.Points().FindMaxValue()
' Find the first data point with the minimum Y value.
Dim minDataPoint As DataPoint = mySeries.Points().FindMinValue()
' Find the first data point with a first Y value of 10.
Dim dataPoint As DataPoint = mySeries.Points().FindValue(10.0)
// Find the first data point with the maximum Y value.  
DataPoint maxDataPoint = mySeries.Points().FindMaxValue();
// Find the first data point with the minimum Y value.
DataPoint minDataPoint = mySeries.Points().FindMinValue();
// Find the first data point with a first Y value of 10.
DataPoint dataPoint = mySeries.Points().FindValue(10);

Pour rechercher une valeur telle que X ou Y2, fournissez le nom de la valeur.Le code suivant montre comment rechercher des points de données par la valeur X.

' Find first data point with the maximum X value.
Dim maxDataPoint As DataPoint = mySeries.Points().FindMaxValue("X")
' Find the first data point with the minimum second Y value.
Dim minDataPoint As DataPoint = mySeries.Points().FindMinValue("Y2")
' Find first data point with an X value of "1/1/2001".
Dim dataPoint As DataPoint = mySeries.Points().FindValue(DateTime.Parse("1/1/2001").ToOADate(), "X")
// Find first data point with the maximum X value.
DataPoint maxDataPoint = mySeries.Points().FindMaxValue("X");
// Find the first data point with the minimum second Y value.
DataPoint minDataPoint = mySeries.Points().FindMinValue("Y2");
// Find first data point with an X value of "1/1/2001".
DataPoint dataPoint = mySeries.Points().FindValue(DateTime.Parse("1/1/2001").ToOADate(), "X");

Recherche de plusieurs points

Pour trouver tous les points de données qui correspondent à un critère de recherche :

  • Fournissez l'index de point de départ de la recherche à l'aide du paramètre startFromIndex .

  • Appelez la méthode dans une boucle et incrémentez l'index avec chaque appel de méthode successif.

Le code suivant montre comment rechercher la deuxième valeur Y égale à 10 et réinitialiser la couleur des points de données obtenus.

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  'Find all points with a second Y value equal to 10, and change their color.
  Dim index As Integer = 0
  'Find first point with a Y2 value of 10.
  Dim dataPoint As DataPoint = Chart1.Series("Series1").Points.FindValue(10, "Y2", index)
  While Not (dataPoint Is Nothing)
        dataPoint.Color = Color.FromArgb(255, 128, 128)
        'Find all other data points with a second Y value 10.
        index += 1
        dataPoint = Chart1.Series("Series1").Points.FindValue(10, "Y2", index)
  End While
End Sub
private void Page_Load(object sender, System.EventArgs e)
{
    // Find all points with a second Y value equal to 10, and change their color.
    int index = 0;
    // Find first point with a Y2 value of 10.
    DataPoint dataPoint = Chart1.Series("Series1").Points.FindValue(10, "Y2", index);
    while(!(dataPoint == null)) 
    {
        dataPoint.Color = Color.FromArgb(255, 128, 128);
        // Find all other data points with a second Y value 10.
        index++;
        dataPoint = Chart1.Series("Series1").Points.FindValue(10, "Y2", index);
    }
}

Voir aussi

Référence

System.Windows.Forms.DataVisualization.Charting

System.Web.UI.DataVisualization.Charting

Concepts

Ajout de données

Utilisation de points de données vides

Autres ressources

Liaison et manipulation de données