ECharts框架分段视觉映射在移动端适配

目录
  • 移动端适配
  • 数据和维度
  • 分段视觉映射组件
  • 事件和行为

移动端适配

满足多个查询时的优先级: 请注意,可以同时满足多个查询,并且它们都将由mergeOption合并,mergeOption稍后由merge定义(即更高的优先级)。 默认查询: 如果媒体中有一项不写入查询,则表示“默认值”。也就是说,如果不符合所有规则,则采用此选项。 容器尺寸实时变化时的注意事项:

在许多情况下,不需要通过拖动任意改变容器DOM节点的大小,而是根据不同的终端设置几个典型的大小。 但是,如果容器DOM节点需要能够通过拖动任意更改其大小,那么在当前使用它时应该注意这一点:如果配置项出现在查询选项中,那么它也必须出现在其他查询选项中。否则,它无法返回到原始状态。(左/右/上/下/宽/高不受此限制。)

   {
        query: {
            maxWidth: 500               // 当容器宽度小于 500 时。
        },
        option: {
            legend: {
                right: 10,              // legend 放置在右侧中间。
                top: '15%',
                orient: 'vertical'      // 纵向布局。
            },
            series: [                   // 两个饼图上下布局。
                {
                    radius: [20, '50%'],
                    center: ['50%', '30%']
                },
                {
                    radius: [30, '50%'],
                    center: ['50%', '75%']
                }
            ]
        }
    },
    ...
]

复合选项中的媒体不支持合并 也就是说,当设置了setOption(rawOption)时,如果rawOption是一个复合选项(包括媒体列表),则新的rawOption媒体列表不会与旧媒体列表合并,而是简单地替换。当然,baseOption通常仍会与旧选项合并。 事实上,很少有场景需要使用“复合选项”多次设置该选项。我们建议的做法是,在使用mediaQuery时,对第一个setOption使用“复合选项”,而对后面的setOption只使用“原子选项”,也就是说,只使用setOption更改baseOption。

{
    minWidth: 200,
    maxHeight: 300,
    minAspectRatio: 1.3
}

现在支持三个属性:width、height和aspectRatio。每个属性的前缀都可以是min或max。例如,minWidth:200表示“大于或等于200px宽度”。这两个属性写在一起表示“和”。例如,{minWidth:200,maxHeight:300}表示“宽度大于或等于200px,高度小于或等于300px”。 选项: 由于媒体中的选项是原子选项,理论上,可以编写任何选项配置项。但通常情况下,我们只写布局定位,例如拦截上面示例中的一些查询选项:

option = {
    // 这里是基本的『原子option』。
    title: {...},
    legend: {...},
    series: [{...}, {...}, ...],
    ...,
    media: [ //
        {
            query: {...},   // 这里写规则。
            option: {       // 这里写此规则满足下的option。
                legend: {...},
                ...
            }
        },
        {
            query: {...},   // 第二个规则。
            option: {       // 第二个规则对应的option。
                legend: {...},
                ...
            }
        },
        {                   //
            option: {       //
                legend: {...},
                ...
            }
        }
    ]
};

这里定义了 media query 的逐条规则。这条里没有写规则,表示『默认』,即所有规则都不满足时,采纳这个option。

数据和维度

ECharts中的数据通常存储在系列数据中。根据图表的类型,数据的具体形式可能略有不同。例如,它可以是线性表、树或图形。但它们都有一个共同点:它们是“数据项”的集合。每个数据项包含“值”和其他信息(如有必要)。每个数据值可以是单个数值(一维)或数组(多维)。 例如,series最常见的数据形式是“线性表”,即常见的数组: 这里每一个项就是数据项(dataItem),这是数据项的数据值(value)

series: {
    data: [
        {
            value: 2323, //
            itemStyle: {...}
        },
        1212,   //
        2323,   //
        4343,
        3434
    ]
}

也可以直接是 dataItem 的 value,这更常见。每个 value 都是『一维』的。

分段视觉映射组件

分段视觉映射组件(visualMapPiecewise)有三种模式: 连续数据的平均分割:根据visualMap Peerswise SplitNumber自动平均分割成几个块。 连续数据的自定义分割:根据visualMap Piecewise Pieces定义每个块的范围。 离散数据(分类数据):类别在visualMap pricewise Categories中定义。 可视化映射模式的配置 由于这是“数据”到“视觉元素”的映射,因此可以在visualMap中指定数据的“哪个维度”(参见visualMap.dimension),以映射到哪个“视觉元素“(参见visualMap.inRange和visualMap.outOfRange)。

