Поделиться через


Поиск точек данных с помощью элементов управления диаграммы

В значениях X и значениях Y точек данных ряда можно искать диапазон значений или отдельное значение.Поиск точек данных с определенными значениями удобен, когда нужно выполнить следующие действия.

  • Проверить диапазон значений.

  • Изменить визуальное представление точек, имеющих определенное значение.

  • Задать метки точек.

  • Использовать позицию точки для нестандартных операций рисования.

Поиск точек данных

Свойство коллекции Series.Points предоставляет несколько методов для поиска точек.

  • FindValue
    Возвращает первую точку ряда, имеющую указанное значение.

  • FindMaxValue
    Возвращает первую точку ряда, имеющую самое большое значение.

  • FindMinValue
    Возвращает первую точку ряда, имеющую самое маленькое значение.

Примечание

Эти методы возвращают значение NULL, если ни одна точка не отвечает условиям поиска.

Чтобы найти все точки, отвечающие условиям поиска, используйте каждый из этих методов в цикле.Чтобы найти все точки, начиная с определенного индекса, используйте один из методов с параметром startFromIndex.Если указан этот параметр, то метод использует его для указания индекса возвращаемой точки данных.

В следующем коде показан поиск точек данных по первому значению 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);

Чтобы искать значение, например X или Y2, введите имя значения.В следующем коде показан поиск точек данных по значению 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");

Поиск нескольких точек

Чтобы найти все точки данных, отвечающие условиям поиска, выполните следующие действия.

  • Укажите в параметре startFromIndex начальный индекс для поиска.

  • Вызывайте метод в цикле и увеличивайте индекс после каждого успешного вызова.

В следующем коде показан поиск значения 10 среди вторых значений Y и сброс цвета для результирующих точек данных.

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);
    }
}

См. также

Ссылки

System.Windows.Forms.DataVisualization.Charting

System.Web.UI.DataVisualization.Charting

Основные понятия

Добавление данных

Использование пустых точек данных

Другие ресурсы

Привязка данных и обработка