彩票走势图

高性能图表控件LightningChart关于方形散点图的问题解答

翻译|使用教程|编辑:杨鹏连|2021-06-28 10:51:47.910|阅读 123 次

概述:本文主要介绍了高性能图表控件LightningChart关于方形散点图的问题解答。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

LightningChart.NET完全由GPU加速,并且性能经过优化,可用于实时显示海量数据——超过10亿个数据点。LightningChart包括广泛的2D、高级3D、Polar、Smith、3D饼/甜甜圈、地理地图和GIS图表以及适用于科学、工程、医学、航空、贸易、能源和其他领域的体位功能。

LightningChart.NET重加入在线订购,SignalTools,12个月,WPF版本原价405元,现价3499元,现在抢购立享优惠!立即购买>>

点击下载LightningChart.NET最新试用版  LightningChart JS最新试用版  

Q:方形散点图的问题

我们的软件需要一个散点图,其中有一个完美的方形图表区域,每个轴上的值都相同,并且有一个圆形阴影区域。

为此,我使用 FreeformPoint 系列,强制图表的宽度等于图表的高度,并将 ViewXY 的 ManualAspectRatioWH 设置为 1。要创建阴影区域,我使用 0,0 处的 SeriesPoint 并将 PointShapeStyle 设置为所需大小和厚度的圆。为了获得这个圆的正确大小,我使用了一个系数值(图表区域高度除以轴范围)。这给了我几乎完美的结果,但也存在问题。

高性能图表控件LightningChart关于方形散点图的问题解答

您可以在屏幕截图中看到阴影区域似乎偏离中心,x 轴上 -150 之前的空白区域比 150 之后的多。 y 轴也存在类似的问题。

在逐字计算像素后,我发现网格线不均匀。两个“行”在高度上是一个额外的像素,而一列在宽度上是一个额外的像素(我在图片中用红线标记了有问题的行和列)。图表也比它高两个像素宽。这会导致阴影区域的大小和厚度不正确。

准确性对我们的软件至关重要,因此我必须确保将所有图表元素绘制在正确的位置并具有正确的大小。

是否有可能在没有这些不一致的情况下创建一个完美的方形图表区域?

您还知道在 Lightning Chart 中实现圆形阴影区域的更好方法吗?该区域的大小和厚度必须与轴相关联,因此它们会在缩放时调整大小。当前系数方法是以前的图表包中唯一可能的方法,因此现在已沿用。我知道这是一个相当不标准的图表,但我感谢您的帮助。

我们目前正在使用 v.8.3.1_20180404

A:这个问题很可能是由于 LightningChart 无法平均划分可用的图形大小(以像素为单位)。图表具有一定的像素大小,图形区域(由边距限制的区域,其中显示数据)也是如此。您实际上可以通过调用 _chart.ActualWidth 和 _chart.ViewXY.XAxes[0].GetActiveAxisArea().Width 来检查这些的确切大小。请注意,这些仅在图表呈现后才起作用。

如果您的图形区域具有例如 700 的高度,并且您尝试将其划分为由网格线分隔的 12 个段(它们也是 1 个像素宽,总共 13 个,一个在顶部,一个在底部),您将拥有这种问题。这些段最终具有 57,25 像素的高度。由于无法呈现部分像素,图表最终具有像 57、57、57、58、57...

要解决此问题,您可以尝试修改图表大小和图形区域大小,后者可以通过更改边距设置来完成。

_chart.Width = 700; 
_chart.Height = 700; 
_chart.ViewXY.AxisLayout.AutoAdjustMargins = false; 
_chart.ViewXY.Margins =  new Thickness(40, 20, 10, 40); 

在这种情况下,AspectRatio 通常是最佳选择。您还可以仔细检查它是否设置正确。我们有几个使用它的演示示例:WinForms 端的“强度网格、圆/极几何”、“图像查看器”和“硅晶片图分析”。

圆形区域的创建方式可能不会对问题本身产生任何影响,但您也可以使用 Annotation 或 EventMarker(Chart 或 SeriesEventMarker)创建它。标记具有 Offset 属性的好处,可用于以像素为单位调整它们的位置。

始终可以选择在 support(at)arction.com 上向我们的技术支持发送示例应用程序,我们可以查看该问题(尽管您需要有效订阅才能获得更多技术支持)。

Q:如果我理解正确,您是说网格线不是覆盖在图表上,而是实际上增加了高度和宽度?那么一个有 12 个线段和网格线的图表,会比没有网格线的同一个图表高 13 个像素吗?

如果是这种情况,那么它肯定可以解释我在阴影区域看到的问题。

有没有办法覆盖网格线而不是将它们“插入”到高度和宽度中?

我目前正在使用我在另一篇文章中找到的公式计算图表区域的高度:

_chart.ActualHeight - (_chart.ViewXY.Margins.Top + _chart.ViewXY.Margins.Bottom)

这会给出正确的大小吗?

我试过使用你建议的变量,而 _chart.ViewXY。XAxes[0].GetActiveAxisArea().Width 和 Height 工作正常,_chart.ViewXY。Y Axes[0].GetActiveAxisArea().Width 和 Height 总是返回零。

A:我仔细检查了我们的源代码。我可能在这里提供了一些错误信息,为此道歉。网格线实际上是重叠的。不过问题还是一样;图形区域不能在段之间平均划分,并且由于四舍五入,某些段比其他段大一个像素。

您使用的计算是正确的,但没有考虑围绕图形绘制的边界。目前,它在顶部和底部绘制在图形之外,但不在左侧和右侧(我们可能需要在未来的版本中修复这个问题,以便在所有方面都相同)。结果是 GetActiveAxisArea 返回的高度值比您使用的公式少 2px。因此 GetActiveAxisArea 可能更可靠。

GetActiveAxisArea 应该适用于两个轴,但前提是图表已首先呈现。为了确保这一点,您可以调用 AfterRendering -event 中的方法。

根据我们的数据库,您的订阅已过期。为了获得更多技术支持以及新功能和错误修复,请考虑续订订阅。

如果有任何疑问,以获取更多信息。

如果您对该图表控件感兴趣,欢迎加入图表控件QQ交流群:740060302

欲购买LightningChart正版授权,或了解更多产品信息请点击


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP