Vue ECharts直角坐标系配置详细讲解

 更新时间:2022年12月15日 15:07:08   作者:爱学习de测试小白  
数据的重要性我们大家都知道,就算再小的项目中都可能使用几个图表展示,我最近在做项目的过程中也是需要用到图表,最后选择了echarts图表库

前言

本篇来学习下直角坐标系的常用配置

直角坐标系

直角坐标系的图表指的是带有x轴和y轴的图表, 常见的直角坐标系的图表有: 柱状图 折线图 散点图

常用配置

网格

grid:是用来控制直角坐标系的布局和大小, x轴和y轴就是在grid的基础上进行绘制的

var option = {
  grid: {
    show: true, // 显示grid
    borderWidth: 10, // grid的边框宽度
    borderColor: 'red', // grid的边框颜色
    left: 100, // grid的位置
    top: 100,
    width: 300, // grid的大小
    height: 150
 }
}

完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>直角坐标系常用配置-grid</title>
    <!-- cdn方式 引入echarts.js文件 -->
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.1/dist/echarts.min.js"></script>
</head>
<body>
<div id='app' style="width: 600px;height:400px"></div>
<script>
    var mCharts = echarts.init(document.getElementById("app"))
    var xDataArr = ['张三', '李四', '王五', '闰土', '小明', '茅台']
    var yDataArr = [88, 92, 63, 77, 94, 80]
    var option = {
        grid: { // 坐标轴容器
            show: true, // 是否可见
            borderWidth: 3, // 边框的宽度
            borderColor: 'green', // 边框的颜色
            left: 100, // 边框的位置 左边距
            top: 120,   // 顶部距离
            width: 500, // 边框宽度
            height: 250 // 边框高度
        },
        xAxis: {
            type: 'category',
            data: xDataArr
        },
        yAxis: {
            type: 'value'
        },
        series: [
            {
                name: '语文',
                type: 'bar',
                markPoint: {
                    data: [
                        {
                            type: 'max', name: '最大值'
                        }, {
                            type: 'min', name: '最小值'
                        }
                    ]
                },
                markLine: {
                    data: [
                        {
                            type: 'average', name: '平均值'
                        }
                    ]
                },
                label: {
                    show: true,
                    rotate: 60, // 数值旋转角度
                    position: 'top'  // 顶部显示数值
                },
                barWidth: '30%', // 柱宽度
                data: yDataArr
            }
        ]
    }
    mCharts.setOption(option)
</script>
</body>
</html>

效果

坐标轴

axis:坐标轴分为x轴和y轴, 一个 grid 中最多有两种位置的 x 轴和 y 轴

坐标轴类型 type

  • value : 数值轴, 自动会从目标数据中读取数据
  • category : 类目轴, 该类型必须通过 data 设置类目数据

坐标轴位置

  • xAxis : 可取值为 top 或者 bottom
  • yAxis : 可取值为 left 或者 right
var option = {
  xAxis: {
    type: 'category',
    data: xDataArr,
    position: 'top'
 },
  yAxis: {
    type: 'value',
    position: 'right'
 }
}

完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>直角坐标系常用配置-axis</title>
    <!-- cdn方式 引入echarts.js文件 -->
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.1/dist/echarts.min.js"></script>
</head>
<body>
<div id='app' style="width: 600px;height:400px"></div>
<script>
    var mCharts = echarts.init(document.getElementById("app"))
    var xDataArr = ['张三', '李四', '王五', '闰土', '小明', '茅台']
    var yDataArr = [88, 92, 63, 77, 94, 80]
    var option = {
        grid: {
            show: true,
            borderColor: 'red',
        },
        xAxis: {
            type: 'category',
            data: xDataArr,
            position: 'top' // 控制坐标轴的位置 可取值为  top 或者 bottom
        },
        yAxis: {
            type: 'value',
            position: 'right' // 控制坐标轴的位置  可取值为 left 或者 right
        },
        series: [
            {
                name: '语文',
                type: 'bar',
                markPoint: {
                    data: [
                        {
                            type: 'max', name: '最大值'
                        }, {
                            type: 'min', name: '最小值'
                        }
                    ]
                },
                markLine: {
                    data: [
                        {
                            type: 'average', name: '平均值'
                        }
                    ]
                },
                label: {
                    show: true,
                    rotate: 60,
                    position: 'top'
                },
                barWidth: '30%',
                data: yDataArr
            }
        ]
    }
    mCharts.setOption(option)
</script>
</body>
</html>

效果

区域缩放

dataZoom :用于区域缩放, 对数据范围过滤, x轴和y轴都可以拥有

区域缩放类型 type

  • slider : 滑块
  • inside : 内置, 依靠鼠标滚轮或者双指缩放

产生作用的轴

  • xAxisIndex :设置缩放组件控制的是哪个 x 轴, 一般写0即可
  • yAxisIndex :设置缩放组件控制的是哪个 y 轴, 一般写0即可

