Chart.js功能与使用方法小结

本文实例讲述了Chart.js功能与使用方法。分享给大家供大家参考,具体如下:

官方文档

英文文档 https://www.chartjs.org/docs/2.8.0/
中文文档 https://chartjs-doc.abingoal.com

在react中的使用

开始使用

npm install chart.js --save

在相应的页面中引入 chartjs

import Chart from "chart.js"

先写一个小的demo

import React from "react";
import ReactDOM from "react-dom";

import Chart from "chart.js";

class App extends React.Component {
 constructor(props) {
  super(props);
  this.state = {};
 }
 componentDidMount() {
 this.renderCanvas()
 }

 // 作图
 renderCanvas = () => {
  const myChartRef = this.chartRef.getContext("2d");
  new Chart(myChartRef, {
   type: "line",
   data: {
    labels: [1,2,3,4,5],
    datasets: [
     {
      data: [10, 20, 50, 80, 100],
      backgroundColor: "rgba(71, 157, 255, 0.08)",
      borderColor: "rgba(0, 119, 255, 1)",
      pointBackgroundColor: "rgba(56, 96, 244, 1)",
      pointBorderColor: "rgba(255, 255, 255, 1)",
      pointRadius: 4
     }
    ]
   },

   options: {
    responsive: true,
    legend: {
     display: false
    },
    maintainAspectRatio: false
   }
  });
 };

 render() {
  return (
   <div style={{ height: 288 }}>
    <canvas id="myChart" ref={ref => (this.chartRef = ref)} />
   </div>
  );
 }
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

https://codesandbox.io/embed/aged-meadow-2sc8m?fontsize=14

动态更新的数据

import React from "react";
import ReactDOM from "react-dom";

import Chart from "chart.js";
let currentChart;

class App extends React.Component {
 constructor(props) {
  super(props);
  this.state = {
   data: [30, 60, 90, 120, 100]
  };
 }
 componentDidMount() {
  this.renderCanvas();
  this.renderCurrent();
 }

 // 作图
 renderCanvas = () => {
  const myChartRef = this.chartRef.getContext("2d");
  new Chart(myChartRef, {
   type: "line",
   data: {
    labels: [1, 2, 3, 4, 5],
    datasets: [
     {
      data: [10, 20, 50, 80, 100],
      backgroundColor: "rgba(71, 157, 255, 0.08)",
      borderColor: "rgba(0, 119, 255, 1)",
      pointBackgroundColor: "rgba(56, 96, 244, 1)",
      pointBorderColor: "rgba(255, 255, 255, 1)",
      pointRadius: 4
     }
    ]
   },

   options: {
    responsive: true,
    legend: {
     display: false
    },
    maintainAspectRatio: false
   }
  });
 };

 renderCurrent = () => {
  const { data } = this.state;
  const currentCharttemp = this.currentChart.getContext("2d");
  if (typeof currentChart !== "undefined") {
   currentChart.destroy();
  }
  currentChart = new Chart(currentCharttemp, {
   type: "line",
   data: {
    labels: [1, 2, 3, 4, 5],
    datasets: [
     {
      data: data,
      backgroundColor: "rgba(71, 157, 255, 0.08)",
      borderColor: "rgba(0, 119, 255, 1)",
      pointBackgroundColor: "rgba(56, 96, 244, 1)",
      pointBorderColor: "rgba(255, 255, 255, 1)",
      pointRadius: 4
     }
    ]
   },

   options: {
    responsive: true,
    legend: {
     display: false
    },
    maintainAspectRatio: false
   }
  });
 };

 render() {
  return (
   <div>
    <canvas id="myChart" ref={ref => (this.chartRef = ref)} />
    <br />

    <button
     onClick={()=>
      this.setState({ data: [200, 500, 20, 50, 100] }, this.renderCurrent)
     }
    >
     更新数据
    </button>
    <canvas id="currentChart7" ref={ref => (this.currentChart = ref)} />
   </div>
  );
 }
}

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《JavaScript操作DOM技巧总结》、《JavaScript页面元素操作技巧总结》、《JavaScript事件相关操作与技巧大全》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

(0)

相关推荐

  • 详解vue文件中使用echarts.js的两种方式

    最近工作中需要用到echarts,由于项目是用的vue-cli开发的.在网上搜到vue中合成了vue-echarts,但是不想使用vue中规定好的数据格式,于是就自己做了一个vue项目引用原生echarts的简单demo,实现过程如下:用了两种实现方式 准备工作 1.安装echarts依赖 控制台输入:npm install echarts --save 2.全局引入 main.js中引入 import echarts from 'echarts' Vue.prototype.$echarts

  • vue集成chart.js的实现方法

    指令 该指令的作用是dom渲染后触发,因为非vue的插件有的是dom必须存在的情况下才可以执行 Vue.directive('loaded-callback', { inserted: function (el, binding, vnode) { binding.value(el, binding, vnode) } }) 安装chartjs npm install chart.js --save chartjs 组件 <template> <canvas refs="cha

  • JavaScript Chart 插件整理

    名称 是否免费 是否支持输出多类型 界面华丽 功能性 建设框架 EJSchart 不 是 是 上 无 JSchart 个人免费 是 是 上 无 jqPlot 是 是 是 中上 Jquery Flot 是 否 是 下 Jquery JGcharts 是 是 一般 中 Jquery GOOGLE chart API plotkit 是 是 一般 中 Mochikit flotr 是 饼图不支持 是 中 Prototype YUI2 chart 是 是 是 上 YUI2 Ext chart 3.0前

