MS图表中的自动间隔精度

drh*_*ris 14 c# precision data-visualization mschart intervals

我目前正在使用.NET中的图表System.Windows.Forms.DataVisualization.Charting.Chart.到目前为止,它似乎非常强大,而且效果很好.然而,就如何自动计算间隔而言存在巨大的问题.我使用了很多double值,在像ZedGraph这样的库中,它完美地处理了这个问题.它选择最小/最大/间隔就好了.但是,在MS Chart中,它可以选择206.3334539832作为最小值,并选择相似小数精度的间隔.显然这看起来很难看.

因此,我尝试简单地制作轴格式,{0.00}并且在加载图表时效果很好.除非放大,否则你需要更高的精度,可能是4位小数而不是2位.看起来我要么一直处于9个小数位,要么是一个常数固定的数字,当有人需要更高的精度时它可能会破坏.我宁愿根据当前应用的缩放级别来获取精度.像ZedGraph和Dundas这样的图书馆(我相信MS甚至正在使用!)倾向于选择在放大和缩小时改变的好值.

当缩放框架改变时,有没有办法让间隔改变精度?这可能是我设置错误的一些简单属性,但很难说这个东西有数百万个属性(特别是当有大约14个地方代表Interval的概念时).

小智 5

缩放时我遇到了完全相同的问题.我添加了代码来格式化轴标签并从Paint处理程序中调用它.Axis View对象具有IsZoomed属性,并具有获取当前轴限制(GetViewMinimum/Maximum)的函数.除非Max-Min =范围小于1,否则我将Axis LabelStyle.Format设置为"N".然后我将格式设置为"F#",其中#是根据轴范围计算的.

# = Convert.ToInt32(Math.Abs(Math.Log10(range) - .5)) + 1;
Run Code Online (Sandbox Code Playgroud)