option = {
    visualMap: [
        {
            type: 'piecewise',
            min: 0,
            max: 5000,
            dimension: 3,
            seriesIndex: 4,
            inRange: {
                color: ['blue', '#121122', 'red'],
                symbolSize: [30, 100]
            },
            outOfRange: {       // 选中范围外的视觉配置
                symbolSize: [30, 100]
            }
        },
        ...
    ]
};

series.data 的第四个维度(即 value[3])被映射,series.data 的第四个维度(即 value[3])被映射。

事件和行为

myChart.on('click', function (params) {
    console.log(params.name);
});

在ECharts中,事件可以分为两种类型:一种是用户用鼠标单击时触发的事件,或者是悬停图表的图形;另一种是用户使用可以交互的组件后触发的行为事件,例如切换图例开关时触发的“legendseletchanged”事件(请注意,切换图例开关不会触发“legendselect tchchanged”事件),缩放数据区域时触发的”datazoom“事件。

myChart.on('click', function (params) {
    if (params.componentType === 'markPoint') {
        if (params.seriesIndex === 5) {
        }
    }
    else if (params.componentType === 'series') {
        if (params.seriesType === 'graph') {
            if (params.dataType === 'edge') {
            }
            else {
            }
        }
    }
});

点击到了 markPoint 上,点击到了 index 为 5 的 series 的 markPoint 上。点击到了 graph 的 edge(边)上。点击到了 graph 的 node(节点)上。在ECharts中,几乎所有的组件交互都会触发相应的事件。事件文档中列出了常见事件和事件对应参数。

以上就是ECharts框架分段视觉映射在移动端适配的详细内容,更多关于ECharts分段视觉映射的资料请关注我们其它相关文章!

(0)

相关推荐

  • echarts图形x、y坐标文字设置间隔显示及相关问题详解

    目录 x横坐标文字设置间隔显示 y纵坐标文字设置间隔显示 补充:Echarts柱状图x轴刻度间隔显示不全/刻度间隔全部显示-xaxis 1.在xAxis : [{}]中加入axisLabel 2.如果还是显示不全,可以再添加rotate 总结 x横坐标文字设置间隔显示 以 echarts 示例里面的 这个折线图为列,当数据比较少时,X轴的类目文字(横坐标)可以完全显示 修改左侧的option内容,在xAxis的data数组中再添加两行内容,同时,在series中添加对应数量的值,运行后,可以看到

  • 关于ECharts图表显示颜色修改方式

    目录 ECharts图表显示颜色修改 需求 解决方案 ECharts更改各种颜色大全 总结 ECharts图表显示颜色修改 需求 改变Echarts引入图表的显示颜色 解决方案 通过查询Echarts配置手册,color设置色板颜色列表. 如果系列没有设置颜色,则会依次循环从该列表中取颜色作为系列颜色. 默认的颜色列表如下: ['#c23531','#2f4554', '#61a0a8', '#d48265', '#91c7ae','#749f83', '#ca8622', '#bda29a',

  • vue3+Echarts页面加载不渲染显示空白页面的解决

    目录 vue3 Echarts页面加载不渲染显示空白页面 个人认为造成这个问题的原因 解决这个问题的方法 vue Echarts白屏或等一会才出现 原因 解决方法 vue3 Echarts页面加载不渲染显示空白页面 在父组件获取到数据后传递给子组件并没有及时的更新渲染图表. 在本地开发环境是没有一点问题,但发布到测试环境上每次页面加载都不渲染,点击浏览器刷新按钮后才会去渲染图表. 个人认为造成这个问题的原因 页面加载子组件dom元素此时还没有加载完成,所以看到的就是空白,只有刷新一下才可以. 解

  • echarts交互组件与数据的视觉映射

    交互组件 ECharts 提供了很多交互组件:例组件 legend.标题组件 title.视觉映射组件 visualMap.数据区域缩放组件 dataZoom.时间线组件 timeline. 接下来的内容我们将介绍如何使用数据区域缩放组件 dataZoom. dataZoom dataZoom 组件可以实现通过鼠标滚轮滚动,放大缩小图表的功能. 默认情况下 dataZoom 控制 x 轴,即对 x 轴进行数据窗口缩放和数据窗口平移操作. option = { xAxis: { type: 'va

  • mybatis框架的xml映射文件常用查询指南

    使用mybatis框架时,那必然会有对数据库的查询语句的编写,所以这篇文章希望可以帮助到你. 什么是Mybatis框架? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录. 如何使用?

  • 解决vue移动端适配问题

    1,先看看网上关于移动端适配讲解 再聊移动端页面适配,rem和vw适配方案! 基础点:rem相对根节点字体的大小.所以不用px; 根字体:字体的大小px; px:你就当成cm(厘米)这样的东西吧: 基准:750设计稿: 这是方案的基础理论,在这个基础上,我们还要搞明白,到底要干一件什么事情! 目标一.手机适配:就是页面上的尺寸,无论高度,还是宽度,还有字体,随屏幕的宽度变化!这里是屏幕宽度!是不是想到了vw,对,就是这个意思:--最大程度在各个尺寸屏幕上还原设计稿 目标二.px转换成rem:一般

  • Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)

    今天,我们使用Vue CLI3 做一个移动端适配 . 前言 首先确定你的项目是Vue CLI3版本以上的. 一.移动端适配包 1.安装移动端适配包 npm i lib-flexible -S 2.在 main.js 引入适配包 import Vue from 'vue' import App from './App.vue' import 'lib-flexible' // 引入适配包 Vue.config.productionTip = false new Vue({ render: h =>

  • webpack的移动端适配方案小结

    目录 rem vw 适配第三方UI框架 结语 在移动端开发的过程中,一个最常见的问题就是适配不同的屏幕宽度.目前比较常见的适配方案有rem和vw,它们都是css中的相对单位. rem W3C对rem的定义是 font-size of the root element,它是一个只相对于浏览器的根元素(HTML元素)的font-size的来确定的单位,也就是说对于不同宽度的机型,我们只需要计算出对应的根元素的字体大小,用同样的css代码可以实现等比适配.考虑最简单的情况: html代码片段 //移动

  • vue项目中使用lib-flexible解决移动端适配的问题解决

    第一部分:项目中引入lib-flexible 一.项目中安装lib-flexible $ npm install lib-flexible --save 二.在项目的入口js文件中引入lib-flexible import 'lib-flexible' 通过要以上两步,就完成了在vue项目使用lib-flexible来解决移动端适配了. lib-flexible会自动在html的head中添加一个meta name="viewport"的标签,同时会自动设置html的font-size

  • vue做移动端适配最佳解决方案(亲测有效)

    vw 解决方案 1. 安装并配置PostCss插件 复制代码 代码如下: npm i postcss-aspect-ratio-mini postcss-px-to-viewport postcss-write-svg postcss-cssnext postcss-viewport-units cssnano --S 2. 对 PostCss 进行配置 找到在根目录中的.postcssrc.js,对PostCSS插件进行配置 module.exports = { "plugins":

  • JS实现点击拉拽轮播图pc端移动端适配

    <div class="content"> <button class="left">left</button> <button class="right">right</button> <div class="index"></div> <div class="lists"> <!--<!–widt

  • vue自定义指令实现元素滑动移动端适配及边界处理

    目录 效果演示 核心属性 实现思路 代码 注意 自定义指令this指向问题 滑动后点击事件被触发 移动端滑动问题 效果演示 核心属性 Element.clientWidth:元素可视宽度. Element.clientHeight:元素可视高度. MouseEvent.clientX:鼠标相对于浏览器左上顶点的水平坐标. MouseEvent.clientY:鼠标相对于浏览器左上顶点的垂直坐标. Touch.clientX:触点相对于浏览器左上顶点的水平坐标(移动端属性). Touch.clie

  • 关于应用UI组件的移动端适配方式

    目录 问题1 问题2 1.安装lib-flexible 2.在项目的入口引入lib-flexible 3.安装postcss-px2rem-exclude 4.配置postcss.config.js 在移动端开发应用UI组件也会遇到一系列需要注意的问题. 问题1 比如说,标签页是一个整体的组件,但是我们需要将标签页的标题和其他组件一起固定到顶部就要将标签页标题分离出来,这时候我们可以自己写一个样式在将标题分离 具体的代码: // 组件 <van-sticky>      <van-nav

随机推荐