Поиск точек данных
В значениях 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
Основные понятия
Использование пустых точек данных