ECharts transform数据转换和dataZoom在项目中使用

ECharts transform数据转换和dataZoom在项目中使用是数据可视化中非常重要的一部分,本文将会从以下几个方面来进行讲解:

  1. transform数据转换的基本概念及使用方法
  2. 示例说明transform数据转换的用法
  3. dataZoom使用方法及示例

1. transform数据转换的基本概念及使用方法

在ECharts中,数据转换是一种通过对数据进行计算、过滤和补全等操作,从而得到需要展示的数据形式的技术手段。而使用transform进行数据转换的方法,可以帮助我们完成更加复杂的数据展示效果。

option = {
    xAxis: {},
    yAxis: {},
    series: {
        type: 'line',
        encode: {
            x: 'date',
            y: 'open',
            tooltip: ['open', 'close', 'lowest', 'highest']
        },
        dataset: {
        source: [
                {date: '2022/1/1', open: 100, close: 130, lowest: 80, highest: 134},
                {date: '2022/1/2', open: 120, close: 150, lowest: 90, highest: 154},
                {date: '2022/1/3', open: 140, close: 170, lowest: 110, highest: 173},
                {date: '2022/1/4', open: 110, close: 140, lowest: 70, highest: 148},
                {date: '2022/1/5', open: 130, close: 165, lowest: 105, highest: 170},
                {date: '2022/1/6', open: 150, close: 190, lowest: 110, highest: 195}
            ]
        },
        transform: {
            type: 'filter',
            config: {
                and: [
                    {dimension: 'date', '>=': '2022/1/2'},
                    {dimension: 'date', '<=': '2022/1/5'}
                ]
            }
        }
    }
};

以上是ECharts官网提供的基本数据转换代码示例,使用transform进行数据转换,过滤掉不需要的数据。

transform具体参数含义:

  • type:表示数据转换的类型,如:filter、sort、aggregate等。
  • config:表示数据转换所需的配置信息。

2. 示例说明transform数据转换的用法

我们可以通过下面的示例演示数据转换的几种用法。

option = {
    xAxis: {},
    yAxis: {},
    series: {
        type: 'line',
        encode: {
            x: 'date',
            y: 'price'
        },
        dataset: {
            source: [
                {date: '1月1日', price: 128},
                {date: '1月2日', price: 132},
                {date: '1月3日', price: 151},
                {date: '1月4日', price: 122},
                {date: '1月5日', price: 152},
                {date: '1月6日', price: 163},
                {date: '1月7日', price: 159},
                {date: '1月8日', price: 128},
                {date: '1月9日', price: 114},
                {date: '1月10日', price: 139},
                {date: '1月11日', price: 178},
                {date: '1月12日', price: 162},
                {date: '1月13日', price: 145},
                {date: '1月14日', price: 123},
                {date: '1月15日', price: 137},
                {date: '1月16日', price: 142},
                {date: '1月17日', price: 128},
                {date: '1月18日', price: 157},
                {date: '1月19日', price: 168},
                {date: '1月20日', price: 155}
            ]
        },
        transform: {
            type: 'filter',
            config: {
                dimension: 'price',
                '>': 140
            }
        }
    }
};

以上示例使用了filter(过滤)的transform数据转换方法,在数据集中过滤出价格大于140的数据进行展示。

下面再给出一个transform数据转换的操作示例:

option = {
    xAxis: {},
    yAxis: {},
    series: {
        type: 'line',
        encode: {
            x: 'date',
            y: 'price'
        },
        dataset: {
            source: [
                {date: '1月1日', price: {value: 128, label: '偏高'}},
                {date: '1月2日', price: {value: 132, label: '正常'}},
                {date: '1月3日', price: {value: 151, label: '正常'}},
                {date: '1月4日', price: {value: 122, label: '偏低'}},
                {date: '1月5日', price: {value: 152, label: '正常'}},
                {date: '1月6日', price: {value: 163, label: '偏高'}},
                {date: '1月7日', price: {value: 159, label: '偏高'}},
                {date: '1月8日', price: {value: 128, label: '偏高'}},
                {date: '1月9日', price: {value: 114, label: '偏低'}},
                {date: '1月10日', price: {value: 139, label: '正常'}},
                {date: '1月11日', price: {value: 178, label: '偏高'}},
                {date: '1月12日', price: {value: 162, label: '正常'}},
                {date: '1月13日', price: {value: 145, label: '正常'}},
                {date: '1月14日', price: {value: 123, label: '偏低'}},
                {date: '1月15日', price: {value: 137, label: '正常'}},
                {date: '1月16日', price: {value: 142, label: '正常'}},
                {date: '1月17日', price: {value: 128, label: '偏高'}},
                {date: '1月18日', price: {value: 157, label: '正常'}},
                {date: '1月19日', price: {value: 168, label: '偏高'}},
                {date: '1月20日', price: {value: 155, label: '正常'}}
            ]
        },
        transform: {
            type: 'map',
            config: {
                from: 'price',
                to: 'price.value'
            }
        }
    }
};

