前端vue使用ECharts如何制作精美统计图

ECharts在vue中简单实现统计图

一、什么是ECharts

ECharts,是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

ECharts 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。

除了已经内置的包含了丰富功能的图表,ECharts 还提供了自定义系列,只需要传入一个renderItem函数,就可以从数据映射到任何你想要的图形,更棒的是这些都还能和已有的交互组件结合使用而不需要操心其它事情。

详情内容关注ECharts的官方文档,里面有更加详细的介绍!

二、在vue中使用ECharts

今天的重头戏来了,现在vue是很多公司前端的主流框架,我目前所在公司接触的项目也都是使用vue来实现的,很少有完全使用原生的JavaScript来写项目的了,所以今天也是详细记录一下vue中如何使用 ECharts来制作折线图,也算是对自己知识的一个补充。

  1. 安装ECharts:npm install echarts --save
  2. 在组件中引入:import echarts from “echarts”
  3. 在view中定义一个带有宽高的容器:
  4. 逻辑编写:
//drawAmountCharts为一个自定义方法     setOption是一个特定的方法,使用指定的配置项和数据显示图表
drawAmountCharts(id) {
      this.amountCharts = echarts.init(document.getElementById(id));
      this.amountCharts.setOption({
        title: {
          text: "学生成绩表",
          left: "center"
        },
        tooltip: {   //设置tip提示
          trigger: "axis"
        },
        legend: {  //设置区分(哪条线属于什么)
          y: "bottom",
          x: "center",
          data: ["学生成绩", "平均成绩"]  
        },
        color: ['#8AE09F', '#FA6F53'],       //设置区分(每条线是什么颜色,和 legend 一一对应)
        grid: {
          left: "10%",
          right: "20%",
          bottom: "15%",
          containLabel: true
        },
        toolbox: {
          feature: {
            saveAsImage: {}
          }
        },
        xAxis: {  //设置x轴
          name: "日期",  //X轴 name
          type: "category",
          boundaryGap: true,  //坐标轴两边留白
          nameTextStyle: {        //坐标轴名称的文字样式
                    color: '#FA6F53',
                    fontSize: 16,
                    padding: [0, 0, 0, 20]
          },
          axisLine: {             //坐标轴轴线相关设置。
                    lineStyle: {
                        color: '#FA6F53',
                    }
          },
          axisTick: {
            alignWithLabel: true
          },
          data: ['2019-1-1', '2019-2-1', '2019-3-1', '2019-4-1', '2019-5-1', '2019-6-1', '2019-7-1']  //x轴的数据
        },
        yAxis: {
            name: '成绩',
            nameTextStyle: {
                color: '#FA6F53',
                fontSize: 16,
                padding: [0, 0, 10, 0]
            },
            axisLine: {
                lineStyle: {
                    color: '#FA6F53',
                }
            },
            type: 'value'
        },
        series: [
              {
                name: '平均成绩',
                data:  [220, 232, 201, 234, 290, 230, 220],
                type: 'line',               // 类型为折线图
                lineStyle: {                // 线条样式 => 必须使用normal属性
                    normal: {
                        color: '#8AE09F',
                    }
                },
              },
              {
                name: '学生成绩',
                data: [120, 200, 150, 80, 70, 110, 130],
                type: 'line',
                lineStyle: {
                    normal: {
                        color: '#FA6F53',
                    }
                },
              }
          ]
      });
    }

这样一个简单的折线统计图就写好了,当然,现在只是写好的死数据,真实项目开发中就可以使用我们从后端请求来的真实数据了,然后将该函数写在某一个生命周期或者点击事件里面,根据实际需求进行相应的改变。

前端开发是一个神奇的岗位,祝愿自己在前端的学习道路上如鱼得水,也祝愿其他学习前端的小伙伴学的精,学的快,学的透!

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用Spring Boot和Vue.js实现的统计图表的示例代码: 1. 后端代码 首先,我们需要创建Spring Boot应用程序,并添加以下依赖项: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> ``` 然后,我们需要定义数据模型和控制器,以便我们可以从前端获取数据并返回统计结果。 ```java @Data @NoArgsConstructor @AllArgsConstructor public class Data { private String name; private int value; } @RestController @RequestMapping("/api") public class DataController { @GetMapping("/data") public List<Data> getData() { List<Data> dataList = new ArrayList<>(); dataList.add(new Data("A", 10)); dataList.add(new Data("B", 20)); dataList.add(new Data("C", 30)); return dataList; } } ``` 2. 前端代码 我们将使用Vue.js来构建前端应用程序,并使用echarts.js来绘制统计图表。首先需要安装Vue.js和echarts.js: ```bash npm install vue echarts --save ``` 然后,我们需要在Vue应用程序中添加以下代码: ```html <template> <div class="container"> <div class="row"> <div class="col-md-6 offset-md-3"> <div class="card"> <div class="card-body"> <div class="chart-container" ref="chart"></div> </div> </div> </div> </div> </div> </template> <script> import axios from 'axios' import echarts from 'echarts' export default { name: 'App', data () { return { data: [] } }, mounted () { this.getData() }, methods: { getData () { axios.get('/api/data').then(response => { this.data = response.data this.renderChart() }).catch(error => { console.log(error) }) }, renderChart () { const chart = echarts.init(this.$refs.chart) const xData = [] const yData = [] this.data.forEach(item => { xData.push(item.name) yData.push(item.value) }) chart.setOption({ title: { text: '统计图表' }, tooltip: { trigger: 'axis' }, xAxis: { type: 'category', data: xData }, yAxis: { type: 'value' }, series: [{ data: yData, type: 'bar' }] }) } } } </script> ``` 在上面的代码中,我们首先使用axios从后端获取数据,然后使用echarts.js绘制统计图表。我们将图表容器的引用存储在$refs中,然后在renderChart()方法中使用它来初始化echarts实例并绘制图表。 3. 运行代码 最后,我们需要使用以下命令启动后端和前端应用程序: ```bash mvn spring-boot:run npm run serve ``` 然后,我们可以在浏览器中访问http://localhost:8080来查看统计图表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值