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日

相关文章

  • vscode下vue项目中eslint的使用方法

    下面将详细讲解”VSCode下Vue项目中ESLint的使用方法”。 1. 确认环境安装及配置 在使用 ESLint 前,首先确保环境已经安装: Node.js 安装:前往 Node.js 官网 下载对应版本进行安装。 Vue CLI 安装:使用 npm 全局安装。 npm install -g vue-cli ESLint 安装:使用 npm 全局安装。 …

    JavaScript 2023年6月11日
    00
  • JavaScript常用工具方法封装

    这里是关于“JavaScript常用工具方法封装”的攻略。 基础概念 工具方法 通常所说的工具方法,是指编写的一些辅助性函数或类,用来完成一些具有通用性的操作,比如数据转换、日期格式化、字符串截断等等。 封装方法 封装方法是将一段通用的代码进行抽象,使代码可以在各种场景中共享,提高代码复用性。在 JavaScript 中,我们可以通过函数来封装代码。 常用工…

    JavaScript 2023年6月10日
    00
  • js数组操作方法总结(必看篇)

    那么我将对js数组操作方法总结给出一个详细的攻略。 js数组操作方法总结(必看篇) JavaScript中的数组(Array)是一种特殊的对象,它可以存储任意类型的数据。数组提供了一系列的方法,用于对其进行操作。下面是一些常用的js数组操作方法: 1. 创建数组 用JavaScript创建数组的方法很简单,可以使用中括号[],并用逗号隔开每个元素。示例如下:…

    JavaScript 2023年5月27日
    00
  • javascript实现获取图片大小及图片等比缩放的方法

    以下是详细讲解“javascript实现获取图片大小及图片等比缩放的方法”的完整攻略。 获取图片大小 在JavaScript中,获取图片大小的主要方法是通过HTML5中的Image对象获取。具体步骤如下: 创建Image对象 给Image对象设置图片路径 等待图片加载完成 当图片加载完成后,可以获取到图片的width和height属性,就可以得到图片的大小了…

    JavaScript 2023年5月28日
    00
  • JavaScript实现动画打开半透明提示层的方法

    下面是“JavaScript实现动画打开半透明提示层的方法”的完整攻略。 确定提示层的样式和HTML结构 首先,我们需要确定提示层的样式和HTML结构。提示层一般是一个半透明的背景遮罩,上面有一个包含提示信息的框。 HTML结构可以使用div来实现,样式可以使用CSS来设置,比如: .tip-wrap { position: fixed; top: 0; l…

    JavaScript 2023年6月11日
    00
  • JS中的form.submit()不能提交表单的错误原因

    在JavaScript中,我们可以使用form.submit()方法来提交表单。但有时会发现这种方式并不起效,而导致表单无法成功提交,接下来我将详细讲解JS中的form.submit()不能提交表单的错误原因,包括以下两个方面: 没有对表单元素进行正确的提交操作 使用form.submit()方法时,需要确保表单元素的属性和值都设置正确。如果其中存在错误,则…

    JavaScript 2023年6月10日
    00
  • 基于Next.js实现在线Excel的详细代码

    关于“基于Next.js实现在线Excel的详细代码”的攻略,以下是我可以提供的详细过程: 第一步:安装Next.js 为了实现在线Excel,我们需要安装依赖包Next.js。可以通过npm命令进行安装: npm install next react react-dom 第二步:创建页面 创建一个名为pages/index.js的文件,这将是我们应用程序的…

    JavaScript 2023年6月11日
    00
  • js实现导航栏上下动画效果

    JS实现导航栏上下动画效果攻略 1. 确定导航栏样式 首先,我们需要确定导航栏的样式,通常包括容器样式、菜单样式和链接样式。可以使用CSS给导航栏添加样式。 .navbar { background-color: #fff; color: #333; display: flex; justify-content: space-between; align-i…

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