Tri des données
Le tri modifie l'ordre des points de données d'une série selon une valeur de point de données.Vous pouvez utiliser un ordre de tri croissant, décroissant ou personnalisé.
Réalisation de tris croissants ou décroissants
Pour trier des données, utilisez la méthode Sort dans l'objet Series ou DataManipulator.Vous pouvez utiliser un ordre de tri croissant ou décroissant.
Le code suivant montre comment trier des données de séries à l'aide de la première valeur Y, par défaut.
' Sort series in ascending order.
Chart1.Series("MySeries").Sort(PointsSortOrder.Ascending)
' Sort series in descending order.
Chart1.DataManipulator.Sort(PointsSortOrder.Descending, "MySeries")
// Sort series in ascending order.
Chart1.Series["MySeries"].Sort(PointsSortOrder.Ascending);
// Sort series in descending order.
Chart1.DataManipulator.Sort(PointsSortOrder.Descending, "MySeries");
Par défaut, la première valeur Y des points de données est utilisée pour le tri.Toutefois, vous pouvez trier des points de données en utilisant leur valeur X ou toute autre valeur Y, par exemple, Y2.Vous pouvez également effectuer un tri selon la propriété AxisLabel de chaque valeur.
Le code suivant montre comment trier des données de séries à l'aide de valeurs de points autres que celles par défaut.
' Sort series in ascending order by X value.
Chart1.Series("MySeries").Sort(PointsSortOrder.Ascending, "X")
' Sort series in descending order by axis label.
Chart1.DataManipulator.Sort(PointsSortOrder.Descending, "AxisLabel","MySeries")
// Sort series in ascending order by X value.
Chart1.Series["MySeries"].Sort(PointsSortOrder.Ascending, "X");
// Sort series in descending order by axis label.
Chart1.DataManipulator.Sort(PointsSortOrder.Descending, "AxisLabel", "MySeries");
Tri de plusieurs séries
Vous pouvez utiliser DataManipulator.Sort pour trier plusieurs séries alignées en spécifiant leur nom dans une liste séparée par des virgules.Cette méthode trie tous les points de toutes les séries selon leurs valeurs correspondantes dans la série qui figure en premier dans la liste.En d'autres termes, elle duplique les modifications apportées à l'ordre des points de données de la première série dans toutes les séries de la liste.
[!REMARQUE]
Si vous utilisez DataManipulator.Sort pour trier plusieurs séries, les données de toutes les séries doivent être alignées.Sinon, la méthode lève une exception.Pour plus d'informations sur l'alignement des données, consultez Alignement des données.
Le code suivant montre comment trier plusieurs séries dans l'ordre décroissant.
Chart1.DataManipulator.Sort(PointsSortOrder.Descending, "ProductSales,ProductPrice")
Chart1.DataManipulator.Sort(PointsSortOrder.Descending, "ProductSales,ProductPrice");
Réalisation de tris personnalisés
Pour définir un tri personnalisé, utilisez l'interface IComparer.La méthode Compare de cette interface reçoit deux objets DataPoint comme arguments.Elle doit retourner une valeur inférieure à zéro si le premier objet est inférieur au second, zéro s'ils sont égaux, et une valeur supérieure à zéro si le premier objet est supérieur au second.
Cet exemple montre comment utiliser l'interface IComparer pour fournir une logique de tri personnalisé.
' Sort series.
Chart1.DataManipulator.Sort(New CustomComparer(), "MySeries")
' Custom sorting comparing class.
Public Class CustomComparer Implements IComparer
' Compares two data points by their Labels and returns a value indicating
' if the first data point is less than, equal to, or greater than the second
' data point.
Public Function Compare(ByVal a As Object, ByVal b As Object) As Integer Implements IComparer.Compare
Dim pointA As DataPoint = a
Dim pointB As DataPoint = b
' Compares data points' Label property
If pointA.Label < pointB.Label Then
Compare = -1
ElseIf pointA.label > pointB.Label Then
Compare = 1
Else
Compare = 0
End If
End Function
End Class
// Sort series.
Chart1.DataManipulator.Sort(new CustomComparer(), "MySeries");
// Custom sorting comparing class.
public class CustomComparer : IComparer {
// Compares two data points by their Labels and returns a value indicating
// if the first data point is less than, equal to, or greater than the second
// data point.
public int Compare(object a, object b) {
DataPoint pointA = a;
DataPoint pointB = b;
// Compares data points' Label property
if ((pointA.Label < pointB.Label)) {
Compare = -1;
}
else if ((pointA.label > pointB.Label)) {
Compare = 1;
}
else {
Compare = 0;
}
}
}
Voir aussi
Référence
System.Windows.Forms.DataVisualization.Charting
System.Web.UI.DataVisualization.Charting
Concepts
Copie, fractionnement et fusion de données