ECharts的基础使用和通过修改配置项调整图表尺寸样式

1.概述

​ 在软工实践课程的团队编程阶段,作为前端我需要实现一个数据可视化的统计页面,在一个页面里用到各种不同的图表来展示机房的一些相关数据,此时使用echarts数据可视化工具来实现是最为便捷和美观的。使用过程中并没有太大的难点,只是调整图表的大小尺寸无法通过统一缩放进行修改,配置项逐个查询和修改起来较为繁琐。

2.详述

2.1 基础使用方法

echarts的引入和使用并不难,只需要五个步骤就可以做到。

ECharts官方教程

当然,在使用之前要先安装echarts,在控制台输入

npm install echarts --save

在这里插入图片描述

(1)引入ECharts文件

import * as echarts from 'echarts';

(2)准备一个用来存放图表的容器

容器就是div,并为该div设置一个id,同时必须给改容器设置一个宽高。例如:

<div id="chart" style="width: 350px;height: 320px;"></div>

(3)初始化echarts实例对象

获取DOM元素(容器),初始化echarts实例,如

var myChart = echarts.init(document.getElementById("chart"));

(4) 指定图表的配置项和数据

这是很关键的一步,我们最终的效果基本上都是由配置项决定的。

var Option={
  title: {
    text: 'ECharts 入门示例'
  },
  tooltip: {},
  xAxis: {
    data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
  },
  yAxis: {},
  series: [
    {
      name: '销量',
      type: 'bar',
      data: [5, 20, 36, 10, 10, 20]
    }
  ]
}

(5)使用配置项和数据渲染图表(渲染到容器中)

mycharts.setOption(option)

而在实际应用中,我习惯把第(4)(5)步合并:

myChart.setOption({
  title: {
    text: 'ECharts 入门示例'
  },
  tooltip: {},
  xAxis: {
    data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
  },
  yAxis: {},
  series: [
    {
      name: '销量',
      type: 'bar',
      data: [5, 20, 36, 10, 10, 20]
    }
  ]
});

这样就完成了echarts基本的引入和展示,接下来若想修改图表样式,重点是查看文档修改配置项。

2.2 通过修改配置项调整图表尺寸和样式

​ 对图表的修改其实就是找到对应配置项再进行修改的过程,很简单!只是查找和尝试繁琐一点,在这里先附上官方文档的配置项手册。在手册里也可以通过预览直接修改配置查看效果,还是很便捷的。

在这里插入图片描述
在这里插入图片描述

​ 在这里以我软工作业的页面为例,在团队中我同时担任UI设计和前端开发的工作,在画UI的时候没有想过这个页面未来是我自己写的,怎么好看怎么画来着,然后画UI一时爽,写前端火葬场.…一堆图表的布局调整起配置项来真的好考验耐心!

这是我的UI:

在这里插入图片描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FPZi4S7d-1685979945918)(D:\大学课程\软工实践\团队作业\UI\MachineGuard\charts\图表2.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VSSpWxLN-1685979945918)(D:\大学课程\软工实践\团队作业\UI\MachineGuard\charts\图表3.png)]

这是我的实现:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tvbS444q-1685979945919)(D:\大学课程\软工实践\团队作业\machineGuard\17.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XAnA9UDl-1685979945919)(D:\大学课程\软工实践\团队作业\machineGuard\11.png)]
在这里插入图片描述
在这里插入图片描述

不能说一比一复刻,但是很努力地在实现了QAQ。

其中遇到最大的问题就是繁琐的配置项调整,因为在下图的图表布局中,需要将图表缩小到足够在不大的空间里摆放八个图表。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GCwziCyU-1685979945921)(C:\Users\Chyu\AppData\Roaming\Typora\typora-user-images\image-20230605115625400.png)]
在这里插入图片描述

我以下图来演示如何修改配置项进行尺寸和样式的调整

修改前的图表

在这里插入图片描述在这里插入图片描述

修改后的图表:

在这里插入图片描述

2.2.1 尺寸的缩小

存放temperature这个图表的宽高都为90px,对echarts的原图来说太小了,引入的时候图表显示乱七八糟。

echarts确实提供radius这个配置项来让我们将仪表盘进行缩放,但我发现直接将radius的百分比缩小后,刻度的粗细和数字并不会随比例一同变小,这样依然导致图表错位。见下图:

在这里插入图片描述
在这里插入图片描述

同时我也尝试了使用css的transform: scale();来将图表容器div进行整体缩放,但是我发现为了先能够完整地显示图表,需要先将div的宽高设置得足够大后再利用scale进行缩小,这样缩小之后虽然图表本身确实被缩小了,但是其实容器整体的宽高还是占据之前那么多的位置,造成图表周围大量的留白不能去掉,依然无法实现UI设计里那样小而紧凑的布局效果。见下图:

在这里插入图片描述
但是如果布局并不要求我的UI那样紧凑的话,我认为这是一个非常实用便捷的实现缩放的方法!

由此说明,修改图表大小需要依次修改刻度粗细、刻度数字的大小和距离、中间数字的大小、进度条的大小等配置项,我们一步步来调整。

