一入前端深似海,从此红尘是路人系列第六弹之走进数据可视化

简介: 先上几张关于单个组件配置及页面承载组件的展示效果图吧:

一、开发模式

先上几张关于单个组件配置及页面承载组件的展示效果图吧:





由于整体的开发模式是由MVC模式为主进行的开发,所以先简单给小伙伴们介绍一下MVC模式吧

MVC 模式的英文名称是 Model-View-Controller pattern,顾名思义,其主要部分为:
•模型(Model),整个模式中的数据层;
•视图(View),模式中的数据展示层;
•控制器(Controller),处理并响应事件,监控模型变化,继而修改视图。

接下来我将以一个双饼图组件为例子,带着小伙伴们一起走进主流的数据可视化开发。

二、开发核心

1、组件接口封装


var _MYCHART_;  // 全局echart绘图对象
;(function($,doc,win){
var EC = function(obj,config){
  this.obj = obj;
  this.setting = {};
  $.extend(this.setting,config);
  // 初始化
  this.init(this.setting);
};
EC.prototype = {
  echarts : function(options){
    // 环境依赖配置
    require.config({
      paths:{ 
        'echarts' : './js/echarts'
      }
    });
    require([
      'echarts'
    ],function(ec) {
      _MYCHART_ = ec.init(document.getElementById(options.echartObj));
      _MYCHART_.setOption(options.option);
    }); 
  }
};
EC.prototype.init = function(options){
  this.echarts(options);
}
window.EC = EC;
})(jQuery,document,window);

2、数据层的抽离

大家知道echarts或者用过的,都应该知道下面这个代码是echarts对可视化组件做的一个数据层的抽离控制


var option = {
  title : {
    text: '组件配置',
    subtext: '作者:qiangdada',
    x:'center',
    y:0,
    textStyle:{
      fontSize:16,
      show:false
    },
    subtextStyle:{
      fontSize:13
    }
  },
  tooltip: {
    trigger: 'item',
    formatter: "{a} <br/>{b} : {c} ({d}%)"
  },
  legend: {
    show: true,
    orient: 'vertical',
    x: 10,
    y: 0,
    data: ['直接访问', '邮件营销', '联盟广告'],
    textStyle: {
      color: 'auto',
      fontSize: 13
    },
  },
  series: [
    {
      name: '访问来源',
      type: 'pie',
      center: ['50%', '50%'],
      radius: ['30%', '45%'],
      itemStyle: {
        normal: {
          label: {
            formatter: "{b}" + " : " + "{c} ( {d}% )",
          },
          labelLine: {
            show: true
          }
        }
      },
      data: [
        {
          value: 335,
          name: '直接访问'
        },
        {
          value: 310,
          name: '邮件营销'
        },
        {
          value: 234,
          name: '联盟广告'
        }
      ]
    }
  ]
}

3、可视化组件的展示

这里很简单,只需要简单的new一个EC对象就可以进行展示了


new EC($('body'),{
  echartObj:'echarts', // 组件绘图对象
  option:option   // 组件绘图数据
});

三、组件的展示

这里只需要页面中有一个拥有宽高的盒子便可以承载echarts组件,从而进行展示,这里为了方便我就先把样式写在标签吧。


<div id="echarts" style="width: 500px;height: 400px;"></div>

这3步走完正常的页面展示如下:
没错,组件已经可以展示了。接下来的配置展示步骤,包括代码都比较繁琐。这里我就不详细说明了,到时候我会将这个demo托管github,个人github地址为https://github.com/xuqiang521。大家可以关注一下我博客或者我github,到时托管代码上去后我也会再写一些博客对其配置做一个详细的讲解。

最后,如果小伙伴们喜欢的话,请推荐支持一把,也给我一点后期写作一点动力。

原文发布时间为:2016年10月16日
原文作者:qiangdada 

本文来源:开源中国 如需转载请联系原作者

目录
相关文章
|
数据可视化 前端开发 JavaScript
前端之【数据可视化】
前端之【数据可视化】
145 0
|
7月前
|
数据可视化 前端开发 JavaScript
前端框架与库-D3.js数据可视化基础
【7月更文挑战第21天】D3.js是Web开发中创建动态、交互图表的利器,适用于从基础条形图到复杂地理热力图的广泛需求。核心概念涉及数据绑定至DOM,支持动态更新。初学者常遇难题包括不当数据绑定、选择器误用、过渡动画过量及坐标轴配置失误。避免策略需善用`.data()`, `.enter().append()`, `.exit().remove()`管理数据,熟知选择器差异,适度应用`.transition()`, 并精准设定坐标轴。示例条形图代码展示了数据绑定至`&lt;rect&gt;`元素的过程,奠定基础,助你进阶复杂项目。
171 4
|
Web App开发 数据可视化 前端开发
前端数据可视化插件(四)关系图
前端数据可视化插件(四)关系图
前端数据可视化插件(四)关系图
|
9月前
|
数据可视化 前端开发 数据挖掘
探索数据可视化在前端开发中的应用
本文将深入探讨数据可视化在前端开发中的重要性和应用场景,介绍常用的数据可视化工具和技术,并结合实际案例展示如何利用数据可视化提升用户体验和数据分析效率。
|
Web App开发 数据可视化 前端开发
前端数据可视化之【Echarts介绍】
前端数据可视化之【Echarts介绍】
205 0
|
前端开发 数据可视化 JavaScript
使用Dash快速构建你的数据可视化前端
使用Dash快速构建你的数据可视化前端
586 0
|
监控 数据可视化 前端开发
前端数据可视化和动态图表库
前端数据可视化和动态图表库
379 0
|
数据可视化 前端开发 JavaScript
前端数据可视化的工具和库
前端数据可视化的工具和库
372 0
|
数据采集 数据可视化 前端开发
漏刻有时数据可视化大屏核心完整版框架PHP后台数据管理 API数据接口 Echarts图表库 自带电脑端和手机端两套模版且支持自定义前端模版开发
漏刻有时数据可视化大屏核心完整版框架PHP后台数据管理 API数据接口 Echarts图表库 自带电脑端和手机端两套模版且支持自定义前端模版开发
236 0
|
前端开发 数据可视化
漏刻有时LOCKDATAV数据可视化大屏Echarts前端UI手机移动版模版
漏刻有时LOCKDATAV数据可视化大屏Echarts前端UI手机移动版模版
96 0

热门文章

最新文章

  • 1
    【Java若依框架】RuoYi-Vue的前端和后端配置步骤和启动步骤
  • 2
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 4
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 5
    详解智能编码在前端研发的创新应用
  • 6
    巧用通义灵码,提升前端研发效率
  • 7
    【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 8
    智能编码在前端研发的创新应用
  • 9
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 10
    抛弃node和vscode,如何用记事本开发出一个完整的vue前端项目