指明初始状态的缩放情况

  • start : 数据窗口范围的起始百分比
  • end : 数据窗口范围的结束百分比
var option = {
  xAxis: {
    type: 'category',
    data: xDataArr
 },
  yAxis: {
    type: 'value'
 },
  dataZoom: [
   {
      type: 'slider',
      xAxisIndex: 0
   },
   {
      type: 'slider',
      yAxisIndex: 0,
      start: 0,
      end: 80
   }
 ]
}

完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>直角坐标系常用配置-dateZoom</title>
    <!-- cdn方式 引入echarts.js文件 -->
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.1/dist/echarts.min.js"></script>
</head>
<body>
<div id='app' style="width: 600px;height:400px"></div>
<script>
    var mCharts = echarts.init(document.getElementById("app"))
    var xDataArr = ['张三', '李四', '王五', '闰土', '小明', '茅台']
    var yDataArr = [88, 100, 63, 77, 94, 80]
    var option = {
        dataZoom: [ // 控制区域缩放效果的实现
            {
                type: 'slider', // 缩放的类型  slide代表滑块  inside代表依靠鼠标滚轮
                // type: 'inside'
                xAxisIndex: 0    // 控制的是哪个x轴(多个x轴情况,一般写0即可)
            },
            {
                type: 'slider',
                yAxisIndex: 0,
                start: 0, // 渲染完成后, 数据筛选的初始值, 百分比
                end: 95 // 渲染完成后, 数据筛选的结束值, 百分比
            }
        ],
        toolbox: {
            feature: {
                dataZoom: {}
            }
        },
        grid: {
            show: true,
            borderColor: 'red',
        },
        xAxis: {
            type: 'category',
            data: xDataArr
        },
        yAxis: {
            type: 'value'
        },
        series: [
            {
                name: '语文',
                type: 'bar',
                markPoint: {
                    data: [
                        {
                            type: 'max', name: '最大值'
                        }, {
                            type: 'min', name: '最小值'
                        }
                    ]
                },
                markLine: {
                    data: [
                        {
                            type: 'average', name: '平均值'
                        }
                    ]
                },
                label: {
                    show: true,
                    rotate: 60,
                    position: 'top'
                },
                barWidth: '30%',
                data: yDataArr
            }
        ]
    }
    mCharts.setOption(option)
</script>
</body>
</html>

效果

到此这篇关于Vue ECharts直角坐标系配置详细讲解的文章就介绍到这了,更多相关Vue ECharts内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue高德地图之玩转周边

    vue高德地图之玩转周边

    vue高德地图,带你玩转周边,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • vue中使用vue-cli接入融云实现即时通信

    vue中使用vue-cli接入融云实现即时通信

    这篇文章主要介绍了vue中使用vue-cli接入融云实现即时通信的相关资料,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • vue+vue-fullpage实现整屏滚动页面的示例代码(直播平台源码)

    vue+vue-fullpage实现整屏滚动页面的示例代码(直播平台源码)

    这篇文章主要介绍了vue+vue-fullpage实现整屏滚动页面,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • javascript中Set、Map、WeakSet、WeakMap区别

    javascript中Set、Map、WeakSet、WeakMap区别

    这篇文章主要介绍了javascript中Set、Map、WeakSet、WeakMap区别,需要的朋友可以参考下
    2022-12-12
  • vue如何跳转到其他页面

    vue如何跳转到其他页面

    跳转到指定URL,向history栈添加一个新的纪录,点击后退会返回至上一个页面,这篇文章给大家介绍vue如何跳转到其他页面,包括无参跳转和带参跳转,本文结合实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2023-10-10
  • Vue中slot的使用详解

    Vue中slot的使用详解

    这篇文章主要介绍了Vue中slot的使用详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 详解vue3中setUp和reactive函数的用法

    详解vue3中setUp和reactive函数的用法

    这篇文章主要介绍了vue3函数setUp和reactive函数的相关知识及setup函数和reactive函数的注意点,通过具体代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-06-06
  • Vue中使用this.$set()如何新增数据,更新视图

    Vue中使用this.$set()如何新增数据,更新视图

    这篇文章主要介绍了Vue中使用this.$set()实现新增数据,更新视图方式。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • uniapp组件uni-file-picker中设置使用照相机和相册权限的操作方法

    uniapp组件uni-file-picker中设置使用照相机和相册权限的操作方法

    这篇文章主要介绍了uniapp组件uni-file-picker中设置使用照相机和相册的权限,在uniapp中,我们通常会使用uni-file-picker这个组件,但是这个组件中,有点缺陷,就是没有对这个功能的传值设置,这里就要给组件进行修改了,需要的朋友可以参考下
    2022-11-11
  • vue项目环境搭建

    vue项目环境搭建

    这篇文章介绍了vue项目环境搭建的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04

最新评论