  • 在 Angular 中使用Chart.js 和 ng2-charts的示例代码

    Chart.js是一个流行的JavaScript图表库,ng2图表是Angular 2+的包装器,可以轻松地将Chart.js集成到Angular中. 我们来看看基本用法. 安装 首先,在项目中安装 Chart.js 和 ng2-charts: # Yarn: $ yarn add ng2-charts chart.js # or npm $ npm install ng2-charts charts.js --save 当然 ,如果你是使用Angular CLI构建的项目,你也可以很容易的添加

  • 使用Vue.js 和Chart.js制作绚丽多彩的图表

    前言 深入学习 chart.js 的选项来制作漂亮的图表.交互式图表可以给你的数据可视化提供很酷的展示方式.但是大多数开箱即用的解决方案用默认的选项并不能做出很绚丽的图表. 这篇文章中,我会教你如何自定义 chart.js 选项来制作很酷的图表. ⚡ Quick Start 我们需要: Vue.js vue-chart.js vue-cli 使用 vue-cli 来搭基本架构,希望你已经安装好了.我们使用 vue-chart.js 来作为 chart.js 的打包器. vue init webp

  • 利用ECharts.js画K线图的方法示例

    前言 最近有一个统计的项目要做,在前端的数据需要用图表的形式展示.网上搜索了一下,发现有几种统计图库. MSChart 这个是Visual Studio里的自带控件,使用比较简单,不过数据这块需要在后台绑定. ichartjs 是一款基于HTML5的图形库.使用纯javascript语言, 利用HTML5的canvas标签绘制各式图形. 支持饼图.环形图.折线图.面积图.柱形图.条形图等. Chart.js 也是一款基于HTML5的图形库和ichartjs整体类似.不过Chart.js的教程文档

  • 使用Chart.js图表库制作漂亮的响应式表单

    入门基础 Chart.js是一个基于HTML5的开源图表库,可以方便简洁的绘制美观的图表. 主要特性包括: 1.支持6种不同的表格类型:曲线图.柱状图.饼状图.雷达图.极坐标区域图.环图. 2.基于HTML5开发,支持所有浏览器(包括IE7/8). 3.不依赖于其他任何库,仅有4.5k大小,并且可以进行定制. Chart.js 是一个基于 HTML5 canvas 的响应式.灵活的.轻量化的图表库.库中提供了六种不同的图表类型,每种类型都带有一系列的自定义选项.如果这些还不够,你还可以创造自己的

  • Chart.js在Laravel项目中的应用示例

    介绍 Chart.js是一个HTML5图表库,使用canvas元素来展示各式各样的客户端图表,支持折线图.柱形图.雷达图.饼图.环形图等, 本文将介绍如何在laravel项目中使用chart.js 安装 可以通过以下命令在 npm 或 bower 中来安装chart.js. npm install chart.js --save bower install chart.js --save 可以在你的项目中使用 CDN link. https://cdnjs.cloudflare.com/ajax

  • ichart.js绘制虚线、平均分虚线效果的实现代码

    ichart.js绘制虚线.平均分虚线效果的实现代码 var Data=new Array(); Data[0] = { labels : ["第一单元","第二单元","第三单元","第四单元","第五单元"], datasets : [ { name : '优秀率', color:'#1dbcfe', line_width:4, value : [80,75,92,62,0] } ] } Data[1]

  • 详解Chart.js轻量级图表库的使用经验

    前言 最近项目中遇到一个在页面中画图表的需求,需要一个扇状图和一个柱状图,虽然能使用svg或canvas绘制,但吃力还不一定讨好,所以研究接入了主流的第三方图表库供项目使用.下面主要记录我使用过程中的一些体验和解决方法,具体教程请移步官方文档. 技术选型 研究了Highcharts.百度的ECharts.阿里的G2和Charts.js四个图表库,由于项目对图表需求不大,图表不复杂,所以引入了轻量级的Charts.js.Chart.js很容易上手,只需要在页面中引用脚本文件,并创建 <canvas

  • Chart.js 轻量级HTML5图表绘制工具库(知识整理)

    Chart.js:用不同的方式让你的数据变得可视化.每种类型的图表都有动画效果,并且看上去非常棒,即便是在retina屏幕上.基于HTML5 canvas技术,Chart.js不依赖任何外部工具库,轻量级(压缩之后仅有4.5k).值得推荐学习! GitHub源码: https://github.com/nnnick/Chart.js Chart.js文档:http://www.bootcss.com/p/chart.js/ 步骤: html部分: <canvas id="myChart&q

  • vue.js+Echarts开发图表放大缩小功能实例

    最近使用echarts来开发某系统的图表功能,先申明我以前用的ext.js,ext.js对图表有自己的一套组件,用起来也很方便.但是由于ext.js过于臃肿,公司决定使用echarts来开发图表功能.当我们使用的时候才悲催的发现,echart绘制之后,不能随着容器div的大小而变化.而我们所开发的图表是需要有放大缩小功能,于是在网上找了很久,也没有找到合适的答案,大部分是通过监听窗口大小改变事件来设置,然而并不是我们所需要的.于是自己用了一点点时间,了解了为何echarts不能重新渲染,原来是在

随机推荐