Echarts 实现树状图的展示与编辑示例

简介: Echarts 实现树状图的展示与编辑示例

示例效果图如下:

43bb0773b33f4d059034ecd877a015ec.png


当前示例的数据加载的是静态json文件 。

当鼠标移动到节点上时,会有节点描叙信息提示框。

038d6c36a93e4c3c89ca0777685dea59.png


当在节点处右键时,会弹出右键编辑菜单,效果如下图:

c9f5a54a911e42339d9a52030380d334.png


当鼠标单击节点以外区域时,会隐藏右键编辑菜单。

接下来直接上源码。

首先是静态JSON数据文件:

flare.json 文件内容如下:

{
 "name": "根节点",
 "describes":"这个是一级根节点",
 "children":[
  {
   "name": "二级节点(analytics)",
   "describes":"这个是二级子节点",
   "children": [
    {
     "name": "cluster",
     "children": [
      {"name": "AgglomerativeCluster", "value": 3938},
      {"name": "CommunityStructure", "value": 3812},
      {"name": "HierarchicalCluster", "value": 6714},
      {"name": "MergeEdge", "value": 743}
     ]
    },
    {
     "name": "graph",
     "children": [
      {"name": "BetweennessCentrality", "value": 3534},
      {"name": "LinkDistance", "value": 5731},
      {"name": "MaxFlowMinCut", "value": 7840},
      {"name": "ShortestPaths", "value": 5914},
      {"name": "SpanningTree", "value": 3416}
     ]
    },
    {
     "name": "optimization",
     "children": [
      {"name": "AspectRatioBanker", "value": 7074}
     ]
    }
   ]
  },
  {
   "name": "animate",
   "children": [
    {"name": "Easing", "value": 17010},
    {"name": "FunctionSequence", "value": 5842},
    {
     "name": "interpolate",
     "children": [
      {"name": "ArrayInterpolator", "value": 1983},
      {"name": "ColorInterpolator", "value": 2047},
      {"name": "DateInterpolator", "value": 1375},
      {"name": "Interpolator", "value": 8746},
      {"name": "MatrixInterpolator", "value": 2202},
      {"name": "NumberInterpolator", "value": 1382},
      {"name": "ObjectInterpolator", "value": 1629},
      {"name": "PointInterpolator", "value": 1675},
      {"name": "RectangleInterpolator", "value": 2042}
     ]
    },
    {"name": "ISchedulable", "value": 1041},
    {"name": "Parallel", "value": 5176},
    {"name": "Pause", "value": 449},
    {"name": "Scheduler", "value": 5593},
    {"name": "Sequence", "value": 5534},
    {"name": "Transition", "value": 9201},
    {"name": "Transitioner", "value": 19975},
    {"name": "TransitionEvent", "value": 1116},
    {"name": "Tween", "value": 6006}
   ]
  },
  {
   "name": "data",
   "children": [
    {
     "name": "converters",
     "children": [
      {"name": "Converters", "value": 721},
      {"name": "DelimitedTextConverter", "value": 4294},
      {"name": "GraphMLConverter", "value": 9800},
      {"name": "IDataConverter", "value": 1314},
      {"name": "JSONConverter", "value": 2220}
     ]
    },
    {"name": "DataField", "value": 1759},
    {"name": "DataSchema", "value": 2165},
    {"name": "DataSet", "value": 586},
    {"name": "DataSource", "value": 3331},
    {"name": "DataTable", "value": 772},
    {"name": "DataUtil", "value": 3322}
   ]
  },
  {
   "name": "display",
   "children": [
    {"name": "DirtySprite", "value": 8833},
    {"name": "LineSprite", "value": 1732},
    {"name": "RectSprite", "value": 3623},
    {"name": "TextSprite", "value": 10066}
   ]
  },
  {
   "name": "flex",
   "children": [
    {"name": "FlareVis", "value": 4116}
   ]
  },
  {
   "name": "query",
   "children": [
    {"name": "AggregateExpression", "value": 1616},
    {"name": "And", "value": 1027},
    {"name": "Arithmetic", "value": 3891},
    {"name": "Average", "value": 891},
    {"name": "BinaryExpression", "value": 2893},
    {"name": "Comparison", "value": 5103},
    {"name": "CompositeExpression", "value": 3677},
    {"name": "Count", "value": 781},
    {"name": "DateUtil", "value": 4141},
    {"name": "Distinct", "value": 933},
    {"name": "Expression", "value": 5130},
    {"name": "ExpressionIterator", "value": 3617},
    {"name": "Fn", "value": 3240},
    {"name": "If", "value": 2732},
    {"name": "IsA", "value": 2039},
    {"name": "Literal", "value": 1214},
    {"name": "Match", "value": 3748},
    {"name": "Maximum", "value": 843},
    {
     "name": "methods",
     "children": [
      {"name": "add", "value": 593},
      {"name": "and", "value": 330},
      {"name": "average", "value": 287},
      {"name": "count", "value": 277},
      {"name": "distinct", "value": 292},
      {"name": "div", "value": 595},
      {"name": "eq", "value": 594},
      {"name": "fn", "value": 460},
      {"name": "gt", "value": 603},
      {"name": "gte", "value": 625},
      {"name": "iff", "value": 748},
      {"name": "isa", "value": 461},
      {"name": "lt", "value": 597},
      {"name": "lte", "value": 619},
      {"name": "max", "value": 283},
      {"name": "min", "value": 283},
      {"name": "mod", "value": 591},
      {"name": "mul", "value": 603},
      {"name": "neq", "value": 599},
      {"name": "not", "value": 386},
      {"name": "or", "value": 323},
      {"name": "orderby", "value": 307},
      {"name": "range", "value": 772},
      {"name": "select", "value": 296},
      {"name": "stddev", "value": 363},
      {"name": "sub", "value": 600},
      {"name": "sum", "value": 280},
      {"name": "update", "value": 307},
      {"name": "variance", "value": 335},
      {"name": "where", "value": 299},
      {"name": "xor", "value": 354},
      {"name": "-", "value": 264}
     ]
    },
    {"name": "Minimum", "value": 843},
    {"name": "Not", "value": 1554},
    {"name": "Or", "value": 970},
    {"name": "Query", "value": 13896},
    {"name": "Range", "value": 1594},
    {"name": "StringUtil", "value": 4130},
    {"name": "Sum", "value": 791},
    {"name": "Variable", "value": 1124},
    {"name": "Variance", "value": 1876},
    {"name": "Xor", "value": 1101}
   ]
  },
  {
   "name": "scale",
   "children": [
    {"name": "IScaleMap", "value": 2105},
    {"name": "LinearScale", "value": 1316},
    {"name": "LogScale", "value": 3151},
    {"name": "OrdinalScale", "value": 3770},
    {"name": "QuantileScale", "value": 2435},
    {"name": "QuantitativeScale", "value": 4839},
    {"name": "RootScale", "value": 1756},
    {"name": "Scale", "value": 4268},
    {"name": "ScaleType", "value": 1821},
    {"name": "TimeScale", "value": 5833}
   ]
  },
  {
   "name": "util",
   "children": [
    {"name": "Arrays", "value": 8258},
    {"name": "Colors", "value": 10001},
    {"name": "Dates", "value": 8217},
    {"name": "Displays", "value": 12555},
    {"name": "Filter", "value": 2324},
    {"name": "Geometry", "value": 10993},
    {
     "name": "heap",
     "children": [
      {"name": "FibonacciHeap", "value": 9354},
      {"name": "HeapNode", "value": 1233}
     ]
    },
    {"name": "IEvaluable", "value": 335},
    {"name": "IPredicate", "value": 383},
    {"name": "IValueProxy", "value": 874},
    {
     "name": "math",
     "children": [
      {"name": "DenseMatrix", "value": 3165},
      {"name": "IMatrix", "value": 2815},
      {"name": "SparseMatrix", "value": 3366}
     ]
    },
    {"name": "Maths", "value": 17705},
    {"name": "Orientation", "value": 1486},
    {
     "name": "palette",
     "children": [
      {"name": "ColorPalette", "value": 6367},
      {"name": "Palette", "value": 1229},
      {"name": "ShapePalette", "value": 2059},
      {"name": "SizePalette", "value": 2291}
     ]
    },
    {"name": "Property", "value": 5559},
    {"name": "Shapes", "value": 19118},
    {"name": "Sort", "value": 6887},
    {"name": "Stats", "value": 6557},
    {"name": "Strings", "value": 22026}
   ]
  },
  {
   "name": "vis",
   "children": [
    {
     "name": "axis",
     "children": [
      {"name": "Axes", "value": 1302},
      {"name": "Axis", "value": 24593},
      {"name": "AxisGridLine", "value": 652},
      {"name": "AxisLabel", "value": 636},
      {"name": "CartesianAxes", "value": 6703}
     ]
    },
    {
     "name": "controls",
     "children": [
      {"name": "AnchorControl", "value": 2138},
      {"name": "ClickControl", "value": 3824},
      {"name": "Control", "value": 1353},
      {"name": "ControlList", "value": 4665},
      {"name": "DragControl", "value": 2649},
      {"name": "ExpandControl", "value": 2832},
      {"name": "HoverControl", "value": 4896},
      {"name": "IControl", "value": 763},
      {"name": "PanZoomControl", "value": 5222},
      {"name": "SelectionControl", "value": 7862},
      {"name": "TooltipControl", "value": 8435}
     ]
    },
    {
     "name": "data",
     "children": [
      {"name": "Data", "value": 20544},
      {"name": "DataList", "value": 19788},
      {"name": "DataSprite", "value": 10349},
      {"name": "EdgeSprite", "value": 3301},
      {"name": "NodeSprite", "value": 19382},
      {
       "name": "render",
       "children": [
        {"name": "ArrowType", "value": 698},
        {"name": "EdgeRenderer", "value": 5569},
        {"name": "IRenderer", "value": 353},
        {"name": "ShapeRenderer", "value": 2247}
       ]
      },
      {"name": "ScaleBinding", "value": 11275},
      {"name": "Tree", "value": 7147},
      {"name": "TreeBuilder", "value": 9930}
     ]
    },
    {
     "name": "events",
     "children": [
      {"name": "DataEvent", "value": 2313},
      {"name": "SelectionEvent", "value": 1880},
      {"name": "TooltipEvent", "value": 1701},
      {"name": "VisualizationEvent", "value": 1117}
     ]
    },
    {
     "name": "legend",
     "children": [
      {"name": "Legend", "value": 20859},
      {"name": "LegendItem", "value": 4614},
      {"name": "LegendRange", "value": 10530}
     ]
    },
    {
     "name": "operator",
     "children": [
      {
       "name": "distortion",
       "children": [
        {"name": "BifocalDistortion", "value": 4461},
        {"name": "Distortion", "value": 6314},
        {"name": "FisheyeDistortion", "value": 3444}
       ]
      },
      {
       "name": "encoder",
       "children": [
        {"name": "ColorEncoder", "value": 3179},
        {"name": "Encoder", "value": 4060},
        {"name": "PropertyEncoder", "value": 4138},
        {"name": "ShapeEncoder", "value": 1690},
        {"name": "SizeEncoder", "value": 1830}
       ]
      },
      {
       "name": "filter",
       "children": [
        {"name": "FisheyeTreeFilter", "value": 5219},
        {"name": "GraphDistanceFilter", "value": 3165},
        {"name": "VisibilityFilter", "value": 3509}
       ]
      },
      {"name": "IOperator", "value": 1286},
      {
       "name": "label",
       "children": [
        {"name": "Labeler", "value": 9956},
        {"name": "RadialLabeler", "value": 3899},
        {"name": "StackedAreaLabeler", "value": 3202}
       ]
      },
      {
       "name": "layout",
       "children": [
        {"name": "AxisLayout", "value": 6725},
        {"name": "BundledEdgeRouter", "value": 3727},
        {"name": "CircleLayout", "value": 9317},
        {"name": "CirclePackingLayout", "value": 12003},
        {"name": "DendrogramLayout", "value": 4853},
        {"name": "ForceDirectedLayout", "value": 8411},
        {"name": "IcicleTreeLayout", "value": 4864},
        {"name": "IndentedTreeLayout", "value": 3174},
        {"name": "Layout", "value": 7881},
        {"name": "NodeLinkTreeLayout", "value": 12870},
        {"name": "PieLayout", "value": 2728},
        {"name": "RadialTreeLayout", "value": 12348},
        {"name": "RandomLayout", "value": 870},
        {"name": "StackedAreaLayout", "value": 9121},
        {"name": "TreeMapLayout", "value": 9191}
       ]
      },
      {"name": "Operator", "value": 2490},
      {"name": "OperatorList", "value": 5248},
      {"name": "OperatorSequence", "value": 4190},
      {"name": "OperatorSwitch", "value": 2581},
      {"name": "SortOperator", "value": 2023}
     ]
    },
    {"name": "Visualization", "value": 16540}
   ]
  }
 ]
}

重要的页面html文件,echart_demo.html

<!DOCTYPE html>
<html>
<head>
        <title>Echarts 树形图示例</title>
        <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport' />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <link href='../../assets/stylesheets/bootstrap/bootstrap.css' media='all' rel='stylesheet' type='text/css' />
        <style>
            *{padding: 0;margin: 0;}
            .menu{
                /*这个样式不写,右键弹框会一直显示在画布的左下角*/
                position: absolute;
                background: #ffff;
                border-radius: 5px;
                left: -99999px;
                top: -999999px;
                z-index:1;
            }
            .menu ul{list-style: none}
            .menu ul li{
                padding: 5px 10px;
                color: #228EFB;
                border-bottom: 1px dashed #228EFB;
                font-size: 17px;
            }
            .menu ul li:last-child{
                border-bottom: none;
            }
        </style>
    </head>
    <body class='contrast-blue'>
        <div id='wrapper'>
            <section id='content'>
                <div class="nav-part">
                    <div class="cur-position risk">
                        树模型>>编辑
                    </div>
                </div>
                <div class="container-fluid">
                    <div class="querycontext">
                    </div>
                </div>
                <div class="tree-container">
                    <div id="main" style="width:100%;height:1000px;"></div>
                </div>
            </section>
        </div>
        <!--右键弹出菜单-->
        <div id="rightMenu" class="menu" style="display:none;">
            <ul>
                <li onclick="editModelNode()">编辑节点</li>
                <li onclick="addModelNode()">增加子节点</li>
                <li onclick="deleteModelNode('1')">删除当前节点</li>
                <li onclick="deleteModelNode('2')">删除子节点</li>
            </ul>
        </div>
    </body>
    <script src='https://cdn.bootcss.com/jquery/1.11.1/jquery.min.js' type='text/javascript'></script>
    <script src='https://cdn.staticfile.org/echarts/5.1.0/echarts.js' type='text/javascript'></script>
    <script type="text/javascript">
    var chartDom = document.getElementById('main');
    var myChart = echarts.init(chartDom, 'dark');//
    var option;
    //flare.json是静态JSON文件,为了测试所用,实际应用时替换为接口返回的数据
    //注意:json数据格式中子节点的key名必须为children
     myChart.showLoading();//echarts自带的Loading遮罩方法
     $.getJSON('flare.json', {}, function (data) {
         myChart.hideLoading();
         data.collapsed=false;
        data.children.forEach(function (datum, index) {
            datum.collapsed = true
         });
         option={
                tooltip: {
                    show:true,
                    trigger: 'item',
                    triggerOn: 'mousemove',
                    position:"bottom",
                    textStyle:{
                        color:"#228EFB",
                        fontSize:17
                    },
                    extraCssText:'width:300px;white-space:pre-wrap;',
                    formatter:function(params, ticket, callback){
                        var tsxx=params.data.describes==""||params.data.describes==null?params.data.name:params.data.describes;
                        return tsxx;
                    }
                },
                 series: [
                         {
                             type: 'tree',
                             data: [data],
                             top: 'middle',
                             left: 'center',
//                             bottom: '1%',
//                             right: '15%',
                             symbolSize: 15,
                             itemStyle:{
                                 color: '#228EFB' ,
                             },
                             lineStyle:{
                                 color: '#DDD',
                             },
                             label: {
                                 color: "#FFF",
                                 position: 'left',
                                 verticalAlign: 'middle',
                                 align: 'right',
                                 fontSize: 18
                             },
                             leaves: {
                                 label: {
                                     position: 'right',
                                     verticalAlign: 'middle',
                                     align: 'left'
                                 }
                             },
                             emphasis: {
                                 focus: 'descendant'
                             },
                             edgeForkPosition: "72%",
                             roam : true,//鼠标缩放,拖拽整颗树
                             expandAndCollapse: true,
                             animationDuration: 550,
                             animationDurationUpdate: 750
                         }
                     ]
                 };
             myChart.setOption(option);
     }, 'json');
    //新增或者修改节点后,调用后台保存或更新数据
    function submitForm(){
                //请求成功后
                var flag=true;//模拟请求接口返回成功
                if(flag){
                    alert(resData.msg);
                    data=resData.result[0];
                    if(czlx=="addRoot"){
                        $("#modelRootId").val(data.id);//根节点
                    }
                    data.collapsed=false;
                    data.children.forEach(function (datum, index) {
                        datum.collapsed = true
                     });
                     option={
                             tooltip: {
                                 show:true,
                                 trigger: 'item',
                                 triggerOn: 'mousemove',
                                 position:"bottom",
                                 textStyle:{
                                     color:"#228EFB",
                                     fontSize:17
                                 },
                                 extraCssText:'width:300px;white-space:pre-wrap;',
                                 formatter:function(params, ticket, callback){
                                     var tsxx=params.data.describes==""||params.data.describes==null?params.data.name:params.data.describes;
                                     return tsxx;
                                 }
                             },
                             series: [
                                 {
                                     type: 'tree',
                                     data: [data],
                                        top: 'middle',
                                     left: 'center',
//                                     bottom: '1%',
//                                     right: '15%',
                                     symbolSize: 15,
                                     itemStyle:{
                                         color: '#228EFB' ,
                                     },
                                     lineStyle:{
                                         color: '#DDD',
                                     },
                                     label: {
                                         color: "#FFF",
                                         position: 'left',
                                         verticalAlign: 'middle',
                                         align: 'right',
                                         fontSize: 18
                                     },
                                     leaves: {
                                         label: {
                                             position: 'right',
                                             verticalAlign: 'middle',
                                             align: 'left'
                                         }
                                     },
                                     emphasis: {
                                         focus: 'descendant'
                                     },
                                     edgeForkPosition: "72%",
                                     roam:true,//鼠标缩放,拖拽整颗树
                                     expandAndCollapse: true,
                                     animationDuration: 550,
                                     animationDurationUpdate: 750
                                 }
                             ]
                         };
                     var sfEdit=true;//是否为新增或修改
                     if(sfEdit){
                         myChart.clear();
                         $('.tree-container').click();
                     }
                     myChart.setOption(option);
                }
    }
    myChart.on("click", this.treeNodeclick);
//     节点点击事件
    function treeNodeclick(param){
        /* true 代表点击的是圆点
           fasle 表示点击的是当前节点的文本
        */
        if(param.event.target.culling === true){
            if (typeof param.seriesIndex == 'undefined') {
                return;
            }
            if (param.type == 'click') {
                if (!param.data.hasChild) {
                     if(param.data.collapsed == undefined || param.data.collapsed == true){
                         console.log("未定义或者是未展开,下次即将展开");
                         param.data.collapsed=false;
                     }else{
                        console.log("下次不展开");
                         param.data.collapsed=true;
                     }
                     return;
                }
            }
            return ;
        } else if(param.event.target.culling === false){
//             let args = param.data; //当前节点及其子节点的值
//             let level = param.data.level; //当前节点的层级 eg:"1-1-0",可以通过level判断当前的层级,从而进行不同的操作
// //             this.textNodeclick(args,level);
        }
    }
     /**
     * 鼠标右键,弹出右键操作菜单
     */
    $("#main").bind("contextmenu", function () { return false; });//防止默认菜单弹出(查看图像,图像另存为等)
    var gloab_param=null;
    myChart.on("contextmenu", function(params){
        gloab_param=params;
        $('#rightMenu').css({
            'display': 'block',
            'left': params.event.offsetX+15,//此处根据自己实际情况调整右键操作菜单显示位置
            'top' : params.event.offsetY -110
        });
    });
    /**
     * 点击画布的时候隐藏右键菜单
     */
    $('.tree-container').click(function () {
        $('#rightMenu').css({
            'display': 'none',
            'left': '-9999px',
            'top': '-9999px'
        });
    });
    //编辑节点
    function editModelNode(){
        //editData为编辑的当前节点数据Obj
        var editData=gloab_param.data;
    }
    //添加子节点
    function addModelNode(){
        console.log("新增");
    }
    //删除当前节点
    function deleteModelNode(deleteType){
        var ts="删除当前节点后,当前节点下所有子节点也会被删除,确定要删除当前节点吗?";
        if(window.confirm(ts)){
            //此处请求后台删除节点数据
            var flag=true;//模拟请求成功,重新渲染整个树
             if(flag){
                  var data=resData.result[0];
                data.collapsed=false;
                data.children.forEach(function (datum, index) {
                    datum.collapsed = true
                });
                option={
                    tooltip: {
                         show:true,
                         trigger: 'item',
                         triggerOn: 'mousemove',
                         position:"bottom",
                         textStyle:{
                               color:"#228EFB",
                               fontSize:17
                         },
                         extraCssText:'width:300px;white-space:pre-wrap;',
                             formatter:function(params, ticket, callback){
                            var tsxx=params.data.describes==""||params.data.describes==null?params.data.name:params.data.describes;
                             return tsxx;
                             }
                         },
                         series: [
                                         {
                                             type: 'tree',
                                             data: [data],
                                             top: 'middle',
                                             left: 'center',
//                                              bottom: '1%',
//                                              right: '15%',
                                             symbolSize: 15,
                                             itemStyle:{
                                                 color: '#228EFB' ,
                                             },
                                             lineStyle:{
                                                 color: '#DDD',
                                             },
                                             label: {
                                                 color: "#FFF",
                                                 position: 'left',
                                                 verticalAlign: 'middle',
                                                 align: 'right',
                                                 fontSize: 18
                                             },
                                             leaves: {
                                                 label: {
                                                     position: 'right',
                                                     verticalAlign: 'middle',
                                                     align: 'left'
                                                 }
                                             },
                                             emphasis: {
                                                 focus: 'descendant'
                                             },
                                             edgeForkPosition: "72%",
                                             roam:true,//鼠标缩放,拖拽整颗树
                                             expandAndCollapse: true,
                                             animationDuration: 550,
                                             animationDurationUpdate: 750
                                         }
                                     ]
                     };
                    myChart.clear();
                    $('.tree-container').click();
                     myChart.setOption(option);
                  }else{//数据已经清空了,页面reload
                      window.location.reload();
                  }
        }
    }
    //根据指定key的值删除对应的对象
    function removeByValue(arr, attrKey, attrValue){ 
     var index=0;
     for(var i in arr){
       if(arr[i][attrKey]==attrValue){
         index=i;
         break;
       }
     }
     arr.splice(index,1);
    }
    </script>
</html>

如果需要更详细的使用支持,可以私信咨询小编或者评论区留言,小编会在第一时间及时回复。

感觉对您有所帮助的话,还请帮小编点赞收藏加关注哦。

相关文章
echarts 仪表盘三分钟上手及属性修改示例
echarts 仪表盘三分钟上手及属性修改示例
154 0
31Echarts - 柱状图(特性示例:渐变色 阴影 点击缩放)
31Echarts - 柱状图(特性示例:渐变色 阴影 点击缩放)
106 0
|
22天前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
47 1
|
18天前
|
JavaScript
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
108 0
|
2月前
|
Web App开发 数据可视化 前端开发
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
本文介绍了ECharts的基本使用和语法格式,包括如何引入ECharts、创建容器、初始化echarts实例对象、配置option参数和一些基础图表的绘制方法。文章还提供了简单图表绘制和使用图例添加的示例代码,以及对ECharts特性和优势的概述。
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
|
3月前
|
小程序 JavaScript
微信小程序使用echarts图表(ec-canvas)
这篇文章介绍了在微信小程序中使用`ec-canvas`集成echarts图表的方法,包括解决加载时报错的问题、配置图表组件、以及在小程序页面中引入和使用这些图表组件的步骤。
428 1
微信小程序使用echarts图表(ec-canvas)
|
3月前
|
前端开发 数据可视化 JavaScript
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
|
3月前
|
XML SQL JavaScript
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
这篇文章介绍了如何在Vue页面中结合SpringBoot、MyBatis、ElementUI和ECharts,实现从数据库获取数据并展示为图表的过程,包括前端和后端的代码实现以及遇到的问题和解决方法。
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
|
3月前
Echarts——如何默认选中图表并显示tooltip
Echarts——如何默认选中图表并显示tooltip
54 1