• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Echarts迁徙图图片实现

武飞扬头像
琛琛881
帮助1

最近工作中遇见一些小问题,Echarts实现迁徙图效果,而网上寻找时并没有找到非常合适的案例,大都是基于geo加上js或者json文件实现的,对于初学者而言代码量太大,看到最后也没看懂到底是怎样实现的,所以基于这几天踩得坑给出一个简单案例,也帮助大家少走弯路。

就是这样的效果。

学新通

首先是前端代码

  1.  
    <!DOCTYPE html>
  2.  
    <html>
  3.  
    <head>
  4.  
    <meta charset="utf-8">
  5.  
    <title>迁徙图</title>
  6.  
    <script src="js/echarts.js"></script>
  7.  
    <script src="js/jquery-1.12.4.min.js"></script>
  8.  
    <script src="js/qianxitu.js"></script>
  9.  
    </head>
  10.  
    <body>
  11.  
    //给出容器,用于echart绑定
  12.  
    <div id="main" style="width: 720px;height: 520px;"></div>
  13.  
    </body>
  14.  
    </html>

然后是js代码

  1.  
    $(function(){
  2.  
    var option={
  3.  
    xAxis: {
  4.  
    type: 'value',
  5.  
    show: false,
  6.  
    max:30,
  7.  
    },
  8.  
    yAxis: {
  9.  
    type: 'value',
  10.  
    show: false,
  11.  
    max:10,
  12.  
    },
  13.  
     
  14.  
    series:[
  15.  
    {
  16.  
    type: 'lines',
  17.  
    //这里是选择布局方式,网上大多数都是geo配合js或者json文件,我这里写的是2d
  18.  
    //坐标形式,可能我形容得不太标准,但是相对比较好理解
  19.  
    coordinateSystem: 'cartesian2d',
  20.  
     
  21.  
    //然后是所在层数,如果学过ps的会很好理解,就是图层的意思
  22.  
    zlevel: -1,
  23.  
    effect: {
  24.  
    symbol: 'arrow',
  25.  
    show: true,
  26.  
    period: 3, // 箭头指向速度,值越小速度越快
  27.  
    trailLength: 0.1, // 特效尾迹长度[0,1]值越大,尾迹越长重
  28.  
    symbolSize: 10, // 图标大小
  29.  
    },
  30.  
    lineStyle: {
  31.  
    normal: {
  32.  
    color: '#609fd4'
  33.  
    }
  34.  
    },
  35.  
    data: [
  36.  
    {
  37.  
    coords: [
  38.  
    [6, 6],
  39.  
    [15, 7],
  40.  
    ],lineStyle:{
  41.  
    // Echarts在js中有些配置要写在normal: {}这个方法体内,
  42.  
    // 不写的话不出效果,如果在前端直接写的话不需要,
  43.  
    // 具体原因我也不太清楚
  44.  
    normal: {
  45.  
    opacity: 0.1, // 线的透明度-设置为0,隐藏线条
  46.  
    curveness: 0.3, // 曲线的弯曲程度
  47.  
    color: '#609fd4'
  48.  
    },
  49.  
     
  50.  
    }
  51.  
    },
  52.  
    {
  53.  
    coords: [
  54.  
    [11, 2],
  55.  
    [15, 7],
  56.  
    ],lineStyle:{
  57.  
    normal: {
  58.  
    opacity: 0.1, // 线的透明度-设置为0,隐藏线条
  59.  
    curveness: 0.3, // 曲线的弯曲程度 ,
  60.  
    color: '#4fb6d2',
  61.  
    },
  62.  
    }
  63.  
    },
  64.  
    {
  65.  
    coords: [
  66.  
    [8, 3],
  67.  
    [15, 7],
  68.  
    ],lineStyle:{
  69.  
    normal: {
  70.  
    opacity: 0.1, // 线的透明度-设置为0,隐藏线条
  71.  
    curveness: 0.3, // 曲线的弯曲程度 ,
  72.  
    color: '#4ab2e5',
  73.  
    },
  74.  
     
  75.  
    }
  76.  
    },
  77.  
    {
  78.  
    coords: [
  79.  
    [22, 8],
  80.  
    [15, 7],
  81.  
    ],lineStyle:{
  82.  
    normal: {
  83.  
    opacity: 0.1, // 线的透明度-设置为0,隐藏线条
  84.  
    curveness: -0.3, // 曲线的弯曲程度 ,多段线不支持弯曲
  85.  
    color: '#52b9c7',
  86.  
    },
  87.  
    }
  88.  
    }
  89.  
    ]
  90.  
    },
  91.  
    { // 这里必须有scatter,至少有一个点,路径图才会跑起来
  92.  
    type: 'effectScatter',
  93.  
    zlevel: 2,
  94.  
    symbolSize: 20,
  95.  
    rippleEffect: { //涟漪特效
  96.  
    normal: {
  97.  
    period: 4, //动画时间,值越小速度越快
  98.  
    brushType: 'stroke', //波纹绘制方式 stroke, fill
  99.  
    scale: 4 //波纹圆环最大限制,值越大波纹越大
  100.  
    }
  101.  
    },
  102.  
    label: {
  103.  
    normal: {
  104.  
    show: true,
  105.  
    position: 'inside',
  106.  
    //在圆环中添加显示的文字,从下方data中获取
  107.  
    //在前端写的话就是 formatter:'{@[2]}'的写法
  108.  
    formatter: function(params){
  109.  
    return params.data[2];
  110.  
    },
  111.  
    }
  112.  
    },
  113.  
    data: [
  114.  
    [22, 8,'A'],
  115.  
    [8, 3,'B'],
  116.  
    [11, 2,'C'],
  117.  
    [6, 6,'D'],
  118.  
    [15, 7,'A'],
  119.  
    ],
  120.  
    },
  121.  
    ],
  122.  
    graphic:{
  123.  
    elements:[{
  124.  
    type: "image",
  125.  
    zlevel: -3,
  126.  
    z: 3,
  127.  
    style: {
  128.  
    //添加自己的背景图
  129.  
    image: ./img/ditu.png',
  130.  
    width: 800,
  131.  
    height: 525,
  132.  
    },
  133.  
    top: 20,
  134.  
    left: 0,
  135.  
    scale: [1, 1]
  136.  
    }]
  137.  
    },
  138.  
    };
  139.  
    //绑定前端页面提供的容器
  140.  
    var eCharts = echarts.init($("#main")[0]);
  141.  
    //调用我们上面的配置
  142.  
    eCharts.setOption(option);
  143.  
    })
  144.  
     
学新通

写的可能不是很好,但是相比那些又臭又长看半天还看不懂的还是比较好接受的,希望对大家可以有一些帮助

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhiageff
系列文章
更多 icon
同类精品
更多 icon
继续加载