Question

Lorsque vous utilisez Zedgraph pour les graphiques linéaires et que vous définissez IsSmooth sur true, les lignes sont joliment courbées au lieu d'avoir des coins/angles durs.

Bien que cela semble bien meilleur pour la plupart des graphiques - à mon humble avis - il y a un petit hic.L'algorithme de lissage fait que la ligne «plonge» ou «bosse» légèrement avant de monter ou de descendre.

Dans la plupart des cas, si les points de données sont eux-mêmes lisses, ce n'est pas un problème, mais si vos points de données vont, par exemple, de 0 à 15, la « plongée » fait passer la ligne sous l'axe des x, ce qui donne l'impression qu'il y en a. certains points de données sont inférieurs à zéro (ce qui n'est pas le cas).

Comment puis-je résoudre ce problème (de préférence facilement ;)

Était-ce utile?

La solution

Il n’y a pas de réponse simple à cela.Garder la tension proche de zéro sera votre solution la plus simple.

ZedGraph utilise le paramètre de tension DrawCurve de GDI pour appliquer une douceur, qui est probablement l'interpolation Hermite.Vous pouvez essayer d'implémenter votre propre interpolation cosinus, qui conservera les extrêmes locaux en raison de sa nature.Vous pouvez consulter ce lien pour voir pourquoi :http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/interpolation/

MODIFIER:Le site Web est en panne.Voici une version en cache de la page :http://web.archive.org/web/20090920093601/http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/interpolation/

Autres conseils

Vous pouvez essayer de modifier la propriété myCurve.Line.SmoothTension vers le haut ou vers le bas et voir si cela aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top