首先将radius缩小到一个大概合适的大小

radius:'60%'

修改中间数字的大小,对应配置项为detail中的fontSize属性,这里我从60改为12

修改内外圈进度条的粗细,对应配置项为progress中的width属性,外圈我从8改为5,内圈从30改为16,但是如果不需要进度条的话可以直接将show置为false

在这里插入图片描述

进度条底部的浅蓝色轴线也需要改细,对应配置项为axisLine中lineStyle的width属性,我从30改为16

在这里插入图片描述

进行以上修改后图表变成了这样:

在这里插入图片描述

接下来需要调整的是刻度的粗细和距离

将刻度改细,对应配置项为axisTick中lineStyle的width属性,我由2改为1。

缩小刻度圈离圆心的距离,修改axisTick中的distance属性,数值越大距离越近。

在这里插入图片描述

将刻度的分割线改细,配置项为splitLine中lineStyle的width,我由3改为0.8。

将刻度的分割线改短,配置项为splitLine中的length,我由14改为2。

缩小刻度圈分割线离圆心的距离,修改splitLine中的distance属性,数值越大距离越近。

在这里插入图片描述

此时图表应大概长这样:

在这里插入图片描述

接下来修改刻度上数字的大小和距离。对应配置项为axisLabel的fontSize和distance

在这里插入图片描述

这样,对图表尺寸的修改就完成了:

在这里插入图片描述

2.2.2 其它样式的修改

对颜色的修改很简单,只要寻找对应配置的color属性就行。在这个仪表盘中,进度条的颜色修改是通过itemStyle的color属性实现的,我将内外圈都修改为同种颜色。

在这里插入图片描述

因为我感觉图表的位置偏向canvas的上方,想要将它调整得与下方标题近一点,这个可以利用center配置项调整纵向的百分比来实现,我将原本的60%改为80%。同理,如果要进行横向的偏移修改前一个百分比就好。


顺便介绍一下折现图和柱状图渐变效果的实现,也很简单,先自定义一个颜色对象来实现渐变。

var mycolor = {
    type: 'linear',//线性渐变
    x: 0,
    y: 0,
    x2: 0,
    y2: 1,
    colorStops: [{
        offset: 0, color: 'rgba(174,187,228, 1)' // 0% 处的颜色
    }, {
        offset: .7, color: 'rgba(243,245,251, 0.7)' // 100% 处的颜色
    }],
    global: false
}

然后在折线图中找到areaStyle的color配置和柱状图itemStyle的color配置,将color置为mycolor就可以实现了。


在这里插入图片描述
在这里插入图片描述

3.总结

​ 我作为一个前端新手第一次使用echarts,会发现其实它是一个相当便捷的工具,使用上没有太大难度,对图表的修改无非就是查文档改配置项的问题。只是对应配置项的查询和修改其实也是一个繁琐的过程,我在这里举出仪表盘的例子是因为仪表盘是一个修改起来相对繁琐的图表,希望之后遇到类似的情况能够联想到想到修改哪些配置项可以达到想要的效果。例如,改大小和位置想到百分比,改粗细和宽度想到width,改距离想到distance,改颜色想到xxxxStyle的color,改字号想到fontSize…尽管繁琐,但是一步步修改下来总结经验,也可以省去一些查看文档的时间。但是,官方文档的配置项手册还是一定要看的!遇到确实无法解决的问题,一定一定一定还是要认真阅读和查找文档。

参考文献和博客:

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,那我来具体说明一下如何使用echarts的API来动态更新图表数据或配置,然后触发图表的重新渲染。 首先,您需要在页面中引入echarts的库文件,并创建一个容器来承载图表,例如: ```html <div id="chart-container" style="width: 600px; height: 400px;"></div> ``` 然后,您可以使用echarts的API来创建并初始化一个图表实例,例如: ```javascript var chart = echarts.init(document.getElementById('chart-container')); ``` 接着,您可以定义一个数据源,例如: ```javascript var data = [ { name: 'A', value: 100 }, { name: 'B', value: 200 }, { name: 'C', value: 300 } ]; ``` 然后,您可以使用echarts的API来配置图表样式和数据,例如: ```javascript chart.setOption({ xAxis: { type: 'category', data: data.map(function(item) { return item.name; }) }, yAxis: { type: 'value' }, series: [{ type: 'bar', data: data.map(function(item) { return item.value; }) }] }); ``` 这里使用了map方法来将数据源中的name和value分别转换为xAxis和series的数据。 接着,如果您需要动态更新数据或配置,可以直接修改数据源或配置,例如: ```javascript // 修改数据源 data[0].value = 150; data[2].value = 250; // 修改配置 chart.setOption({ series: [{ type: 'bar', data: data.map(function(item) { return item.value; }) }] }); ``` 最后,您可以使用echarts的API来触发图表的重新渲染,例如: ```javascript chart.resize(); ``` 这会重新计算图表尺寸并重新渲染图表。 希望这些信息可以帮助您解决问题。如果您还有其他问题或需要更详细的帮助,请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值