以上示例使用了map(映射)方法,将二级结构体中的数据映射到一级结构体中的一个新属性中,方便后续的数据使用和展示。

3. dataZoom使用方法及示例

dataZoom是ECharts中展示和处理大量数据时非常有用的一种功能,可以通过缩放来展示某个区间内的数据,这对于大量数据展示非常有用。

option = {
    xAxis: {
        type: 'category',
        boundaryGap: false,
        data: [
            '1月1日', '1月2日', '1月3日', '1月4日', '1月5日',
            '1月6日', '1月7日', '1月8日', '1月9日', '1月10日',
            '1月11日', '1月12日', '1月13日', '1月14日', '1月15日',
            '1月16日', '1月17日', '1月18日', '1月19日', '1月20日'
        ]
    },
    yAxis: {},
    series: {
        type: 'line',
        encode: {
            x: 'date',
            y: 'price'
        },
        dataset: {
            source: [
                {date: '1月1日', price: {value: 128, label: '偏高'}},
                {date: '1月2日', price: {value: 132, label: '正常'}},
                {date: '1月3日', price: {value: 151, label: '正常'}},
                {date: '1月4日', price: {value: 122, label: '偏低'}},
                {date: '1月5日', price: {value: 152, label: '正常'}},
                {date: '1月6日', price: {value: 163, label: '偏高'}},
                {date: '1月7日', price: {value: 159, label: '偏高'}},
                {date: '1月8日', price: {value: 128, label: '偏高'}},
                {date: '1月9日', price: {value: 114, label: '偏低'}},
                {date: '1月10日', price: {value: 139, label: '正常'}},
                {date: '1月11日', price: {value: 178, label: '偏高'}},
                {date: '1月12日', price: {value: 162, label: '正常'}},
                {date: '1月13日', price: {value: 145, label: '正常'}},
                {date: '1月14日', price: {value: 123, label: '偏低'}},
                {date: '1月15日', price: {value: 137, label: '正常'}},
                {date: '1月16日', price: {value: 142, label: '正常'}},
                {date: '1月17日', price: {value: 128, label: '偏高'}},
                {date: '1月18日', price: {value: 157, label: '正常'}},
                {date: '1月19日', price: {value: 168, label: '偏高'}},
                {date: '1月20日', price: {value: 155, label: '正常'}}
            ]
        },
        dataZoom: {
            type: 'slider',
            orient: 'vertical',
            start: 0,
            end: 100
        }
    }
};

以上代码示例,使用dataZoom中的slider类型,展示了下方图表区间内的所有数据,并提供了缩放功能,可以通过拖动滑块来缩放展示区间。

另一个dataZoom示例:

option = {
    xAxis: {
        type: 'category',
        boundaryGap: false,
        data: [
            '1月1日', '1月2日', '1月3日', '1月4日', '1月5日',
            '1月6日', '1月7日', '1月8日', '1月9日', '1月10日',
            '1月11日', '1月12日', '1月13日', '1月14日', '1月15日',
            '1月16日', '1月17日', '1月18日', '1月19日', '1月20日'
        ]
    },
    yAxis: {},
    series: {
        type: 'line',
        encode: {
            x: 'date',
            y: 'price'
        },
        dataset: {
            source: [
                {date: '1月1日', price: 128},
                {date: '1月2日', price: 132},
                {date: '1月3日', price: 151},
                {date: '1月4日', price: 122},
                {date: '1月5日', price: 152},
                {date: '1月6日', price: 163},
                {date: '1月7日', price: 159},
                {date: '1月8日', price: 128},
                {date: '1月9日', price: 114},
                {date: '1月10日', price: 139},
                {date: '1月11日', price: 178},
                {date: '1月12日', price: 162},
                {date: '1月13日', price: 145},
                {date: '1月14日', price: 123},
                {date: '1月15日', price: 137},
                {date: '1月16日', price: 142},
                {date: '1月17日', price: 128},
                {date: '1月18日', price: 157},
                {date: '1月19日', price: 168},
                {date: '1月20日', price: 155}
            ]
        },
        dataZoom: [{
            type: 'inside',
            start: 0,
            end: 100
        }, {
            start: 0,
            end: 100,
            top: '90%',
            type: 'slider',
            labelFormatter: '{value}%'
        }]
    }
};

