Echarts基础学习笔记

ECharts是一个使用 JavaScript 实现的开源可视化库,提供了丰富的图表类型和交互能力,使用户能够通过简单的配置生成各种各样的图表。

官方文档还是比较详细的,但是掌握好ECharts自定义样式还是挺复杂的。

VUE中的简单使用

安装Echarts

npm install echarts --save

项目中使用

使用了官方文档的例子

<template>
  <div class="Echarts">
    <div id="main" style="width: 800px;height:400px;"></div>
  </div>
</template>

<script>
import echarts from 'echarts';
export default {
  name: 'Echarts',
  methods:{
	  myEcharts(){
		  // 基于准备好的dom,初始化echarts实例
		  var myChart = this.$echarts.init(document.getElementById('main'));
		  // 指定图表的配置项和数据
		  var option = {
			  title: {
				  text: 'ECharts 入门示例'
			  },
			  tooltip: {},
			  legend: {
				  data:['销量']
			  },
			  xAxis: {
				  data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
			  },
			  yAxis: {},
			  series: [{
				  name: '销量',
				  type: 'bar',
				  data: [5, 20, 36, 10, 10, 20]
			  }]
		  };
		  // 使用刚指定的配置项和数据显示图表。
		  myChart.setOption(option);
		  }
  },
  mounted() {
  	this.myEcharts();
  }
}
</script>

在这里插入图片描述

概念

系列

系列(series)是指:一组数值映射成对应的图 【一个系列对应一张图,series中的一个子项对应一张图。】
在这里插入图片描述

数据集

ECharts 4 开始支持了 数据集(dataset)组件用于单独的数据集声明,从而数据可以单独管理。数据和其他配置可以被分离开来。数据常变,其他配置常不变。分开易于分别管理。数据可以被多个系列或者组件复用,对于大数据量的场景,不必为每个系列创建一份数据。

  • 指定 数据集 的列(column)还是行(row)映射为 系列(series)
series: [
    // 这几个系列会出现在第一个直角坐标系中,每个系列对应到 dataset 的每一行。
    { type: 'bar', seriesLayoutBy: 'row' },
    { type: 'bar', seriesLayoutBy: 'row' },
    { type: 'bar', seriesLayoutBy: 'row' },
    // 这几个系列会出现在第二个直角坐标系中,每个系列对应到 dataset 的每一列。
    { type: 'bar', xAxisIndex: 1, yAxisIndex: 1 },
    { type: 'bar', xAxisIndex: 1, yAxisIndex: 1 },
    { type: 'bar', xAxisIndex: 1, yAxisIndex: 1 },
    { type: 'bar', xAxisIndex: 1, yAxisIndex: 1 }
  ]
  • 数据到图形的映射
 series: [
    {
      type: 'bar',
      encode: {
        // 将 "amount" 列映射到 X 轴。
        x: 'amount',
        // 将 "product" 列映射到 Y 轴。
        y: 'product'
      }
    }
  ]

核心组件

ECharts 图表中有这些主要的组件:xAxis(直角坐标系 X 轴)、yAxis(直角坐标系 Y 轴)、grid(直角坐标系底板)、angleAxis(极坐标系角度轴)等等。
在这里插入图片描述

图例(legend)

图例是图表中对内容区元素的注释、用不同形状、颜色、文字等来标示不同数据列,通过点击对应数据列的标记,可以显示或隐藏该数据列。图例用legend对象来设置,并和series.name绑定。

legend: {
	  data: [{
	    name: '饼图',
	    icon: 'circle',
	    textStyle: {
	      color: 'red'
	    }
	  }, '折线图', '柱状图'],
	  left: 300,
	},
},

工具栏(toolbox)

提供导出图片,数据视图,动态类型切换,数据区域缩放,重置五个功能。

toolbox: {
        feature: {
          saveAsImage: {},
          dataZoom: {
            yAxisIndex: false // 默认是0
          },
          restore: {}
        }
},

区域缩放(dataZoom)

echarts提供了区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。

dataZoom: [{
        show: true,
        start: 0, // 起始位置
        end: 50 // 结束位置
}],

提示框(tooltip)

tooltip: {
   show: true
},

定位(grid)

ECharts大多数组件都提供了定位属性,我们可以采用类似 CSS absolute 的定位属性来控制组件的位置

   grid: {
      top: 150,
      left: '10%',
      right: '10%',
      bottom: 150
  },

综合上面的组件可以看到下面效果

const chartDom = document.getElementById('chart');
    const chart = echarts.init(chartDom);

    chart.setOption({
      dataset: {
        source: [
          ['衬衫', 99, 90, '抖音', 50],
          ['羊毛衫', 78, 88, '拼多多', 50],
          ['雪纺衫', 20, 30, '京东', 50],
          ['裤子', 130, 45, '淘宝', 50],
          ['高跟鞋', 89, 98],
          ['袜子', 65, 77]
        ]
      },
      title: {
        text: 'ECharts 学习',
        subtext: '这里是副标题'
      },
      xAxis: {
        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
      },
      yAxis: {},

      // 图例
      legend: {
        data: [{
          name: '饼图',
          icon: 'circle',
          textStyle: {
            color: 'red'
          }
        }, '折线图', '柱状图'],
        left: 300,
      },
      grid: {
        top: 100,
        left: '10%',
        right: '10%',
        bottom: 100
      },
      // 工具栏
      toolbox: {
        feature: {
          saveAsImage: {},
          dataZoom: {
            yAxisIndex: false // 默认是0
          },
          restore: {}
        }
      },
      // 区域缩放
      dataZoom: [{
        show: true,
        start: 0,
        end: 2
      }],
      // 提示框
      tooltip: {
        show: true
      },

      // 定位
      grid: {
      top: 150,
      left: '10%',
      right: '10%',
      bottom: 150
      },
      series: [{
          name: '饼图',
          type: 'pie',
          center: ['65%', 80],
          radius: 35,
          encode: {
            itemName: 3,
            value: 4
          }
        },
        {
          name: '折线图',
          type: 'line',
          encode: {
            x: 0,
            y: 1
          }

        }, {
          name: '柱状图',
          type: 'bar',
          encode: {
            x: 0,
            y: 2
          }

        }
      ]
    });

在这里插入图片描述

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值