提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|行业资讯|编辑:杨鹏连|2021-04-16 14:57:25.340|阅读 199 次
概述:本文主要介绍了高性能图表控件LightningChart 如何将条形图与自定义刻度对齐问题解答。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
LightningChart.NET完全由GPU加速,并且性能经过优化,可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D,高级3D,Polar,Smith,3D饼/甜甜圈,地理地图和GIS图表以及适用于科学,工程,医学,航空,贸易,能源和其他领域的体绘制功能。
LightningChart.NET现已加入在线订购,SignalTools , 12 months, WPF版本原价4105元,现价只需3499元,现在抢购立享优惠!立即购买>>
点击下载LightningChart.NET最新试用版 LightningChart JS最新试用版
问:我目前正在制作带有自定义刻度线的条形图。我在将条形图与自定义刻度线对齐时遇到问题。
我正在使用以下功能来查找x轴宽度。已经使用setRange()函数将x轴的最小值设置为0,最大值设置为1000。
private GetXAixsWidth(LightningChartUltimate _chart)
{
var min = _chart.ViewXY.XAxes [0] .ValueToCoordD(_chart.ViewXY.XAxes [0] .Minimum);
var max = _chart.ViewXY.XAxes [0] .ValueToCoordD(_chart.ViewXY.XAxes [0] .Maximum);
return max - min;
}
我正在使用以下功能来设置条形系列中条形的宽度。
private void SetBarsWidth(List<double> xValues)
{
List<double> xValues = new List<double> xValues{0,150,300,400,500,700,850,900,1000};
var xAxisWidth = GetXAixsWidth(_chart);
var denom = (double)(xValues.Last() - xValues.First());
var propWidth = xAxisWidth / denom;
for (int index = 0; index < _chart.ViewXY.BarSeries.Count; index++)
{
double cVal = xValues[index + 1] - xValues[index];
var bWid = (double)(cVal * propWidth);
_chart.ViewXY.BarSeries[index].BarThickness = (int)Math.Ceiling(bWid);
}
}
在上面的代码中,我试图通过将XValues中的最后一个第一个值减去XValues中的最后一个值来找到X轴的总宽度并找到值的范围。将总宽度除以范围后,我们得到的是比例宽度,将其与XValues中相邻值之间的差异相乘,以基于相邻值中的差异找到合适的钢筋宽度。请找到以下示例,以了解用于固定条形宽度的方法。
示例:
XAxisWidth =1200
denom =1000
propWidth = 1200/1000= 1.2
First Bar Width = ((150-100)*1.2) = 60
Second Bar Width = ((300-150)*1.2) = 180
通过上述方法,在条形图与自定义刻度线的对齐方面几乎没有偏差,这在附加的图像文件中使用红色框突出显示。BarSeries中的BarThickness期望以像素为单位的宽度(整数值),而ValueToCoordD返回坐标值(浮动值)。在将浮点值转换为整数时,我们得到的值略有变化,这使得条形图的对齐稍稍在自定义刻度线之前或之后。
如何获取自定义刻度的确切像素值,或者如果有其他方法可以解决此问题。
回复:将条形图与自定义ti对齐的条形图问题
BarViewOptions(尤其是分组)的设置是什么?我在应用程序中未使用任何BarViewOptions。
按照建议
问题:由于BarThickness期望以像素为单位的值,所以我想知道是否可以找到以像素为单位的x轴宽度(附件中从0到1000)?
1.将示例应用程序发送到arction的支持帐户(support@arction.com)。
2.随附示例应用程序的屏幕截图。
lightningchart.ViewXY.BarViewOptions.Grouping = BarsGrouping.ByLocation;
默认选项“ ByIndex ”和另一个选项“ ByIndexFitWidth ”将不依赖XAxis。取而代之的是,条形图绘制在图表的中心,而没有绑定到XAxis。请注意,您可以将Xaxis平移(拖动)到任何方向,并且条形图将保持在同一位置。
因此,您需要将“分组”设置为“按位置”,然后才比较CustomTick和Bar的位置。
单独使用该选项基本上可以解决您的问题。但是,我想提及您的应用程序中的几个问题。
首先,您使用WindowsFormsHost在WPF中放置Arction Windows窗体控件。允许这样做,但是这样做有其优点和缺点。您可以在我们的用户手册中阅读有关内容。无论如何,仅提醒您,我们有3个WPF版本,在大多数情况下,它们比通过WindowsFormsHost使用WinForm版本更好。其次,您应该使用axisX.ValueToCoordD(value,FALSE)。请注意,第二个参数设置为false,因此您可以将输出作为屏幕像素而不是DIP单位。在WinForms中,这并不重要,但是对于WPF,在缩放比例大于100%的系统中将是一个问题。
第三,您的lightningchart.SizeChanged处理程序事件未使用BeginUpdate-EndUpdate调用。当您有成百上千的酒吧系列时,这将是一个问题。只是提醒您,每个属性更改(此处为BarThickness)都将导致图表呈现。要批量更改属性,请使用BeginUpdate-EndUpdate调用。
第四,控件Resize事件在Chart实际呈现之前发生。并且在未呈现图表之前,某些属性尚未更新。这可能会导致一些意外的结果。我建议在SizeChanged事件处理程序中订阅_chart.AfterRendering事件。并且仅在AfterRendering事件处理程序中更新条的粗细(请从AfterRendering退订)第一的)。例如,
lightningchart.SizeChanged += (sender, val) =>
{
lightningchart.AfterRendering += Lightningchart_AfterRendering;
};
private void Lightningchart_AfterRendering(object sender, AfterRenderingEventArgs e)
{
lightningchart.AfterRendering -= Lightningchart_AfterRendering;
UpdateBarThickness();
}
第五,虽然没有错,但是可以很好地替换GetXAixsWidth方法的是
axisX.GetActiveAxisArea().Width
如果对此有任何疑问,请以获取更多信息。
想要购买LightningChart正版授权,或了解更多产品信息请点击
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文将为大家深入介绍QtitanDataGrid组件,看看它是如何为Qt开发提供强大的数据表格解决方案的,欢迎下载最新版组件体验!
在现代工业自动化领域,OPC协议在设备、系统和软件之间的数据交换中发挥着重要作用。随着技术的进步,传统的OPC DA协议逐渐暴露出一些不足,比如跨平台支持差、安全性不足等问题,OPC UA作为其升级版应运而生,具有更强的灵活性、安全性和跨平台能力。那么,如何将原本使用OPC DA的系统或设备迁移到OPC UA协议呢?
在工业自动化领域,OPC协议被广泛应用,它帮助不同品牌、不同类型的设备和系统之间实现数据交换。OPC协议有多个版本,其中最常见的有OPC DA和OPC UA。虽然它们都属于OPC协议家族,但这两者有许多重要的区别。那么,OPC DA和OPC UA究竟有什么不同?
高性能WPF和Winforms图表,可以实时可视化多达1万亿个数据点。
LightningChart JS高性能的JavaScript图表库,专注于实时数据可视化。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