• VUE整合Echarts实现简单的数据可视化


    文章目录


    前言

    ECharts是一款功能强大的前端数据可视化库,支持多种图表类型和统计图表、地理数据可视化、关系型数据展示、多维数据处理和商业智能功能。通过广泛的图表类型、统计分析能力、地理数据可视化、关系数据展示、多维数据处理和商业智能功能,ECharts为用户提供了强大而灵活的数据可视化解决方案,助力用户从数据中获取洞见,并将其直观地展示出来。


    提示:以下是本篇的一个对echarts的基本案例

    一、Echarts的安装

     首先在项目的终端运行安装echarts依赖安装的命令:

    npm install echarts -S

     这里使用全局引入的方式 在main.js中引入:

    1. //引入echarts
    2. import * as echarts from 'echarts'
    3. //vue全局注入echarts
    4. Vue.prototype.$echarts = echarts;

    二、可视化渲染

    1.柱状图

            首先我们创建一个一下属性的盒子,来放置我们以后的可视化图表

    1. <div class="echart-box" ref="box">div>
  • <style scoped>
  • .echart-box{
  • width: 500px;
  • height: 350px;
  • border: 3px solid pink;
  • margin: 20px auto;
  • }
  • style>
  •         第二步获取我们需要的dom对象,这里我用的$refs去获取的,当然也可以使用document方法去获取

    1. // 基于准备好的dom,初始化echarts实例
    2. const userdom = this.$refs.box
    3. const mycart = this.$echarts.init(userdom)

    绘制需要的图表需要到官方去寻找我们需要的图表,这里给出官网的链接

    Examples - Apache ECharts

    我们可以看到有许多我们常见的可视化视图的一些基础表格和样式

    我们点进去第一个柱状图,将代码复制到自己的项目上 :

    1. const option = {
    2. xAxis: {
    3. type: 'category',
    4. data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    5. },
    6. yAxis: {
    7. type: 'value'
    8. },
    9. series: [
    10. {
    11. data: [120, 200, 150, 80, 70, 110, 130],
    12. type: 'bar',
    13. showBackground: true,
    14. backgroundStyle: {
    15. color: 'rgba(180, 180, 180, 0.2)'
    16. }
    17. }
    18. ]
    19. }
    20. },

    最后通过setOption方法去渲染整个图表 

    mycart.setOption(option)

    最终运行结果: 

    2.饼图 

     我们通过相同的方法再去渲染一个饼状图:这里直接给出饼图的关键代码:

    1. const mypie = this.$echarts.init(this.$refs.boxpie)
    2. mypie.setOption({
    3. title: {
    4. text: 'Referer of a Website',
    5. subtext: 'Fake Data',
    6. left: 'center'
    7. },
    8. tooltip: {
    9. trigger: 'item'
    10. },
    11. legend: {
    12. orient: 'vertical',
    13. left: 'left'
    14. },
    15. series: [
    16. {
    17. name: 'Access From',
    18. type: 'pie',
    19. radius: '50%',
    20. data: [
    21. { value: 1048, name: 'Search Engine' },
    22. { value: 735, name: 'Direct' },
    23. { value: 580, name: 'Email' },
    24. { value: 484, name: 'Union Ads' },
    25. { value: 300, name: 'Video Ads' }
    26. ],
    27. emphasis: {
    28. itemStyle: {
    29. shadowBlur: 10,
    30. shadowOffsetX: 0,
    31. shadowColor: 'rgba(0, 0, 0, 0.5)'
    32. }
    33. }
    34. }
    35. ]
    36. })
    37. },

    3.主题的下载 

    这个时候我们的可视化,基本完成了,但是,我们可以看到我的的样式有一些普通,这个时候我们官方网站中去下载主题js文件,下面给出网址以及如何操作 

    主题下载 - Apache ECharts

     

    进入主题下载区,以第一个为例进行主题下载,

                                      

    主题的应用,在echarts文件中导入相关的主题文件,并在init方法的位置使用

    最后可以看到页面的效果:


    总结

    这里对echarts的可视化进行的简单的入门案例,一篇文章就可以让你简单的对echarts上手,下面附上整片文章的源码 方便大家阅读和学习:

    1. <script>
    2. import '@/assets/vintage.js'
    3. export default {
    4. mounted() {
    5. // 挂在完成dom后进行初始化
    6. this.showEcarts();
    7. },
    8. methods: {
    9. showEcarts() {
    10. // 基于准备好的dom,初始化echarts实例
    11. const userdom = this.$refs.box
    12. const mycart = this.$echarts.init(userdom,'vintage')
    13. //绘制图表
    14. const option = {
    15. xAxis: {
    16. type: 'category',
    17. data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    18. },
    19. yAxis: {
    20. type: 'value'
    21. },
    22. series: [
    23. {
    24. data: [120, 200, 150, 80, 70, 110, 130],
    25. type: 'bar',
    26. showBackground: true,
    27. backgroundStyle: {
    28. color: 'rgba(180, 180, 180, 0.2)'
    29. }
    30. }
    31. ]
    32. };
    33. // 渲染图表
    34. mycart.setOption(option)
    35. //饼图
    36. const mypie = this.$echarts.init(this.$refs.boxpie,'vintage')
    37. mypie.setOption({
    38. title: {
    39. text: 'Referer of a Website',
    40. subtext: 'Fake Data',
    41. left: 'center'
    42. },
    43. tooltip: {
    44. trigger: 'item'
    45. },
    46. legend: {
    47. orient: 'vertical',
    48. left: 'left'
    49. },
    50. series: [
    51. {
    52. name: 'Access From',
    53. type: 'pie',
    54. radius: '50%',
    55. data: [
    56. { value: 1048, name: 'Search Engine' },
    57. { value: 735, name: 'Direct' },
    58. { value: 580, name: 'Email' },
    59. { value: 484, name: 'Union Ads' },
    60. { value: 300, name: 'Video Ads' }
    61. ],
    62. emphasis: {
    63. itemStyle: {
    64. shadowBlur: 10,
    65. shadowOffsetX: 0,
    66. shadowColor: 'rgba(0, 0, 0, 0.5)'
    67. }
    68. }
    69. }
    70. ]
    71. })
    72. },
    73. },
    74. }
    75. script>
    76. <style scoped>
    77. .echart-box {
    78. width: 500px;
    79. height: 350px;
    80. border: 3px solid pink;
    81. margin: 20px ;
    82. }
    83. style>

  • 相关阅读:
    Mysql MMM
    UVC Camera视频数据流程代码分析
    LeetCode-复原 IP 地址(C++)
    Day20_网络编程(软件结构,网络编程三要素,UDP网络编程,TCP网络编程)
    关于#java#的问题,请各位专家解答!
    3-MySQL常用数据类型及表管理
    51系列—基于51单片机的数字频率计(代码+文档资料)
    Ubuntu Pycharm Anaconda 管理&切换环境
    WebSocket实现聊天功能
    NovelAi本地部署版详细教程
  • 原文地址:https://blog.csdn.net/weixin_52258054/article/details/133811203