Ricerca di punti dati con controlli Chart
È possibile eseguire ricerche dei valori X e Y dei punti dati in una serie in base a un intervallo di valori o a un valore specifico.La ricerca di punti dati con valori specifici è utile quando si desidera:
controllare un intervallo di valori;
modificare l'aspetto visivo dei punti che hanno un determinato valore;
impostare le etichette dei punti;
utilizzare la posizione di un punto per operazioni di disegno personalizzato.
Ricerca di punti dati
La proprietà di raccolta Series.Points espone numerosi metodi per la ricerca di punti dati.
FindValue
Restituisce il primo punto con un determinato valore in una serie.FindMaxValue
Restituisce il primo punto con il valore massimo in una serie.FindMinValue
Restituisce il primo punto con il valore minimo in una serie.
Nota
Questi metodi restituiscono un valore null se nessun punto soddisfa i criteri di ricerca.
Utilizzare ciascuno dei metodi suddetti in un ciclo per individuare tutti i punti che soddisfano i criteri di ricerca.Per ricercare tutti i punti a partire da un indice iniziale predefinito, utilizzare uno dei metodi passando un parametro startFromIndex.Se si fornisce questo parametro, il metodo lo utilizzerà anche per indicare l'indice del punto dati restituito.
Nell’esempio di codice riportato di seguito viene illustrato come eseguire una ricerca di punti dati in base al primo valore 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);
Per ricercare un valore specifico come ad esempio X o Y2, fornire il nome del valore.Nell’esempio di codice riportato di seguito viene illustrato come eseguire una ricerca di punti dati in base al valore 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");
Ricerca di più punti
Per ricercare tutti i punti dati che soddisfano un criterio di ricerca, procedere come riportato di seguito.
Fornire l'indice del punto iniziale della ricerca tramite il parametro startFromIndex .
Richiamare il metodo in un ciclo incrementando l'indice a ogni chiamata successiva del metodo.
Nell’esempio di codice riportato di seguito viene illustrato come eseguire la ricerca del valore 10 sul secondo valore Y, ripristinando il colore dei punti dati risultanti.
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);
}
}
Vedere anche
Riferimenti
System.Windows.Forms.DataVisualization.Charting
System.Web.UI.DataVisualization.Charting