LightningChart JS是Web上性能特高的图表库,具有出色的执行性能 - 使用高数据速率同时监控数十个数据源。 GPU加速和WebGL渲染确保您的设备的图形处理器得到有效利用,从而实现高刷新率和流畅的动画,常用于贸易,工程,航空航天,医药和其他领域的应用。
LightningChart JS v.8.0 已正式发布了!新版本拥有一些全新的产品特性、可视化质量、性能,同时进一步提升了开发体验等!欢迎立即申请最新版体验!
立即申请LightningChart JS v8.0新版下载
全新的产品特性
LightningChart JS v8.0引入了新的产品特性。以下是概述:
图例功能重构
在这个v8.0版本中,官方完全重建了图例的工作方式,主要关注以下几个方面:
- 更好的图表外观:图例更不干扰数据展示,并能够更好地适配可用空间。
- 配置更简便:图例设置更易上手,同时功能更强大。
- 内置选项更多:无需额外开发即可使用更多图例样式。
- 支持插件定制:可通过插件扩展图例功能,无需从零实现自定义功能。
新图例默认自动显示在趋势图下方,同时也支持手动创建多个图例。图例位置可以选择内置位置或自定义位置,也可配置点击行为(内置或自定义)。创建图例时,还支持排除具体的数据序列。
// Set legend position to TopRight chart.legend.setOptions({ position: LegendPosition.TopRight }); // Set legend entry click behavior to focus clicked chart.legend.setOptions({ entries: { events: { click: LegendEntryClickBehaviors.focusClicked } } }); // Add a line series and hide it from the legend const series = chart.addLineSeries({ legend: { show: false } });
Point Stroke API
现在,PointLineAreaSeries、PolarPointSeries 与Point标记支持设置描边(border stroke),可通过 setPointStrokeStyle 方法配置或禁用描边效果。
轴标题定位
在 v8 中,轴标题定位得到了改进。此前标题总是居中显示在坐标轴上,而现在新增了 center-chart 定位选项,这个选项对于更好地对齐在特定边有填充的图表中的轴标题很有用。当图表仅包含一个 X 轴和一个 Y 轴时,该定位选项已作为默认设置。
视觉质量提升
LightningChart JS v8.0对光标点标记进行了调整,光标点标记的默认样式更改为透明圆形,从而改进了数据值的高亮显示方式。这里有两个示例:
改进小图表光标适配
针对小图表的用例,光标的适配能力得到增强。新版本添加了更多的内置逻辑,来防止由于可用空间很少导致光标内容不可见的情况。
DataSetXY 重构与性能提升
LightningChart JS v8.0 带来多项性能优化,其中最显著的提升,可通过新的 DataSetXY 功能来实现:
- 共享时间戳可将图表内存消耗减少 2 倍。
- 如果某些测量不需要完整的64位精度,单独的数据存储格式配置可以进一步减少内存消耗。
- 数据映射可以大大加快显示通道的切换速度,提高内存效率。
Racing Dashboard 示例:DataSetXY 的实际应用案例
这个 Racing Dashboard 演示展示了 DataSetXY API 的实际优势,演示中多个通道(如轮胎温度、速度、加速度)共用一个时间戳数据集。
使用新的 DataSetXY API,只需创建一个数据集并将所有数据推入其中,随后通过数据映射将多个系列连接到同一个数据集。该方式消除数据重复,并显著减少数据输入处理时间。
多通道EEG测试用例 & 进一步的性能提升
在多通道 EEG 共用时间戳测试中,产品团队加载了比以前大8倍的数据集,达到了惊人的 80 亿个数据点,这是 Web 数据可视化领域一个重要的突破。
除了前面提到的改进,LightningChart JS v8.0还提供了额外的开箱即用的性能增强:
- 实时流式线图系列的 CPU 使用率降低了约 63%。
- 实时流式散点图系列的 CPU 使用率降低了约 245%。
开发体验改进
开发者现在可以分别高亮矩形、多边形、线段、文本等不同图形;此前这些同属同一个序列的图形只能一起高亮显示。
这是一个显著的改进,特别是由于不必将数字分成许多不同的序列而带来的性能优势,它使直方图用例更方便实现。同时还更新了在线直方图示例代码,来展示这个新功能。
LUT 格式化器
新增一个统一配置 LUT 单位格式化的方式,可灵活控制图例、光标中 LUT 值的格式(如小数位数、单位等)。
new LUT({ steps: [ { value: 0, color: ColorHEX('#000000') }, { value: 100, color: ColorHEX('#ff0000') }, ], interpolate: true, formatter: (value) => `${value.toFixed(1)} Hz`, })