发布时间:2021-06-02 09:19:06编辑:admin阅读(3418)
Highcharts 是一个制作图表的纯 Javascript 类库,主要特性如下:
兼容性:兼容当今所有的浏览器,包括 iPhone、IE 和火狐等等;
对个人用户完全免费;
纯 JS,无 BS;
支持大部分的图表类型:直线图,曲线图、区域图、区域曲线图、柱状图、饼状图、散布图;
跨语言:不管是 PHP、Asp.net 还是 Java 都可以使用,它只需要三个文件:一个是 Highcharts 的核心文件 highcharts.js,还有 a canvas emulator for IE 和 Jquery 类库或者 MooTools 类库;
提示功能:鼠标移动到图表的某一点上有提示信息;
放大功能:选中图表部分放大,近距离观察图表;
易用性:无需要特殊的开发技能,只需要设置一下选项就可以制作适合自己的图表;
时间轴:可以精确到毫秒;
Highcharts演示:https://www.highcharts.com.cn/demo/highcharts
官方文档:https://www.highcharts.com.cn/docs/highcharts-vue
npm install highcharts npm install highcharts-vue
注意:官方文档,只写了highcharts-vue。实际情况下,还需要安装highcharts,用来导入一些依赖模块。
若仅用于特定组件,请使用局部注册方法。首先,您应该从组件文件中的 Highcharts-Vue 包中导入 Chart 组件对象:
import {Chart} from 'highcharts-vue'
然后,您需要在 Vue 实例配置中注册它,即在 components 部分中
{ components: { highcharts: Chart } }
如果您已经完成上述任务之一(导入和注册组件),它允许您在应用程序中使用 Highcharts-Vue 组件,只需要添加 <highcharts>
元素,而且必须通过它的 :options
参数传递图表配置对象
<highcharts :options="chartOptions"></highcharts>
例如:
new Vue({ data() { return { chartOptions: { series: [{ data: [1, 2, 3] // sample data }] } } } })
基础折线图:https://www.highcharts.com.cn/demo/highcharts/line-basic
点击编辑源代码,复制下图红色部分代码
到vue文件中即可。
test.vue
<template> <div> <highcharts :options="chartOptions1"></highcharts> </div> </template> <script> import {Chart} from 'highcharts-vue' import Highcharts from 'highcharts' import exportingInit from 'highcharts/modules/exporting' exportingInit(Highcharts) export default { name: "test", components: { highcharts: Chart }, data() { return{ chartOptions1: { title: { text: '2010 ~ 2016 年太阳能行业就业人员发展情况' }, subtitle: { text: '数据来源:thesolarfoundation.com' }, yAxis: { title: { text: '就业人数' } }, legend: { layout: 'vertical', align: 'right', verticalAlign: 'middle' }, plotOptions: { series: { label: { connectorAllowed: false }, pointStart: 2010 } }, series: [{ name: '安装,实施人员', data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175] }, { name: '工人', data: [24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434] }, { name: '销售', data: [11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387] }, { name: '项目开发', data: [null, null, 7988, 12169, 15112, 22452, 34400, 34227] }, { name: '其他', data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111] }], responsive: { rules: [{ condition: { maxWidth: 500 }, chartOptions: { legend: { layout: 'horizontal', align: 'center', verticalAlign: 'bottom' } } }] } } } } } </script> <style scoped> </style>
打开页面,效果如下:
如果需要去除右下角的水印,以及右上角的打印以及下载功能。添加
credits: { enabled: false }, exporting: { enabled:false },
test.vue完整代码如下:
<template> <div> <highcharts :options="chartOptions1"></highcharts> </div> </template> <script> import {Chart} from 'highcharts-vue' import Highcharts from 'highcharts' import exportingInit from 'highcharts/modules/exporting' exportingInit(Highcharts) export default { name: "test", components: { highcharts: Chart }, data() { return{ chartOptions1: { credits: { enabled: false }, exporting: { enabled:false }, title: { text: '2010 ~ 2016 年太阳能行业就业人员发展情况' }, subtitle: { text: '数据来源:thesolarfoundation.com' }, yAxis: { title: { text: '就业人数' } }, legend: { layout: 'vertical', align: 'right', verticalAlign: 'middle' }, plotOptions: { series: { label: { connectorAllowed: false }, pointStart: 2010 } }, series: [{ name: '安装,实施人员', data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175] }, { name: '工人', data: [24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434] }, { name: '销售', data: [11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387] }, { name: '项目开发', data: [null, null, 7988, 12169, 15112, 22452, 34400, 34227] }, { name: '其他', data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111] }], responsive: { rules: [{ condition: { maxWidth: 500 }, chartOptions: { legend: { layout: 'horizontal', align: 'center', verticalAlign: 'bottom' } } }] } } } } } </script> <style scoped> </style>
刷新页面,效果如下:
注意:旭日图需要加载sunburst.js,因此需要在vue中,导入一下。
test.vue
<template> <div> <highcharts :options="chartOptions1"></highcharts> </div> </template> <script> import {Chart} from 'highcharts-vue' import Highcharts from 'highcharts' import exportingInit from 'highcharts/modules/exporting' exportingInit(Highcharts) import sunburstInit from 'highcharts/modules/sunburst' sunburstInit(Highcharts) export default { name: "test", components: { highcharts: Chart }, data() { return{ chartOptions1: { credits: { enabled: false }, exporting: { enabled:false }, chart: { height: '100%' }, title: { text: '2017 世界人口分布' }, subtitle: { text: '' }, series: [{ type: "sunburst", data: [ { "id":"0.0", "parent":"", "name":"The World" }, { "id":"1.3", "parent":"0.0", "name":"亚洲", "color":"#FFB6C1" }, { "id":"1.1", "parent":"0.0", "name":"非洲", "color":"#DB7093" }, { "id":"1.2", "parent":"0.0", "name":"美洲", "color":"#DA70D6" }, { "id":"1.4", "parent":"0.0", "name":"欧洲", "color":"#FF00FF" }, { "id":"1.5", "parent":"0.0", "name":"大洋洲", "color":"#BA55D3" }, { "id":"2.1", "parent":"1.1", "name":"东非" }, { "id":"3.20", "parent":"2.1", "name":"塞舌尔群岛", "value":94737 }, { "id":"2.5", "parent":"1.1", "name":"西非" }, { "id":"3.42", "parent":"2.5", "name":"尼日利亚", "value":190886311 }, { "id":"3.36", "parent":"2.3", "name":"西撒哈拉", "value":552628 }, { "id":"2.4", "parent":"1.1", "name":"南美洲" }, { "id":"3.37", "parent":"2.4", "name":"南非", "value":56717156 }, { "id":"2.9", "parent":"1.2", "name":"南美洲" }, { "id":"3.98", "parent":"2.9", "name":"巴西", "value":209288278 }, { "id":"2.8", "parent":"1.2", "name":"北美洲" }, { "id":"3.93", "parent":"2.8", "name":"美国", "value":324459463 }, { "id":"3.97", "parent":"2.8", "name":"圣皮埃尔和密克隆", "value":6320 }, { "id":"2.7", "parent":"1.2", "name":"中美洲" }, { "id":"3.85", "parent":"2.7", "name":"墨西哥", "value":129163276 }, { "id":"2.6", "parent":"1.2", "name":"加勒比海" }, { "id":"3.83", "parent":"2.6", "name":"安圭拉", "value":14909 }, { "id":"3.84", "parent":"2.6", "name":"蒙特塞拉特", "value":5177 }, { "id":"2.13", "parent":"1.3", "name":"南亚" }, { "id":"3.144", "parent":"2.13", "name":"马尔代夫", "value":436330 }, { "id":"2.11", "parent":"1.3", "name":"东亚" }, { "id":"3.117", "parent":"2.11", "name":"中国", "value":1441131303 }, { "id":"3.118", "parent":"2.11", "name":"日本", "value":127484450 }, { "id":"3.121", "parent":"2.11", "name":"台湾省(中国)", "value":23626456 }, { "id":"3.123", "parent":"2.11", "name":"蒙古", "value":3075647 }, { "id":"2.12", "parent":"1.3", "name":"东南亚" }, { "id":"3.135", "parent":"2.12", "name":"文莱", "value":428697, "color":"" }, { "id":"2.14", "parent":"1.3", "name":"西亚" }, { "id":"3.145", "parent":"2.14", "name":"土耳其", "value":80745020 }, { "id":"3.161", "parent":"2.14", "name":"巴林王国", "value":1492584 }, { "id":"2.15", "parent":"1.4", "name":"东欧" }, { "id":"2.16", "parent":"1.4", "name":"北欧" }, { "id":"3.173", "parent":"2.16", "name":"英国", "value":66181585 }, { "id":"3.185", "parent":"2.16", "name":"法罗群岛", "value":49290 }, { "id":"3.201", "parent":"2.17", "name":"梵蒂冈城", "value":792 }, { "id":"3.210", "parent":"2.18", "name":"列支敦士登", "value":37922 }, { "id":"2.19", "parent":"1.5", "name":"澳大利亚和新西兰" }, { "id":"2.20", "parent":"1.5", "name":"美拉尼西亚" }, { "id":"3.217", "parent":"2.20", "name":"瓦努阿图", "value":276244 }, { "id":"2.21", "parent":"1.5", "name":"密克罗尼西亚" }, { "id":"3.224", "parent":"2.21", "name":"瑙鲁", "value":11359 }, { "id":"2.22", "parent":"1.5", "name":"波利尼西亚" }, { "id":"3.225", "parent":"2.22", "name":"法属波利尼西亚", "value":283007 } ], allowDrillToNode: true, cursor: 'pointer', dataLabels: { /** * A custom formatter that returns the name only if the inner arc * is longer than a certain pixel size, so the shape has place for * the label. */ formatter: function () { var shape = this.point.node.shapeArgs; var innerArcFraction = (shape.end - shape.start) / (2 * Math.PI); var perimeter = 2 * Math.PI * shape.innerR; var innerArcPixels = innerArcFraction * perimeter; if (innerArcPixels > 16) { return this.point.name; } } }, levels: [{ level: 2, colorByPoint: true, dataLabels: { rotationMode: 'parallel' } }, { level: 3, colorVariation: { key: 'brightness', to: -0.5 } }, { level: 4, colorVariation: { key: 'brightness', to: 0.5 } }] }], tooltip: { headerFormat: "", pointFormat: '<b>{point.name}</b>:<b>{point.value}</b>' } } } } } </script> <style scoped> </style>
效果图如下:
上一篇: vue使用iconfont
下一篇: 微信小程序入门教程
47743
46233
37107
34625
29227
25882
24742
19861
19414
17906
5713°
6312°
5831°
5885°
6981°
5827°
5842°
6358°
6313°
7670°