在使用这个chart.js之前,自己写过一个饼图,总之碰到的问题不少,所以能用现成的插件就用,能节省不少时间

这里不打算介绍chart.js里面详细的参数意义和各个参数的用法,只作为首次使用chart.js的一个入门级的说明!

在使用之前,我找到了一个中文的chart.js的文档地址:http://www.bootcss.com/p/chart.js/docs/,打开后发现除了菜单是中文的,其他还是英文的,这个可能是从官方直接扒下来的版本,很久没更新了,部分参数和官方已经差距很大,还是直接看官方的吧http://www.chartjs.org/

首先还是npm安装chart.js

npm install chart.js --save

这里直接贴出来一个折线图的代码好了,比较直接

<template>
<div class="small"> <canvas id="myChart2" width="400px" height="400px"></canvas>
</div>
</template>
<script>
import Chart from 'chart.js'; export default {
components: { },
data() {
return { }
},
mounted() { var ctx2 = document.getElementById("myChart2"); var myChart2 = new Chart(ctx2, {
type: "line",
data: {
labels: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
datasets: [
{
label: "test1",
backgroundColor: "rgba(225,10,10,0.3)",
borderColor: "rgba(225,103,110,1)",
borderWidth: ,
pointStrokeColor: "#fff",
pointStyle: "crossRot",
data: [, , , , , , , , , , , ],
cubicInterpolationMode: "monotone",
spanGaps: "false",
fill: "false"
}
]
},
options: { } });
},
methods: { }
}
</script>
<style>
.small {
width: 500px;
height: 500px;
}
</style>

效果图如下

new Chart(ctx2, configObject) 中的configObject对象中有三个重要的属性

          {
type: "",
data: {
},
options: { } }

type属性表示图形形状

line:折线图

bar:柱状图

Radar:雷达图/蛛网图

doughnut:圆环图

pie:饼图

polarArea:极地区域图

bubble:气泡分布图

scatter:散点图

data属性配置图形上的数据,data里的数据可以参考各个type的图每个参数的说明

options配置图形其他的可选项

另外我们选用一个库的一个很重要的因素是这个库浏览器的支持程度,经过实际的测试

IE9+和chrome,firefox支持canvas的都可以使用。

针对vue.js封装的vue-chartjs库:http://vue-chartjs.org,由于是封装库,几乎所有的参数都要参考chart.js的配置,只不过使用的方式改为vue特有的组件的形式

首先还是安装库

npm install vue-chartjs --save

例如我们要创建一个折线图

LineChart.js

import { Line, mixins } from 'vue-chartjs'
const { reactiveProp } = mixins export default Line.extend({
mixins: [reactiveProp],
props: ['options'],
mounted () {
// this.chartData is created in the mixin
this.renderChart(this.chartData, this.options)
}
})

RandomChart.vue

<template>
<div class="small">
<line-chart :chart-data="datacollection"></line-chart>
<button @click="fillData()">Randomize</button>
</div>
</template> <script>
import LineChart from './LineChart.js' export default {
components: {
LineChart
},
data() {
return {
datacollection: { labels: [], datasets: [] }
}
},
mounted() {
this.fillData()
},
methods: {
fillData() { let result = {
labels: [this.getRandomInt(), this.getRandomInt(), this.getRandomInt(),this.getRandomInt()],
datasets: [
{
label: 'Data One',
backgroundColor: '#f87979',
data: [this.getRandomInt(), this.getRandomInt(), this.getRandomInt(),this.getRandomInt()]
}, {
label: 'Data One',
backgroundColor: '#0f0',
data: [this.getRandomInt(), this.getRandomInt(), this.getRandomInt(),this.getRandomInt()]
}
]
}; console.log(result);
this.datacollection = result;
},
getRandomInt() {
return Math.floor(Math.random() * (50 - 5 + 1)) + 5
}
}
}
</script> <style>
.small {
max-width: 600px;
margin: 150px auto;
}
</style>

如果在没有掌握chart.js的用法之前直接使用vue-chartjs的话,可能会有一些困难,vue-chartjs官方的文档只介绍了如何创建和使用插件部分,详细的属性配置还是需要去chart.js的文档里面找。

最新文章

  1. 关于SubSonic3.0生成的表名自动加复数(s)的“用户代码未处理SqlException,对象名&#39;xxxs&#39;无效”异常处理
  2. Spring AOP动态切换数据源
  3. 如何使用 aspnetpager
  4. jquery validate学习心得
  5. asp.net中当点击按钮时出现grid编辑弹框
  6. windows 80端口被占用
  7. 在Docker上部署使用Azure CLI镜像
  8. [Puzzle] 蚂蚁路线碰撞问题
  9. POJ - 2828 Buy Tickets (段树单点更新)
  10. ckplayer 参数设置详解
  11. Ubuntu下安装GTK环境
  12. Linux学习笔记(一)----Ubuntu下的apt命令
  13. python 全栈开发,Day5(字典,增删改查,其他操作方法)
  14. 大杂烩 -- Java内存布局【图】以及java各种存储区【详解】
  15. Linux-目录与文件
  16. 用 iOS-System-Services 框架获取iOS设备所用的设备信息
  17. 开启mysql远程登录
  18. django之创建第4-2个项目-访问class类属性和类方法
  19. extjs 分组函数自定义统计
  20. Visual Studio for Mac离线安装教程

热门文章

  1. POI Java 导出数据到Excel
  2. Storm概念学习系列之Worker、Task、Executor三者之间的关系
  3. Magento 中一个订单的“生命历程”
  4. centos yum 安装mysql5.7 以及 默认root密码查看
  5. sweetalert 1.0多次回调函数bug
  6. (转) HTTP Request header
  7. LeetCode Merge Sorted Array 合并已排序的数组
  8. 机器学习-octave使用
  9. linux 命令——8 cp (转)
  10. 比特币中P2PKH(pay-to-public-key-hash)的锁定脚本和解锁脚本