新闻中心

使用 Chart.js 创建堆叠式进度条图表

2025-10-10
浏览次数:
返回列表

使用 chart.js 创建堆叠式进度条图表

本文将介绍如何使用 Chart.js 库创建一个堆叠式进度条图表,用于展示诸如机器设备状态等随时间变化的指标。通过灵活配置 Chart.js,可以实现自定义颜色和多状态重复显示,满足多样化的数据可视化需求。

Chart.js 是一个流行的 J*aScript 图表库,它提供了多种图表类型,包括柱状图、折线图、饼图等。其强大的可配置性和易用性使其成为前端数据可视化的理想选择。下面将详细介绍如何使用 Chart.js 创建堆叠式柱状图,并应用于显示机器设备状态的场景。

1. 引入 Chart.js

首先,需要在 HTML 文件中引入 Chart.js 库。可以通过 CDN 方式引入,也可以下载 Chart.js 文件并本地引用。

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

2. 创建 Canvas 元素

在 HTML 文件中创建一个 canvas> 元素,用于渲染图表。

<canvas id="myChart"></canvas>

3. 编写 J*aScript 代码

接下来,编写 J*aScript 代码来创建和配置 Chart.js 图表。

秀脸FacePlay 秀脸FacePlay

一款集成AI换脸、照片跳舞等多种AI特效玩法的App

秀脸FacePlay 124 查看详情 秀脸FacePlay
const ctx = document.getElementById('myChart').getContext('2d');
const myChart = new Chart(ctx, {
    type: 'bar', // 设置图表类型为柱状图
    data: {
        labels: ['0:00', '1:00', '2:00', '3:00', '4:00', '5:00'], // 设置 x 轴标签,例如时间点
        datasets: [{
            label: '运行', // 设置数据集标签
            data: [10, 20, 15, 25, 22, 30], // 设置数据集数据
            backgroundColor: 'green', // 设置背景颜色
            stack: 'Stack 0' // 设置堆叠组
        }, {
            label: '空闲',
            data: [5, 10, 8, 12, 7, 15],
            backgroundColor: 'blue',
            stack: 'Stack 0'
        }, {
            label: '故障',
            data: [2, 3, 1, 4, 2, 1],
            backgroundColor: 'red',
            stack: 'Stack 0'
        }]
    },
    options: {
        scales: {
            x: {
                stacked: true // 启用 x 轴堆叠
            },
            y: {
                stacked: true // 启用 y 轴堆叠
            }
        }
    }
});

代码解释:

  • type: 'bar':指定图表类型为柱状图。
  • data.labels:定义 x 轴的标签,这里使用时间点作为示例。
  • data.datasets:定义数据集,每个数据集代表一种状态(例如:运行、空闲、故障)。
    • label:数据集的标签,用于图例显示。
    • data:数据集的数据,表示每个时间点该状态的持续时间或占比。
    • backgroundColor:数据集的背景颜色,用于区分不同的状态。
    • stack:将数据集分配到同一个堆叠组,确保它们在同一个柱状图上堆叠显示。
  • options.scales.x.stacked: true 和 options.scales.y.stacked: true:启用 x 轴和 y 轴的堆叠模式。

4. 自定义颜色和状态重复显示

根据实际需求,可以自定义颜色和状态重复显示。例如,可以使用不同的颜色表示不同的状态,并在同一个时间段内多次使用相同的颜色来表示状态的切换。

const myChart = new Chart(ctx, {
    // ...
    data: {
        labels: ['0:00', '1:00', '2:00', '3:00', '4:00', '5:00'],
        datasets: [{
            label: '运行',
            data: [10, 0, 15, 0, 22, 0], // 运行状态只在特定时间点出现
            backgroundColor: 'green',
            stack: 'Stack 0'
        }, {
            label: '空闲',
            data: [0, 10, 0, 12, 0, 15], // 空闲状态只在特定时间点出现
            backgroundColor: 'blue',
            stack: 'Stack 0'
        }, {
            label: '故障',
            data: [0, 0, 0, 0, 0, 0], // 故障状态只在特定时间点出现
            backgroundColor: 'red',
            stack: 'Stack 0'
        },
        {
            label: '运行',
            data: [0, 20, 0, 25, 0, 30], // 运行状态只在特定时间点出现
            backgroundColor: 'green',
            stack: 'Stack 0'
        }]
    },
    // ...
});

注意事项:

  • 确保所有需要堆叠的数据集都分配到同一个 stack 组。
  • 根据实际数据调整 data 数组的值,以反映正确的状态持续时间和占比。
  • 可以通过修改 options 对象中的其他属性来进一步自定义图表的外观和行为,例如调整图例的位置、添加标题等。

