极致呈现系列之:Echarts柱状图的创意设计与数字美学的完美平衡 | 您所在的位置:网站首页 › 柱状图立体效果 › 极致呈现系列之:Echarts柱状图的创意设计与数字美学的完美平衡 |
先看下最终效果 前面我们已经讲过了,要在Vue中使用Echarts,我们必须先安装和引入,我们新建一个vue3工程,安装Echarts并引入 安装Echarts npm install echarts --save 引入Echarts,这里我就局部引入了,新建一个VueChart.vue组件,在这个组件中引入 import * as echarts from 'echarts'; 在该组件的模板中新建一个div 定义一个数组,用于存放数据 const chart = ref(null) const data = [ { name: 'Mon', value: 820 }, { name: 'Tue', value: 932 }, { name: 'Wed', value: 901 }, { name: 'Thu', value: 934 }, { name: 'Fri', value: 1290 }, { name: 'Sat', value: 1330 }, { name: 'Sun', value: 1320 }, ]; 定义一个变量chart与div关联,并在onMounted中调用Echarts的init函数 onMounted(() => { const myChart = echarts.init(chart.value) // 配置项内容 }) 定义一个option对象,在里面配置我们想要在Echarts中显示的内容;这里我定义了title用于显示图表的标题,xAxis配置和显示x轴,yAxis配置和显示y轴,series配置系列;具体的配置参数请看上一篇博客 const option = { title: { text: '数字之美:Echarts柱状图的基础应用' }, xAxis: { type: 'category', data: data.map(item=>item.name) }, yAxis: { type: 'value' }, series: [{ data: data.map(item=>item.value), type: 'bar' }] }; 将上面定义的option作为参数传递给我们上面定义的Echarts实例—myChart在App.vue中插入上面的VueChart组件 import VueChart from './components/VueChart.vue';一个简单的柱状图我们就实现了,运行看效果 现在我们来修改下柱体的颜色、边框、阴影、柱体宽度以及坐标轴线条的样式,我们只需要在option配置项中添加内容即可,代码如下: const option = { title: { text: '形色俱佳:Echarts柱状图的样式美化与创意设计' }, xAxis: { type: 'category', data: data.map(item=>item.name), axisLine: { lineStyle: { color: '#333' } } }, yAxis: { type: 'value', axisLine: { lineStyle: { color: '#333' } } }, series: [{ data: data.map(item=>item.value), type: 'bar', barWidth: 20, itemStyle: { color:'#0286ff', borderColor: '#fff', borderWidth: 2, shadowBlur: 10, shadowColor: '#ccc' }, }], }修改完成后,运行看效果 柱体是方形的,看起来比较锐利,颜色也太单一了,下面我们把柱体改为圆角的,同时颜色改为渐变色,代码如下: const option = { title: { text: '独具匠心:Echarts柱状图的柱体形状自定义' }, xAxis: { type: 'category', data: data.map(item=>item.name), axisLine: { lineStyle: { color: '#333' } } }, yAxis: { type: 'value', axisLine: { lineStyle: { color: '#333' } } }, series: [{ data: data.map(item=>item.value), type: 'bar', barWidth: 20, itemStyle: { color: new echarts.graphic.LinearGradient( 0, 0, 0, 1, [{ offset: 0, color: '#00feff' }, { offset: 0.5, color: '#027eff' }, { offset: 1, color: '#0286ff' } ] ), borderColor: '#fff', borderWidth: 2, borderRadius: 30, shadowBlur: 10, shadowColor: '#ccc' }, }], }
这里我想要实现三个交互效果,一是鼠标悬浮到柱体上时,柱体可以高亮;二是弹出提示框;三是增加一个数据缩放功能的dataZoom;代码如下 const option = { title: { text: '独具匠心:Echarts柱状图的柱体形状自定义' }, xAxis: { type: 'category', data: data.map(item=>item.name), axisLine: { lineStyle: { color: '#333' } } }, yAxis: { type: 'value', axisLine: { lineStyle: { color: '#333' } } }, series: [{ data: data.map(item=>item.value), type: 'bar', barWidth: 20, itemStyle: { color: new echarts.graphic.LinearGradient( 0, 0, 0, 1, [{ offset: 0, color: '#00feff' }, { offset: 0.5, color: '#027eff' }, { offset: 1, color: '#0286ff' } ] ), borderColor: '#fff', borderWidth: 2, borderRadius: 30, shadowBlur: 10, shadowColor: '#ccc' }, emphasis: { itemStyle: { color: '#409EFF' }, }, }], tooltip: { trigger: 'axis' }, dataZoom: [ { type: 'slider', start: 0, end: 100 }, { type: 'inside', start: 0, end: 100 } ], }刷新浏览器,看效果, 下面我们实现Echarts图表的数据排序,要实现这个功能,其实只需要利用数组的sort函数就可以了:在我们定义的data数组下面添加如下代码: 升序排序:data.sort((a, b) => a.value - b.value); |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |