Fermer

juillet 23, 2018

Sines, Exponentials et plus dans le graphique de reporting Telerik


Bien que pas évident au premier abord, vous pouvez personnaliser vos graphiques Telerik Reporting pour afficher presque n'importe quelle fonction mathématique. Lisez la suite pour voir comment.

Vous pouvez souvent trouver qu'il est utile d'afficher des courbes de superposition dans un Telerik Reporting Graphique élément . Que vous souhaitiez afficher une limite supérieure, une limite inférieure ou que vos données correspondent à une distribution normale, une ligne de courbe basée sur une fonction mathématique peut s'avérer très utile. Le problème est que l'élément graphique a été conçu pour afficher des valeurs littérales explicites basées sur un ensemble de données discrètes. Comment alors peut-on ajouter une superposition au graphique lorsque les valeurs de l'axe Y ne sont pas trouvées dans les données? Continuez à lire pour le savoir.

Dans cet exemple, nous utilisons des données de l'ensemble de données Northwind pour produire un graphique réel des chiffres de ventes pour le mois de juillet. Cependant, le style et les données du graphique sous-jacent ne sont pas nécessairement importants pour la superposition.

 Graphe à colonnes standard

Supposons qu'un Sales Manager trop zélé s'attend à ce que son équipe atteigne une croissance exponentielle pour le mois de juillet et souhaite ajouter une superposition à ce graphique. Ces valeurs ne sont pas contenues dans les données sources – alors comment peuvent-elles être tracées?

L'astuce réside dans la fonction ColumnNumber () intégrée dans Telerik Reporting. La fonction ColumnNumber fournit un 1 pour la première valeur, 2 pour la deuxième valeur, et ainsi de suite. Cela devient la variable X dans votre fonction mathématique. Vous pouvez alors déduire Y en fonction de X.

Prenons un exemple concret en utilisant la progression linéaire simple:  Une équation simple pour une progression linéaire

La première étape consiste à ajouter un nouveau système cartésien à la La collection CoordinateSystem de Graph.

 Éditeur de collection CoordinateSystems "title =" Éditeur de collection CoordinateSystems "/></p data-recalc-dims=

Dans le nouveau système cartésienCoordinateSystem, créez une nouvelle NumericalScale pour XAxis et YAxis.

 Nouvelle échelle numérique YAxis

L'étape suivante consiste à créer la série réelle qui produira la progression linéaire Ouvrir l'éditeur de collection de séries pour le graphique et ajouter une nouvelle série de lignes

 Éditeur de collections de séries "title =" Éditeur de collections de séries "/><p data-recalc-dims= Ajouter de nouvelles séries" title = "Ajouter une nouvelle série" /></p data-recalc-dims=

Définissez les propriétés suivantes pour la nouvelle série:

  • Apparence -> Type de ligne: Lisse
  • CoordinateSystem: (Sélectionnez le système de coordonnées créé au-dessus)
  • Data -> CategoryGroup: (sélectionnez le CategoryGroup existant qui a été créé avec la série liée aux données)
  • Data -> SeriesGroup: (sélectionnez l'existant SeriesGroup qui a été créé avec le dat série liée en a)
  • Data -> X: = ColumnNumber () (Le signe égal est obligatoire)
  • Data -> Y: = ColumnNumber () [19659022] Cliquez sur OK et vous verrez la nouvelle progression linéaire dans le graphique:

     Graphique avec superposition de progression linéaire "title =" Graphique avec superposition de progression linéaire "/></p data-recalc-dims=

    Ce graphique est entièrement fonctionnel maintenant, mais il doesn ' t fière allure – alors cachons quelques-unes des échelles et des quadrillages supplémentaires.

Ouvrez à nouveau l'éditeur de collection GraphCoordinateSystem et sélectionnez le nouveau système cartésien cartoordonné que nous avons créé pour la progression linéaire. Mettez à jour les propriétés suivantes.

  • Divers -> XAis -> MajorGridLineStyle -> Visible: Faux
  • Divers -> YAis -> MajorGridLineStyle -> Visible: Faux
  • Divers -> XAis – > Style -> Visible: Faux
  • Divers -> YAis -> Style -> Visible: Faux

Faisons aussi la ligne dans la progression linéaire plus facile à voir. Ouvrez l'éditeur de collection de séries et appliquez le style suivant à la série de lignes .

  • Apparence -> LineStyle -> Largeur de Ligne: 3px

 Graphique avec progression linéaire stylisée "title =" Graphique avec progression linéaire stylée "/></p data-recalc-dims=

Maintenant que nous sommes créés une série et CoordinateSystem dédié aux fonctions mathématiques, le changement de la fonction est très facile, passons à une progression exponentielle

Pour ce faire, il suffit de mettre à jour la valeur Y dans la série. et Y pour la série "title =" Modifier les valeurs X et Y pour la série "/>

 Graphique avec incrustation exponentielle" title = "Graphique avec incrustation exponentielle" /></p data-recalc-dims=

Nous pouvons obtenir plus avancé et générer une onde sinusoïdale en changeant l'expression à nouveau:

 Expressions X et Y pour Sine Wave "title =" Expressions X et Y pour Sine Wave "/><p data-recalc-dims= Graphique avec incrustation Sine Wave" title = "Graphique avec superposition Sine Wave" /></p data-recalc-dims=

Jusqu'à présent, nous avons manipulé des fonctions mathématiques simples, mais qu'en est-il de quelque chose d'un peu plus avancé, tel un s une équation de distribution normale:

 Équation de courbe normale "title =" Équation de courbe normale "style =" width: 317px; height: 102px; "/></p data-recalc-dims=

Cette équation est trop complexe pour être exprimée avec l'éditeur d'expression de Telerik Reporting, mais c'est un cas d'utilisation parfait pour une User Function . Construire des expressions personnalisées en C # ou VB.NET, et les utiliser de façon transparente dans l'éditeur d'expression Telerik Reporting

Par exemple, l'équation ci-dessus peut être exprimée en C # en utilisant la méthode suivante:

[Function(Category= ] "Courbes" Namespace = "Math" Description = "Courbe normale" )]

public statique double NormalCurve ( double x, double signifie, double stdDev)

{

double y = (1 / (stdDev * Math.Sqrt (2 * Math.PI))) * Math.Exp (-1 * (Math. Pow (x - mean, 2) / (2 * Math.Pow (stdDev, 2))));

retour y;

[19459027Nomd'utilisateur:Motdepasse:inconnu|]}

Qui, lorsqu'il est appliqué à la valeur Y de la LineSeries produit une courbe de distribution normale:

 Graphique avec superposition de courbes normales "title =" avec recouvrement de courbe normale "/></p data-recalc-dims=

Vous pouvez voir que l'élément de graphique de report Telerik, lorsqu'il est combiné avec des fonctions utilisateur, peut afficher toutes les fonctions mathématiques qui produisent des valeurs discrètes.

Quelles courbes pouvez-vous créer en utilisant cette technique? Partagez vos résultats dans les commentaires ci-dessous!

Essayez-le et partagez vos commentaires

Nous voulons savoir ce que vous en pensez – vous pouvez télécharger un essai gratuit de Telerik Reporting aujourd'hui et partager vos pensées dans notre Feedback Portal ou à droite dans les commentaires ci-dessous.

Commencez votre procès aujourd'hui: Telerik Reporting Telerik Report Server

Essayé Telerik DevCraft?

Vous pouvez obtenir des rapports avec Telerik DevCraft. Assurez-vous d'avoir téléchargé un essai ou en savoir plus sur les bundles DevCraft . DevCraft vous donne accès à tous les outils, vous permettant de dire "non" aux applications laides pour le bureau, le web ou le mobile.


Les commentaires sont désactivés en mode prévisualisation.




Source link