树图的基础用法

首先我们先定义一些书数据,用作数图的数据

var data = {
    "name": "flare",
    "children": [
        {
            "name": "data",
            "children": [
                {
                    "name": "converters",
                    "children": [
                        {"name": "Converters", "value": 721},
                        {"name": "DelimitedTextConverter", "value": 4294}
                    ]
                },
                {
                    "name": "DataUtil",
                    "value": 3322
                }
            ]
        },
        {
            "name": "display",
            "children": [
                {"name": "DirtySprite", "value": 8833},
                {"name": "LineSprite", "value": 1732},
                {"name": "RectSprite", "value": 3623}
            ]
        },
        {
            "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": "x_x", "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表示父节点的名称,children表示子节点的数据,value表示当前节点的数据。下面我们看一下树图的具体用法,

var option = {
            //提示框组件
            //trigger:触发类型。item:数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用
            //triggerOn:提示框触发的条件,mousemove——鼠标移动时触发
            tooltip: {
                trigger: 'item',
                triggerOn: 'mousemove'
            },

            series: [{
                //type:当值为tree表示树图
                type: 'tree',
                id: 0,
                name: 'tree1',
                data: [data],
                //top、left、bottom、right用于定位tree组件离容器四侧的距离
                top: '10%',
                left: '8%',
                bottom: '22%',
                right: '20%',
                //标记的大小
                symbolSize: 7,
                //树图的布局,有 正交 和 径向 两种。orthogonal表示正交布局(垂直和水平方向)
                layout: 'orthogonal',
                //树图在正交布局下的形状。分别有曲线和折线两种,对应的取值是 curve 和 polyline
                edgeShape: 'polyline',
                //树图中正交布局的方向
                orient: 'LR',
                //分叉点与子树父节点的距离占整个子树高度的百分比.
                edgeForkPosition: '100%',
                //树图初始展开的层级(深度)。根节点是第 0 层,然后是第 1 层、第 2 层
                initialTreeDepth: 3,
                //定义了树图边的样式
                lineStyle: {
                    width: 2
                },
                //描述了每个节点所对应的文本标签的样式
                label: {
                    backgroundColor: '#fff',
                    position: 'left',
                    verticalAlign: 'middle',
                    align: 'right'
                },
                //叶子节点的特殊配置
                //什么叫叶子节点,没有后续子节点的节点叫叶子节点
                leaves: {
                    label: {
                        position: 'right',
                        verticalAlign: 'middle',
                        align: 'left',
                        color: 'red'
                    }
                },
                //子树折叠和展开的交互,默认打开
                expandAndCollapse: true,
                //初始动画的时长
                animationDuration: 550,
            }]
        };
        myChart.setOption(option);

倒金字塔图 python 倒金字塔图片高清_echarts

在上述实例中,我们用到了tooltip组件和series组件。

  1. series组件
  • type:当type属性的值为tree表示当前图表是树图
  • top、left、bottom、right:用于定位图表离容器四侧的距离
  • symbolSize:定义节点的标记大小
  • layout:用于定义树图的布局。树图的布局有正交和径向两种。orthogonal表示正交布局(垂直和水平方向)。径向布局(radial)是指以根节点为圆心,每一层节点为环,一层层向外发散绘制而成的布局
  • edgeShape:树图在正交布局下的形状。分别有曲线和折线两种,对应的取值是 curve 和 polyline
  • orient:树图中正交布局的方向。有LR、RL、TB、BT四个属性值,分别表示从左到右,从右到左,从上到下,从下到上。
  • edgeForkPosition:分叉点与子树父节点的距离占整个子树高度的百分比,默认为50%
  • initialTreeDepth:树图初始展开的层级(深度)。根节点是第 0 层,然后是第 1 层、第 2 层
  • label:描述了每个节点所对应的文本标签的样式
  • leaves:叶子节点的特殊配置。叶子节点表示的是没有后续子节点
  • expandAndCollapse:子树折叠和展开的交互,默认打开
  1. tooltip组件
  • trigger:触发类型。item:数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用
  • triggerOn:提示框触发的条件,mousemove——鼠标移动时触发,click——鼠标点击时触发,mousemove|click——同时鼠标移动和点击时触发

漏斗图的基础用法

漏斗图类似一个金字塔(正倒金字塔),下列为漏斗图的具体实例:

var myChart = echarts.init(document.getElementById('main'));
        var option = {
            //标题组件
            //text:主标题文本
            //subtext:副标题文本
            title: {
                text: '漏斗图',
                subtext: '纯属虚构'
            },
            //图例组件
            tooltip: {
                trigger: 'item',
                formatter: "{a} <br/>{b} : {c}%"
            },
            //工具栏组件
            toolbox: {
                //工具栏各工具配置项
                feature: {
                    //数据视图工具,可以展现当前图表所用的数据,编辑后可以动态更新
                    dataView: {
                        readOnly: false
                    },
                    //配置项还原
                    restore: {},
                    //保存为图片
                    saveAsImage: {}
                }
            },
            //图例组件
            legend: {
                data: ['展现', '点击', '访问', '咨询', '订单']
            },

            series: [{
                name: '漏斗图',
                //type:当type的值为funnel时,表示一个漏斗图表
                type: 'funnel',
                left: '10%',
                top: 60,
                bottom: 60,
                width: '80%',
                //指定的数据最小值和最大值
                min: 0,
                max: 100,
                //数据最小值 min 映射的宽度和数据最大值 max 映射的宽度。
                minSize: '0%',
                maxSize: '100%',
                //数据排序,漏斗图的数据排序
                sort: 'ascending',
                //数据图形间距
                gap: 2,
                //漏斗图图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等
                //position:定义标签的位置。inside表示在标签内部
                label: {
                    show: true,
                    position: 'inside',
                    color: 'red'
                },
                //标签的视觉引导线样式,在 label 位置 设置为'left'或者'right'的时候会显示视觉引导线
                labelLine: {
                    length: 100,
                    lineStyle: {
                        width: 1,
                        type: 'dotted'
                    }
                },
                //漏斗图每一层的图形样式
                itemStyle: {
                    borderColor: '#fff',
                    borderWidth: 1
                },
                //当鼠标移入时高亮的标签和图形样式
                emphasis: {
                    label: {
                        fontSize: 20
                    }
                },
                //传入数据
                data: [{
                    value: 60,
                    name: '访问'
                }, {
                    value: 40,
                    name: '咨询'
                }, {
                    value: 20,
                    name: '订单'
                }, {
                    value: 80,
                    name: '点击'
                }, {
                    value: 100,
                    name: '展现'
                }]
            }]
        };

        myChart.setOption(option);

倒金字塔图 python 倒金字塔图片高清_javascript_02


其中用到title标题组件、tooltip提示框组件、toolbox工具栏组件、legend图例组件、series组件。

  1. title组件
  • text:用于设置主标题文本;subtext:用于设置副标题文本
  • target:可以指定窗口打开主标题超链接;subtarget:可以指定窗口打开副标题超链接。可选参数:‘self’ 当前窗口打开、‘blank’ 新窗口打开
  • link:可以用于主标题文本超链接;sublink:可以用于副标题文本超链接
  1. toolbox工具栏组件
  • feature:工具栏各工具配置。给工具栏添加选项。可选选项有saveAsImage——将当前图表保存为图片、restore——还原配置项、dataView——数据视图工具,可以展现当前图表所用的数据,编辑后可以动态更新、dataZoom——数据区域缩放。目前只支持直角坐标系的缩放、magicType——图表类型切换、brush——选框组件的控制按钮(和选框组件一起连用)
  1. series组件
  • type:当type的值为funnel时,表示一个漏斗图表
  • min、max:指定的数据最小值和最大值
  • minSize、maxSize:数据最小值 min 映射的宽度和数据最大值 max 映射的宽度。
  • sort:数据排序,漏斗图的数据排序。控制漏斗图是正还是倒着的金字塔,可选属性有ascending(正)、descending(倒)、none(按照数据顺序)
  • gap:数据图形间距
  • label:漏斗图图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等
  • position:定义标签的位置。left、right、top、bottom表示在漏斗图四侧,inside表示在标签内部,insideRight、insideLeft、leftTop、leftBottom、rightTop、rightBottom分别表示在漏斗图梯形内部右侧、左侧、上部、下部、右侧上部、右侧下部
  • labelLine:标签的视觉引导线样式,在 label 位置 设置为’left’或者’right’的时候会显示视觉引导线
  • itemStyle:漏斗图每一层的图形样式
  • emphasis:当鼠标移入时高亮的标签和图形样式