「实战应用」如何用图表控件LightningChart创建JS堆叠条形图?

LightningChartJS是Web上性能特高的图表库,具有出色的执行性能 - 使用高数据速率同时监控数十个数据源。 GPU加速和WebGL渲染确保您的设备的图形处理器得到有效利用,从而实现高刷新率和流畅的动画,常用于贸易,工程,航空航天,医药和其他领域的应用。

LightningChart JS提供了堆叠条形图,用于轻松创建具有可定制功能的数据应用程序。

立即获取LightningChart JS新版下载

JavaScript堆叠条形图

当看到来自不同类别或彼此值的大量数据时,堆叠条形图非常有用。我们可以看到一个类别是如何被分成几个部分的,从最大到最小的部分相对于总量,堆叠条形图有两种类型:

简单的堆叠条形图将每个值连续地放在一个段中,条形图的总价值就是该段的总价值,它是比较片段之间总数量的理想方法。

LightningChart JS实战使用教程

100%堆叠条形图显示了每个细分市场中每个类别的总百分比,并用每个值占该细分市场总数量的百分比表示,这使得我们更容易看到各组数量的百分比差异。

LightningChart JS实战使用教程

根据数据分析的目标,我们可以根据可视化需求评估每个数据的有用性。在这种情况下,JavaScript堆叠条形图对于任何类型的用户来说都很容易理解。JavaScript堆叠条形图的另一个特性是以多色条形显示数据,其中每个条形代表一个主要类别,每种颜色代表一个次要维度,这使我们能够方便地查询每个段类别的次要维度及其关系之间的关系。

项目概述

在本文中,我们将解释100%堆叠条形图,并使用LightningChart JS和Node JS创建堆叠条形图。请记住,您可以下载这个项目的模板并试用它,直接戳这里>>

LightningChart JS实战使用教程

模板设置

1. 下载提供的模板来学习本教程。

2. 下载模板后,您会看到如下的文件树:

LightningChart JS实战使用教程

3. 打开一个新终端,运行npm install命令。

CHART.ts

今天最新的版本是LightningChart JS 5.1.0和XYData 1.4.0,建议您查看最新版本就并进行更新,因为一些LightningChart JS工具在以前的版本中不存在。

在项目的package.json文件中,你可以找到LightningChart JS依赖项:

"dependencies": {
"@arction/lcjs": "^5.1.0",
"@arction/xydata": "^1.4.0",
"webgl-obj-loader": "^2.0.8",
}
1. 导入库

我们将从导入创建图表所需的库开始。

// Import LightningChartJS
const lcjs = require('@arction/lcjs')
const { lightningChart, BarChartSorting, LegendBoxBuilders, Themes } = lcjs
2. 添加许可密钥(免费)

安装LightningChart JS库之后,我们将把它们导入到chart.ts文件中,注意,您将需要试用许可证,这是免费的。然后将其添加到一个变量中,该变量将用于创建JavaScript堆叠条形图对象。

let license = undefined
try {
license = 'xxxxxxxxxxxxx'
} catch (e) {}
3. 属性

LightningChart JS为您提供了完全自定义图表对象属性的可能性,将使用以下属性来创建这个JavaScript堆叠条形图:

const barChart = lightningChart({license: license})
.BarChart({
theme: Themes.cyberSpace,
})
.setTitle('% of market share by mobile OS in 1999-2021')
.setValueLabels(undefined)
.setCursorResultTableFormatter((builder, category, value, bar) => {
builder.addRow('OS:', bar.subCategory).addRow('Share:', String(value), '%')
return builder
})

– Theme:定义JavaScript堆叠条形图的外观和感觉,注意您必须事先指定图表组件的颜色主题。

– setCursorResultTableFormatter:当光标指向本系列时,配置光标悬停结果表的格式,结果表将显示为一个带有数据值的弹出框。

LightningChart JS实战使用教程

每一行被生成为一行(.addrow),我们可以用需要的文本对其进行格式化。子类别和值属性对应于分配给图表的数据。子类别包含图表的类别或分组的名称,Value包含按类别堆叠的每个条的值。

