I 官网

https://www.chartjs.org/

https://chartjs.bootcss.com/ 中文网址

简单易上手,支持的Chart 类型:折线图,饼图,柱状,雷达图,网状图 基本遇到的图都支持

操作步骤:

1 引用chartjs 测试使用cdn

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

2 创建Chart显示的画布Canvas 设置ID

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

3 配置参数,如下主要分为三个部分:

const config = {
type: 'line',//线图
data: data,//用来配置显示在图上的数据信息,点的坐标信息
options: {}//可选参数 常用的配置有responsive 自适应 legend用来配置是否显示图例 自定义横坐标,纵坐标显示刻度等
};
const data = {
datasets: [{
label: 'cpu',
data: [
{ Dt: '2021-10-10', rate: 40 }, { Dt: '2021-10-11', rate: 43 }, { Dt: '2021-10-12', rate: 60 },
{ Dt: '2021-10-13', rate: 54 }, { Dt: '2021-10-14', rate: 38 }, { Dt: '2021-10-15', rate: 64 },
{ Dt: '2021-10-16', rate: 46 },],
parsing: { yAxisKey: 'rate', xAxisKey: 'Dt' }
}
]
};
const option= { }
const config = { type: 'line', data: data, Option: option };

 

4 加载Chart图表,const myChart = new Chart(element,config);

const myChart = new Chart(document.querySelector("#myChart"), config);

  

5 以折线图为例,添加点击事件,获取点的坐标信息

document.querySelector("#myChart").onclick = function (evt) {
const points = myChart.getElementsAtEventForMode(evt, 'nearest', { intersect: true }, true);
//console.log(evt);
console.log(points);
// => activePoints is an array of points on the canvas that are at the same position as the click event.
if (points.length) {
const firstPoint = points[0];
const label = myChart.data.labels[firstPoint.index];
const value = myChart.data.datasets[firstPoint.datasetIndex].data[firstPoint.index].Dt;
console.log(`${label} --- ${value}`);//横坐标---纵坐标
}
};

更多属性建议大家访问官网,链接: Getting Started | Chart.js (chartjs.org)

以下附上自己写的一个demo:线图添加Click事件,控制台输出click点的坐标

引用js

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

html代码

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

javascript 实现

const data = {
datasets: [{
label: 'cpu',
data: [
{ Dt: '2021-10-10', rate: 40 }, { Dt: '2021-10-11', rate: 43 }, { Dt: '2021-10-12', rate: 60 },
{ Dt: '2021-10-13', rate: 54 }, { Dt: '2021-10-14', rate: 38 }, { Dt: '2021-10-15', rate: 64 },
{ Dt: '2021-10-16', rate: 46 },],
parsing: { yAxisKey: 'rate', xAxisKey: 'Dt' }
}
]
};
const option= { }
const config = { type: 'line', data: data, Option: option }; const myChart = new Chart(document.querySelector("#myChart"), config);  
document.querySelector("#myChart").onclick = function (evt) {      
const points = myChart.getElementsAtEventForMode(evt, 'nearest', { intersect: true }, true);      
console.log(points);      
if (points.length) {      
const firstPoint = points[0];      
const label = myChart.data.labels[firstPoint.index];      
const value = myChart.data.datasets[firstPoint.datasetIndex].data[firstPoint.index].Dt;       console.log(`${label} --- ${value}`);//横坐标---纵坐标      
}    
};

chart加载之后如果要修改图表数据:

myChart.data.datasets[0].data = obj;
myChart.update();

Chartjs 初体验的更多相关文章

  1. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

  2. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

  3. Spring之初体验

                                     Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...

  4. Xamarin.iOS开发初体验

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0

  5. 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...

  6. 【Knockout.js 学习体验之旅】(1)ko初体验

    前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...

  7. 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验

    在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...

  8. 百度EChart3初体验

    由于项目需要在首页搞一个订单数量的走势图,经过多方查找,体验,感觉ECharts不错,封装的很细,我们只需要看自己需要那种类型的图表,搞定好自己的json数据就OK.至于说如何体现出来,官网的教程很详 ...

  9. Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验

    Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出E ...

随机推荐

  1. python基础语法_闭包详解

    https://www.cnblogs.com/Lin-Yi/p/7305364.html 闭包有啥用??!! 很多伙伴很糊涂,闭包有啥用啊??还这么难懂!  3.1装饰器!!!装饰器是做什么的??其 ...

  2. 多个UID为0的用户如何实现root用户的免密

    文章目录 创建用户 创建用户密码 免密脚本 当前主机用户不是root 当前主机用户是root,远程主机多个用户uid为0 利用shell脚本实现远程主机uid为0的用户只有root一个 多个UID=0 ...

  3. suse 12 二进制部署 Kubernetets 1.19.7 - 第00章 - 环境准备

    文章目录 0.环境准备 0.0.修改主机名 0.1.添加hosts解析 0.2.配置ssh免密 0.3.发送hosts解析文件到其他节点,并修改hostname 0.4.更新PATH变量 0.5.安装 ...

  4. vue methods中的函数调用时带括号与不带括号的区别

    @click='getList(id)',但是为什么有时候明明没有传参的需要,却要加上()呢? 百思不得其解,于是去查阅了相关的资料,意思就是,当不加括号直接调用这个函数是可以直接获取到这个事件对象的 ...

  5. elk监听Java日志发送微信报警

    一年前写过logstash根据日志关键词报警 ,今年重温一下.并且记录一下遇到的问题解决办法. Java错误日志一般出现一大坨,如下图: 所以我们的filebeat日志收集器就要改成多行匹配模式,以日 ...

  6. 【FAQ】接入HMS Core应用内支付服务过程中一些常见问题总结

    HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.开发者的应用集成IAP SDK后,调用IAP SDK接口,启动IAP收银台,即 ...

  7. VUE学习笔记(李天禹老师版本)

    目录 VUE 一 脚手架文件结构 二 关于不同版本的Vue 三 vue.config.js配置文件 vue文件的基本结构 components 四 ref属性 TIPS 五 props配置项 Tips ...

  8. 这个数据分析工具秒杀Excel,可视化分析神器!

    ​入门Excel容易,想要精通就很难了,大部分人通过学习能掌握60%的基础操作,但是一些复杂数据可视化分析就需要用到各种技巧,操作理解难度加深 Excel作为一直是使用最广泛的数据表格工具,在数据量日 ...

  9. 商业智能BI必备的特性,BI工具介绍

    商业智能BI的本质 对企业来说,商业智能BI不能直接产生决策,而是利用BI工具处理后的数据来支持决策.核心是通过构建数据仓库平台,有效整合数据.组织数据,为分析决策提供支持并实现其价值. 传统的DW/ ...

  10. 动态语言运行时(DLR)

    前言 为了让C#.Visual Basic等.NET编程语言能具备动态编程语言的特性,.NET 4.0引入了一个"DLR(Dynamic Language Runtime:动态语言运行时)& ...