极致呈现系列之:Echarts柱状图的创意设计与数字美学的完美平衡

news/2024/7/5 3:17:03

先看下最终效果
在这里插入图片描述

目录

  • 数字之美:Echarts柱状图的基础应用
  • 形色俱佳:Echarts柱状图的样式美化与创意设计
  • 独具匠心:Echarts柱状图的柱体形状自定义
  • 动感十足:Echarts柱状图的交互动画实现
  • 数字排序的艺术:Echarts柱状图的数据排序技巧

前面我花了两篇博客的时间详细介绍了如何在 Vue3中使用Echarts图表和 Echarts中的配置项的详细介绍,这一篇博客我想结合前面两篇博客的内容,来实现对Echarts柱状图的美化与数据交互。

数字之美:Echarts柱状图的基础应用

前面我们已经将过了,要在Vue中使用Echarts,我们必须先安装和引入,我们新建一个vue3工程,安装Echarts并引入

  1. 安装Echarts
npm install echarts --save
  1. 引入Echarts,这里我就局部引入了,新建一个VueChart.vue组件,在这个组件中引入
import * as echarts from 'echarts';
  1. 在该组件的模板中新建一个div
<div ref="chart" style="width: 50%;height: 400px;"></div>
  1. 定义一个数组,用于存放数据
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 },
];
  1. 定义一个变量chart与div关联,并在onMounted中调用Echarts的init函数
onMounted(() => {
  const myChart = echarts.init(chart.value)
 // 配置项内容
})
  1. 定义变量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'
  }]
};
  1. 将上面定义的option作为参数传递给我们上面定义的Echarts实例—myChart
  2. 在App.vue中插入上面的VueChart组件
<template> 
  <VueChart></VueChart> 
</template>
<script setup>
import VueChart from './components/VueChart.vue'; 
</script>

一个简单的柱状图我们就实现了,运行看效果
在这里插入图片描述
但是这个柱状图看起来太单一了,不是很美观,下面我们来进一步的优化

形色俱佳:Echarts柱状图的样式美化与创意设计

先在我们来修改下柱体的颜色、边框、阴影、柱体宽度以及坐标轴线条的样式,我们只需要在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'
      }, 
    }], 
  }

修改完成后,运行看效果
在这里插入图片描述
看起来比我们上面第一次的版本漂亮多了,但是还是不是很完美,柱体看起来太锐利了,颜色也比较单一

独具匠心:Echarts柱状图的柱体形状自定义

柱体是方形的,看起来比较锐利,颜色也太单一了,下面我们把柱体改为圆角的,同时颜色改为渐变色,代码如下:

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'
      }, 
    }], 
  }

在这里插入图片描述
嗯,这样,柱状图的样式就比较完美了,下面我们来实现交互效果

动感十足:Echarts柱状图的交互动画实现

这里我们向实现三个交互效果,一是鼠标悬浮到柱体上时,柱体可以高亮;二是弹出提示框;三是增加一个数据缩放功能的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柱状图的数据排序技巧

下面我们实现Echarts图表的数据排序,要实现这个功能,其实只需要利用数组的sort函数就可以了:在我们定义的data数组下面添加如下代码:
升序排序:data.sort((a, b) => a.value - b.value);
在这里插入图片描述
降序排序:data.sort((a, b) => b.value - a.value);
在这里插入图片描述
好了,关于柱状图的使用技巧就说道这里,其实Echarts可实现的功能远远不止这些,我们还可以在这基础上进行更多的变化和使用,比如样式修改为仿三维柱状图、进度条形式的柱体等,有兴趣的小伙伴可以研究下。


http://lihuaxi.xjx100.cn/news/1243658.html

相关文章

安卓自动化

又python客户端 --------> Appium Server ------------------> Java 先安装&#xff1a; 安装2的时候 添加一个环境变量 第三步添加环境变量 第四步添加环境变量&#xff0c;在系统变量path中添加

version `GLIBCXX_3.4.14‘ not found

./Gate: /usr/lib64/libstdc.so.6: version GLIBCXX_3.4.14 not found (required by ./Gate) 本人测试gcc-8.3.0装不上,可考虑7.30亲测可装, 4.81也测试过了,可以装但是应该不支持3.414 查看支持的版本列表 strings /lib64/libc.so.6 | grep GLIBC 8.30安装 wget http://ftp…

系统码的编译码与汉明码

本专栏包含信息论与编码的核心知识&#xff0c;按知识点组织&#xff0c;可作为教学或学习的参考。markdown版本已归档至【Github仓库&#xff1a;https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。 文章目录 系统码的编译码线性…

如何录制声音?推荐这2款电脑录音软件!

案例&#xff1a;怎么录制电脑上的声音&#xff1f;在电脑上怎么录制自己的声音&#xff1f;有没有小伙伴知道操作的步骤。 【我想录制语音会议&#xff0c;还想录制自己的歌声&#xff0c;在电脑上如何录制声音&#xff1f;求一个简单易懂的教程&#xff0c;在线等&#xff0…

Optional简述(Java8新特性)

Optional类是Java8为了解决null值判断问题&#xff0c;借鉴google guava类库的Optional类而引入的一个同名Optional类&#xff0c;使用Optional类可以避免显式的null值判断&#xff08;null的防御性检查&#xff09;&#xff0c;避免null导致的NPE&#xff08;NullPointerExcep…

高速视觉筛选机PCI Express实时运动控制卡XPCIE1028

产品导读 正运动技术的PCI Express总线运动控制卡XPCIE1028&#xff0c;具备位置锁存、多维高速硬件位置比较输出PSO、同步跟随、精准触发的运动控制和I/O控制功能。 配合正运动技术MotionRT7实时内核使用&#xff0c;可高度满足高速视觉筛选机应用所需的运动控制需求。 XPC…

linuxOPS基础_yum详解

yum是如何安装软件的 yum仓库&#xff08;也称yum源&#xff09;用于存放各种rpm的软件包以及软件包之间的依赖关系&#xff08;repodata目录&#xff09;需要安装软件的计算机连接到指定yum仓库来安装软件包 yum源作用 软件包管理器&#xff0c;类似Windows下的软件管家 yu…

为什么超三成制造企业上市公司选择用友U9 cloud?

导读&#xff1a;30%制造企业上市公司和40%专精特新制造业上市公司都选择用友U9 cloud 当前&#xff0c;数智化转型已经成为中国制造重构竞争力、实现高质量发展的必经之路。《“十四五”智能制造发展规划》提出&#xff0c;到2025年&#xff0c;70%的规模以上制造业企业基本实…