总结:

通过使用 Chart.js 库,可以轻松创建堆叠式柱状图,并将其应用于展示机器设备状态等随时间变化的指标。通过灵活配置 Chart.js,可以实现自定义颜色和多状态重复显示,满足多样化的数据可视化需求。 这种方式能够清晰地展示不同状态的持续时间和占比,帮助用户更好地了解设备运行情况。

以上就是使用 Chart.js 创建堆叠式进度条图表的详细内容,更多请关注其它相关文章!


# 持续时间  # seo内容优化总会易 速达  # 山西seo工具怎么选  # 深圳高端网站建设费用  # 齐河网站优化哪家强  # 抖音不能营销推广吗  # 怎么做涨粉素材网站推广  # 双辽网站优化排名  # 开封企业网站优化平台  # 网络营销推广网站分类  # 南昌大型网站seo  # 可以实现  # 柱状  # 可以通过  # 机器设备  # javascript  # 进度条  # 柱状图  # 置顶  # 只在  # 自定义  # red  # canva  # .net  # 数据可视化  # cdn  # 前端  # js  # html  # java 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 今日头条怎么同步内容到抖音_今日头条内容同步到抖音教程  一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化  精准捕获:如何在页面中监听除特定元素外的所有点击事件  如何修改开机登录密码_Windows账户安全设置超详细教程【必学】  在Socket.IO连接中实现Access Token自动更新与动态重连  html怎么在cmd下运行php文件_cmd运行html中php文件方法【教程】  cad如何更改注释性对象的比例_cad注释性比例调整方法  Go与Ruby之间实现AES加密互通:CFB模式下的密钥长度匹配策略  Promise错误处理:在catch后终止链式then执行的策略  Flexbox布局实践:实现粘性导航栏与底部固定页脚  漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口  Win11如何开启讲述人功能 Win11屏幕阅读器(讲述人)开启与关闭【教程】  C++如何使用AddressSanitizer(ASan)_C++调试工具中检测内存访问错误的利器  Lar*el Excel导入时生成自定义递增ID的策略与实践  解决深度学习模型训练初期异常高损失与完美验证准确率问题  Tailwind CSS line-clamp 布局问题解析与修复指南  实现分段式页面滚动导航:CSS与J*aScript教程  Win10如何清理注册表垃圾 Win10手动清理无效注册表【技巧】  在J*a中如何隐藏复杂性_使用门面模式组织对象交互  如何使用CaptainHook和Composer管理Git钩子_在提交前自动运行代码检查的Composer配置  C++ vector二维数组定义_C++ vector of vector用法  QQ邮箱网页版入口登录 QQ邮箱在线邮箱官方通道  MAC怎么安装Homebrew包管理器_MAC为开发者和高级用户安装命令行工具  HTML转PPT成品工具有哪些?HTML网页转PPT成品工具大全  在Qt QML中通过Python字典动态更新TextEdit内容的教程  铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧  QQ邮箱登录平台入口 QQ邮箱网页版邮箱官方入口  steam官方入口大全 steam账号注册及操作指南  黑鲨3Pro怎样在相册开漫画风滤镜_iPhone黑鲨3Pro相册开漫画风滤镜【趣味滤镜】  动漫共和国防屏蔽稳定域名-动漫共和国官方正版直达通道  Animex动漫社网入口地址 Animex动漫社网正版在线入口  铃兰之剑为这和平的世界希里技能组及加点推荐  曝R星经典之作开发图 设计简陋但信息密集!  探索高级语言到C/C++的转译路径:以Go为例及内存管理策略  不会效仿卡普空!《铁拳》制作人澄清:不采取赛事付费|直播|  小米Civi 4录制视频过暗_小米Civi 4亮度优化  打开就能玩的植物大战僵尸 植物大战僵尸网页版传送门  漫蛙漫画登录站点 漫蛙2正版漫画快速访问  C#如何安全地从用户上传的XML文件中读取数据? 验证与清理策略  Lar*el头像管理:图片缩放与旧文件删除的最佳实践  Win11怎么设置鼠标指针速度_Win11提高鼠标指针精确度选项  新手怎么开始学化妆 零基础化妆入门教程  高德地图公交到站提醒失败如何解决 高德提醒权限设置  晋江读书网页版在线登录 晋江读书电脑版官网  理解Python模块与全局变量的作用域管理  电脑IP地址怎么查 查看本机IP地址的几种方法  抖音网页版平台入口 抖音网页版官网在线访问教程  学习通网页版快速入口 学习通官网网页版直接打开  汽水音乐在线版入口_汽水音乐网页播放手册  极兔快递快件信息查询系统 极兔快递官网运单号追踪 

搜索