Pergunta

Quando você usa Zedgraph para gráficos de linha e define IsSmooth como verdadeiro, as linhas são bem curvadas em vez de ter cantos/ângulos rígidos.

Embora isso pareça muito melhor para a maioria dos gráficos - na minha humilde opinião - há um pequeno problema.O algoritmo de suavização faz com que a linha dê um pequeno 'mergulho' ou 'saliência' antes de subir ou descer.

Na maioria dos casos, se os pontos de dados forem suaves, isso não é um problema, mas se seus pontos de dados vão de 0 a 15, o 'mergulho' faz a linha passar sob o eixo x, o que faz parecer que há existem alguns pontos de dados abaixo de zero (o que não é o caso).

Como posso corrigir isso (de preferência facilmente;)

Foi útil?

Solução

Não há resposta simples para isso.Manter a tensão próxima de zero será a solução mais simples.

ZedGraph usa o parâmetro de tensão DrawCurve do GDI para aplicar suavidade, que provavelmente é Interpolação Hermite.Você pode tentar implementar sua própria interpolação de cosseno, que manterá os extremos locais devido à sua natureza.Você pode olhar este link para ver o porquê:http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/interpolation/

EDITAR:O site está fora do ar.Aqui está uma versão em cache da página:http://web.archive.org/web/20090920093601/http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/interpolation/

Outras dicas

Você pode tentar alterar a propriedade myCurve.Line.SmoothTension para cima ou para baixo e ver se isso ajuda.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top