.setCursorResultTableFormatter((builder, category, value, bar) => {
builder.addRow('OS:', bar.subCategory).addRow('Share:', String(value), '%')
4. 类别和堆叠栏

要将类别和堆叠条形图添加到JavaScript堆叠条形图中,我们将使用setdatastack函数,这个函数允许添加水平轴分组和属于每个分组的类别。值数组中的值将按照其连续顺序对应于分组,例如值51将对应于组2004,每个类别将堆叠在另一个类别之上,但值将根据其位置和匹配组进行排序。

barChart.setDataStacked(
['1999', '2004', '2009', '2014', '2019', '2021'],
[
{ subCategory: 'Symbian OS', values: [1, 51, 43, 0, 0, 0] },
{ subCategory: 'Palm OS', values: [66, 18, 1, 0, 0, 0] },
{ subCategory: 'BlackBerry OS', values: [1, 7, 20, 0.5, 0, 0] },
{ subCategory: 'Windows Mobile', values: [20, 13, 7, 2, 0, 0] },
{ subCategory: 'iOS', values: [0, 0, 15, 19, 14, 27] },
{ subCategory: 'Android', values: [0, 0, 8, 77, 82, 72] },
{ subCategory: 'Other', values: [12, 11, 6, 1.5, 4, 1] },
],
)
5. LegendBox

最后我们将添加图例框,通过颜色指示类别,并在单击它们时隐藏想要的类别。

const legend = barChart
.addLegendBox(LegendBoxBuilders.VerticalLegendBox)
.setAutoDispose({
type: 'max-width',
maxWidth: 0.3,
})
legend.add(barChart)

图例框可以横向和纵向添加,此图例框可以在满足条件时自动删除,例如超过相对于图表大小的最大宽度,当图表分辨率太小或当图表太大时释放内存时,这很有用。

LightningChart JS实战使用教程

6. 初始化图表

最后,在终端中运行npm start命令来可视化本地服务器上的JavaScript堆叠条形图。

结论

JavaScript堆叠条形图是一种帮助我们更有效地可视化数据的资源,因为它能够轻松地表示复杂的数据集。即使这种类型的图表可能并不总是在所有仪表板报告中使用或看到,它也是简化按组或类别显示大量数据的一个很好的资源。

在这种情况下,LightningChart JS为我们提供了一个简单实用的图表组件:JavaScript堆叠条形图,同样我们不必过于担心用于开发图表应用程序的代码。

只需向我们的对象提供一个数据数组,就可以创建带有所有动画和可用控件的JavaScript堆叠条形图:

barChart.setDataStacked(
['1999', '2004', '2009', '2014', '2019', '2021'],
[
{ subCategory: 'Symbian OS', values: [1, 51, 43, 0, 0, 0] },
{ subCategory: 'Palm OS', values: [66, 18, 1, 0, 0, 0] },
{ subCategory: 'BlackBerry OS', values: [1, 7, 20, 0.5, 0, 0] },
{ subCategory: 'Windows Mobile', values: [20, 13, 7, 2, 0, 0] },
{ subCategory: 'iOS', values: [0, 0, 15, 19, 14, 27] },
{ subCategory: 'Android', values: [0, 0, 8, 77, 82, 72] },
{ subCategory: 'Other', values: [12, 11, 6, 1.5, 4, 1] },
],
)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/303480.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Netty学习——高级篇2 Netty解码技术 备份

接上篇:Netty学习——高级篇1 拆包 、粘包与编解码技术,本章继续介绍Netty的其他解码器 1 DelimiterBasedFrameDecoder分隔符解码器 DelimiterBasedFrameDecoder 分隔符解码器是按照指定分隔符进行解码的解码器,通过分隔符可以将二进制流拆分…

K8s-Ingress Nginx-Day 08

1. 什么是Ingress 官方文档:https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/#what-is-ingress Ingress 是 kubernetes API 中的标准资源类型之一,主要是k8s官方在维护。 2. Ingress的作用 Ingress 提供从集群外部到集群内服务…

达梦的归档日志参数ARCH_RESERVE_TIME测试

达梦的参数ARCH_RESERVE_TIME测试 前面有提到和oracle相比,达梦的归档日志相关参数有个比较特别,可以通过设置它去规定归档日志的保留时间。 ARCH_RESERVE_TIME:归档日志保留时间,单位分钟,取值范围 0~2147483647。只…

github生成新的SSH密钥

首先是参考官方文档 生成新的 SSH 密钥并将其添加到 ssh-agent述 当你在创建SSH密钥时遇到提示: Enter file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):这一步是让你选择保存生成的SSH密钥对的文件名和位置。如果你直接按回车键([Pr…

【项目实战经验】DataKit迁移MySQL到openGauss(下)

上一篇我们分享了安装、设置、链接、启动等步骤,本篇我们将继续分享迁移、启动~ 目录 9. 离线迁移 9.1. 迁移插件安装 中断安装,比如 kill 掉java进程(安装失败也要等待300s) 下载安装包准备上传 缺少mysqlclient lib包 mysq…

分类预测 | Matlab实现CPO-LSSVM冠豪猪算法优化最小二乘支持向量机数据分类预测

分类预测 | Matlab实现CPO-LSSVM冠豪猪算法优化最小二乘支持向量机数据分类预测 目录 分类预测 | Matlab实现CPO-LSSVM冠豪猪算法优化最小二乘支持向量机数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现CPO-LSSVM冠豪猪算法优化最小二乘支持向量…

TypeScript常用知识点整理

介绍 TypeScript 是 JavaScript 的一个超集,添加了静态类型支持和更多现代编程特性,提高了代码的可靠性和可维护性。最终会被编译成标准的 JavaScript 代码运行。 使用npm install -g typescript进行全局安装 将编写好的ts代码进行运行,第…

Go语言工程师如何进阶为云原生高级开发工程师?

大家好,我是孔令飞,字节跳动云原生开发专家、前腾讯云原生技术专家;《企业级Go项目开发实战》作者,云原生实战营 知识星球星主。欢迎关注我的公众号【令飞编程】,干货不错过。 我们当前正处在云原生时代,有…

数据恢复软件能不能恢复已经删除的监控视频

随着安防意识的日益增强,监控视频已成为众多场所不可或缺的安全保障。然而,由于各种原因,我们可能会不小心删除了一些重要的监控视频。面对这种情况,许多人都会想到使用数据恢复软件来尝试找回这些丢失的视频。那么,数…

Linux入门攻坚——18、SELinux、Bash脚本编程续

SELinux——Secure Enhanced Linux(安全加强的Linux),工作于Linux内核中。 SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。采用委任式存取控制,是在进行程序、文件等细节权…

NAT转换是怎么工作的?

前言 对象: 服务器S,NAT设备,用户设备C1,用户设备C2 用户C1向服务器S发起一个HTTP请求,经过NAT转化,服务器收到并作出响应,用户C1收到响应。 问题来了,NAT是怎么知道这个响应是给用户C1而不是…

复现chatgpt_ros,需要openapi key

1. 前置工作: 现在ubuntu系统是20.04ros1,现在用docker新建并安装ros2: 最简单的,用大佬的一键安装: wget http://fishros.com/install -O fishros && . fishros 其次自己装…

CentOS 7 升级 5.4 内核

MatrixOne 推荐部署使用的操作系统为 Debian 11、Ubuntu 20.04、CentOS 9 等 Kernel 内核版本高于 5.0 的操作系统。随着 CentOS 7 的支持周期接近尾声,社区不少小伙伴都在讨论用以替换的 Linux 操作系统,经过问卷调查,我们发现小伙伴们的操作…

kotlin项目引用

概要: 记录项目引用kotlin具体事项 1 object下build.gradle buildscript {//声明引用版本ext.kotlin_version "1.4.20"repositories {google()mavenCentral()}dependencies {classpath "com.android.tools.build:gradle:4.2.0"//引用kotlinc…

假期别闲着:REST API实战演练之创建Rest API

1、创建实体类,模拟实体对象 创建一个类,模拟数据数据库来存储数据,这个类就叫Person。 其代码如下: package com.restful;public class Person {private String name;private String about;private int birthYear;public Perso…

redis主从复制详解

redis主从复制(replica) 1、是什么? 目录 redis主从复制(replica) 1、是什么? 2、能干嘛? 3、怎么玩? 4、案例演示 前置操作 🍗一主二仆 🍕薪火相传 🌭反客为主 5、复制的原理和工作…

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--wordpress中的著名循环

wordpress中的著名循环 首先,在深入研究任何代码之前,我们首先要确保我们有不止一篇博客文章可以工作。因此,我们要去自己的wordpress站点,从侧边栏单机Posts(文章),进行创建 在执行代码的时候会优先执行single.php如…

在B站看课的进度助手

效果 代码 BilibiliVideoDurationCrawler import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.IOException; import java.text.ParseException; import java.util.ArrayList; imp…

Git分布式版本控制系统——Git常用命令(一)

一、获取Git仓库--在本地初始化仓库 执行步骤如下: 1.在任意目录下创建一个空目录(例如GitRepos)作为我们的本地仓库 2.进入这个目录中,点击右键打开Git bash窗口 3.执行命令git init 如果在当前目录中看到.git文件夹&#x…

Redis 常用的基本命令

🔥博客主页:fly in the sky - CSDN博客 🚀欢迎各位:点赞👍收藏⭐️留言✍️🚀 🎆慢品人间烟火色,闲观万事岁月长🎆 📖希望我写的博客对你有所帮助,如有不足,请指正&#…