以上代码示例,使用了ECharts中的两个数据缩放工具,一个是内置的inside,另一个是slider,用于缩放展示区间,并显示缩放比例。其中slider工具的位置并不在上下边缘,而是独立在下方,并配以特定样式。

以上就是ECharts transform数据转换和dataZoom在项目中使用的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ECharts transform数据转换和dataZoom在项目中使用 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • Vue.js仿微信聊天窗口展示组件功能

    Vue.js仿微信聊天窗口展示组件功能的完整攻略如下: 一、背景说明 在网页端实现类似微信聊天窗口展示的组件功能是很常见的需求,在Vue.js中可以通过简单的组件开发实现。以下是具体的实现过程。 二、技术栈要求 在实现过程中,需要用到以下技术栈: Vue.js:前端MVVM框架 webpack:模块打包工具 Sass:CSS预处理器 三、基础页面结构 首先需…

    JavaScript 2023年6月10日
    00
  • js格式化输入框内金额、银行卡号

    下面将详细讲解如何使用JavaScript实现格式化输入框内金额、银行卡号的功能。 格式化输入框内金额 在实现格式化输入框内金额的功能中,一般遵循以下步骤: 给输入框绑定keyup或input事件,监听输入框内的值。 在事件回调函数中获取输入框内的值,并将其进行格式化处理。 根据处理后的值,更新输入框内的内容。 下面是一个代码示例: <input id…

    JavaScript 2023年6月11日
    00
  • javascript 对象比较实现代码

    如果要实现JavaScript对象的比较,可以使用比较运算符==和===来比较两个对象(当然,也可以使用Object.is()方法进行比较)。但是,如果是比较两个具有同样键名和键值对的对象时,这些运算符和方法都不能完成任务。因为这些运算符和方法只能比较变量存储的是对象引用,而不是对象自身。因此,我们需要使用自定义函数来比较两个对象的每个键名和键值对是否相等。…

    JavaScript 2023年5月27日
    00
  • JS中的六种继承方式以及优缺点总结

    下面是详细讲解“JS中的六种继承方式以及优缺点总结”的完整攻略。 JS中的六种继承方式 在JS中,继承是OO的一个重要的概念,通过继承可以实现代码的重用和封装性,JS中有六种继承方式,分别是: 1.原型链继承 原型链继承是JS中最常见的一种继承方式,它是利用原型对象来实现的,将子类的原型指向父类的实例,从而实现子类继承父类的方法和属性。 function P…

    JavaScript 2023年5月27日
    00
  • HTML5 History API 实现无刷新跳转

    HTML5 History API 是HTML5新增的一个API,通过该API可以更好地管理浏览器的历史记录和URL,实现无刷新跳转。 下面是HTML5 History API 实现无刷新跳转的具体步骤: 步骤一:改变URL,更新浏览器历史记录 使用HTML5 History API,可以通过调用window.history.pushState()方法来改变…

    JavaScript 2023年6月11日
    00
  • JavaScript中String.prototype用法实例

    那我就来给大家详细讲解一下“JavaScript中String.prototype用法实例”。 什么是String.prototype? String.prototype是JavaScript中String对象的原型属性,它包含了一些用于处理字符串的方法。可以理解为,String.prototype是所有字符串对象的“祖先”,它定义了所有字符串对象所共有的方…

    JavaScript 2023年5月28日
    00
  • JavaScript极简入门教程(二):对象和函数

    当你在学习JavaScript时,你会发现对象和函数是JavaScript中最重要的两个概念。对象和函数的概念是面向对象编程(OOP)的核心。本文将为你提供一个JavaScript对象和函数的极简入门教程。 什么是JavaScript对象? 在JavaScript中,对象是一种数据类型,用于存储多个值并描述其特征。对象可以是大型的或小型的,简单的或复杂的。对…

    JavaScript 2023年5月18日
    00
  • JS面向对象编程——ES6 中class的继承用法详解

    JS面向对象编程——ES6 中class的继承用法详解 1. ES6中的class ES6中引入了class关键字,使得JS中的面向对象编程更为易用和易读。class语法基于原型继承实现,更加直观和易于理解,在编写复杂程序时更为方便。 下面是一个class的示例代码: class Person { constructor(name, age) { this.…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部