使用 charts.js、flot-charts、Echarts图表插件。

1 篇文章 0 订阅
1 篇文章 0 订阅

charts.js

基于 HTML5 的 JavaScript 图表库。
该组件特点就是简单,轻巧。
缺点:想要在图表上实现标识线比较麻烦。
目前支持 ,Line,Bar,Radar,Polar Area,Pie&Doughnut。
初始化:

<canvas id="barChart" style="min-height: 300px; height: 300px; max-height: 300px; max-width: 100%;"></canvas>
//定义数据
var radarChartData = {
	labels: ['设备状况', '电网质量', '工单完成', '工单响应','系统负载'],
	datasets : [
		{
          label:'',   
          backgroundColor:'rgba(205, 92, 92,0.1)', 
          borderColor:'red',
          borderWidth:'1px',
          // pointBorderColor:'#fff',
          data: [50, 60, 50, 45,20]  
	   },
	   {...},{...}
	]
}
//获取上下文,canvas的id
var radarChartCanvas = $('#barChart').get(0).getContext('2d');
//自定义配置
var radarChartOptions = {
	responsive : true,//自适应
	maintainAspectRatio : false, //响应时是否保持起始纵横比,如果设置为false,将占用整个容器
	scale: {                    
          ticks :{
          //定义坐标轴数据
             min: 0,
            max: 50
          },                   
        },
        legend: {
          display: false//是否开启图例
        },
}

结果:
在这里插入图片描述
charts.js文档

flot-charts

基于jquery的,使用Canvas画HTML图表的js库
这个库我用得不多,简单初始化案例:

<div id="pieChart" style="min-height: 300px; height: 300px; max-height: 300px; max-width: 100%;"></div>
 var data = [
 	  { label: '一般',data : 20,color: '#c23531' },
      { label: '预警',data : 20,color: '#2e4454' },
      { label: '告警',data : 20,color: '#61a0a8' },
      { label: '事故',data : 20,color: '#d48265' },
      { label: '其他',data : 20,color: '#91c7ae' }
 ]
$.plot('#pieChart',data,{
	series: {
		pie: {
			show:true,
			offset:{top:0,left:0},
			stroke:{width:0},
			highlight:{opacity:0.5}
		}
	},
	grid:{
	  hoverable: true,
      clickable: true
	}
})

结果

在这里插入图片描述
可以参考这篇文章

Echarts

画图表有它就行了,没什么是满足不了的。
今天记录用它画中国地图,各个省份的航线图。
上代码:

<div class="box-map" style="width:100%;height:100%;">
	<div id="china-map" style="max-width:800px;min-height:600px;"></div>
</div>
//获取上下文
 var oneChart = echarts.init(document.getElementById('china-map'));
 //定义各个省的坐标--网上有,找我也行
 var geoCoordMap = {'新疆': [86.61 , 40.79],'西藏':[89.13 , 30.66],.....}
 //定义航线,案例有两条航线(北京到上海,北京到其他)
 var BJData = [[{name:'北京'}, {name:'新疆',value:100}],[{name:'北京'}, {name:'西藏',value:100}],.....];
 var SHData = [[{name:'北京'}, {name:'上海',value:100}],];
 //这是自定义的航线动态图标,可选,网上下载
 var planePath = '';
 //处理数据
 var convertData = function (data) {
      var res = [];
      for (var i = 0; i < data.length; i++)
      {
        var dataItem = data[i];
        var fromCoord = geoCoordMap[dataItem[0].name];
        var toCoord = geoCoordMap[dataItem[1].name];
        if (fromCoord && toCoord)
        {
          res.push({
            fromName: dataItem[0].name,
            toName: dataItem[1].name,
            coords: [fromCoord, toCoord],
            value: dataItem[1].value
          });
        }
      }
      return res;
    };
 //航线的颜色
 var color = ['#01e2f7','red'];
 //遍历生成航线,图标
 var series = [];
[ ['北京',BJData],['北京',SHData] ].forEach(function(item,i){
 	series.push(
 		//动态图标
 		{
 			name:item[0],
 			type:'lines',
 			zlevel:1,
 			effect:{
 				show:true,
 				period: 6, //间隔
 				perilLength:0.5,//长度
 				color:color[i],//颜色
 				symbolSize:3 //大小
 			},
 			lineStyle: {       
	          normal: {
	             color: color[i],
	             width: 0,//宽度
	             curveness: 0.2 //曲线弧度
	           }
        	},
        	data: convertData(item[1])
 		},
 		//航线
 		{
	        name: item[0],
	        type: 'lines',
	        zlevel: 2,
	        symbol: ['none', 'arrow'],//箭头样式
	        symbolSize: 10,
	        effect: {
	            //动态飞机箭头
	          show: false,
	          period: 6,
	          trailLength: 0,
	          symbol: planePath,
	          symbolSize: 15
	        },
	        lineStyle: {
	            normal: {
	              color: color[i],
	              width: 1,
	              opacity: 0.6,
	              curveness: 0.2
	            }
	        },
	        data: convertData(item[1])
      	},
      	//地点波浪坐标 散点图
	    {
	        name: item[0],
	        type: 'effectScatter',
	        coordinateSystem: 'geo',
	        zlevel: 2,
	        rippleEffect: {
	            brushType: 'stroke'
	        },
	        label: {
	          normal: {
	            show: true,
	            formatter: '{b}'
	          }
	        },
	        symbolSize: function (val) {
	            return val[2] / 9;
	        },
	        itemStyle: {
	          normal: {
	            color: color[i],
	          },
	          emphasis:
	          {
	            areaColor: 'red'
	          }
	        },
	        data: item[1].map(function (dataItem) {
	          return {
	            name: dataItem[1].name,
	            value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value])
	          };
	        })
	      },
	 )
})

结果
在这里插入图片描述

我是一个爱跪键盘的前端小萌新~~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星海の君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值