Chartjs 初体验
I 官网
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 初体验的更多相关文章
- .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- Spring之初体验
Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...
- Xamarin.iOS开发初体验
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
- 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...
- 【Knockout.js 学习体验之旅】(1)ko初体验
前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...
- 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验
在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...
- 百度EChart3初体验
由于项目需要在首页搞一个订单数量的走势图,经过多方查找,体验,感觉ECharts不错,封装的很细,我们只需要看自己需要那种类型的图表,搞定好自己的json数据就OK.至于说如何体现出来,官网的教程很详 ...
- Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验
Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出E ...
随机推荐
- 交换机基本原理与VRP基础及操作
交换机基本原理与VRP基础及操作 目录 交换机基本原理与VRP基础及操作 一.数据链路层 1.数据链路层的位置 2.数据链路层的功能 二.以太网(Ethernet) 1.以太网的概念 2.MAC地址( ...
- 【CF632F】Magic Matrix(生成树 脑洞)
题目链接 大意 给定一个\(N\times N\)的矩阵,问是否满足以下三个条件: \(A_{i,i}=0\) \(A_{i,j}=A_{j,i}\) 对于任意的\(i,j,k\),满足\(A_{i, ...
- Python篇函数总结【输出函数】
1.raw_input("\n\nPress the enter key to exit.") 以上代码中 ,"\n\n"在结果输出前会输出两个新的空行.一旦用 ...
- Puppeteer简介
puppeteer常用API https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md Puppeteer是一个node库,他 ...
- 使用代码绑定 DataGridView 控件用于程序界面显示表格
需求 软件界面需要使用表格,对数据进行显示.交互,这是一个非常通用的需求. 实现方法 DataGridView介绍 参考 https://docs.microsoft.com/en-us/dotnet ...
- Elasticsearch笔记2
1 搜索所有文档中还有某个字段的方法: localhost:9200/get-together/group/_search?pretty { "query": { "qu ...
- 6、Linux基础--文件类型、属性信息、创建用户与用户组
笔记 1.晨考 1.解析映射文件 /etc/hosts 2.磁盘挂载文件 /etc/fstab 3.设置开机自启动脚本的步骤 1.修改/etc/rc.local 2.设置可执行权限 chmod +x ...
- Note - Powerful Number
Powerful Number 对于 \(n\in\mathbb N_+\),若不存在素数 \(p\) 使得 \(p\mid n~\land~p^2\not\mid n\),则称 \(n\) 为 ...
- 2022年了有哪些值得推荐的.NET ORM框架?
前言: 最近有很多同学问我.NET方面有哪些好用的ORM框架,我觉得这方面的介绍网上应该会介绍的比较全面文章,于是我想搜一篇全面的介绍文章发给他们结果我发现网上说来说去基本上就是那几个,于是就有了这篇 ...
- 如何封装安全的go
如何封装安全的go 在业务代码开发过程中,我们会有很大概率使用go语言的goroutine来开启一个新的goroutine执行另外一段业务,或者开启多个goroutine来并行执行多个业务逻辑.所以我 ...