返回顶部
首页 > 资讯 > 精选 >vue如何用Echarts画柱状图
  • 612
分享到

vue如何用Echarts画柱状图

2023-06-26 06:06:14 612人浏览 薄情痞子
摘要

Vue如何用Echarts画柱状图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。vue是什么Vue是一套用于构建用户界面的渐进式javascript框架,Vue与其它大型框

Vue如何用Echarts画柱状图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

vue是什么

Vue是一套用于构建用户界面的渐进式javascript框架,Vue与其它大型框架的区别是,使用Vue可以自底向上逐层应用,其核心库只关注视图层,方便与第三方库和项目整合,且使用Vue可以采用单文件组件和Vue生态系统支持的库开发复杂的单页应用。

1 引入Echarts

1.1 安装

使用如下命令通过 npm 安装 ECharts

npm install echarts --save

注:本文安装Echarts版本为:“echarts”: “5.2.1”

1.2 引入

安装完成以后,可以将echarts全部引入,这样一来,我们可以在该页面使用echarts所有组件;引入代码如下:

import * as echarts from "echarts";

2 基本柱状图

柱状图(或称条形图)是一种通过柱形的长度来表现数据大小的一种常用图表类型。

设置柱状图的方式,是将配置项中 series 的 type 设为 'bar',该

最简单的柱状图可以这样设置:

option = {  xAxis: {    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']  },  yAxis: {},  series: [    {      type: 'bar',      data: [23, 24, 18, 25, 27, 28, 25]    }  ]};

如图所示:

vue如何用Echarts画柱状图

上图vue完整代码如下:

<template>  <div class="echart" id="mychart" :></div></template><script>import * as echarts from "echarts";export default {  data() {    return {      xData: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], //横坐标      yData: [23, 24, 18, 25, 27, 28, 25], //数据      myChartStyle: { float: "left", width: "100%", height: "400px" } //图表样式    };  },  mounted() {    this.initEcharts();  },  methods: {    initEcharts() {      // 基本柱状图      const option = {        xAxis: {          data: this.xData        },        yAxis: {},        series: [          {            type: "bar", //形状为柱状图            data: this.yData          }        ]      };      const myChart = echarts.init(document.getElementById("mychart"));      myChart.setOption(option);      //随着屏幕大小调节图表      window.addEventListener("resize", () => {        myChart.resize();      });    }  }};</script>

3 多列柱状图

当有多列数据需要展示时我们需要使用多列柱状图,只需要在 series 多添加一项就可以了:

series: [          {            type: "bar", //形状为柱状图            data: data1,          },          {            type: "bar", //形状为柱状图            data: data2,          }    ]

通常有多列数据的时候,我们需要对每列使用不同颜色展示并在柱状图进行说明,echarts默认会使用不同颜色进行区分,当然我们也可以对柱状图的样式进行设置,如背景色等;但若需要标明某一列代表什么数据,需要使用到图例legend,对应在 series 数组对象中添加name属性,来对应legend中的data,其中通过位置元素来设置图例的位置,如下:

        // 图例        legend: {          data: ["人数", "任务数"],          top: "0%" // 设置图例位置在顶部        },        series: [          {            type: "bar", //形状为柱状图            data: data1,            name: "人数", // legend属性          {            type: "bar", //形状为柱状图            data: data2,            name: "任务数", // legend属性          }        ]

设置多列柱状图如图:

vue如何用Echarts画柱状图

上图对应完整vue代码如下:

<template>  <div class="echart" id="mychart" :></div></template><script>import * as echarts from "echarts";export default {  data() {    return {      xData: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], //横坐标      yData: [23, 24, 18, 25, 27, 28, 25], //人数数据      taskDate: [10, 11, 9, 17, 14, 13, 14],      myChartStyle: { float: "left", width: "100%", height: "400px" } //图表样式    };  },  mounted() {    this.initEcharts();  },  methods: {    initEcharts() {      // 多列柱状图      const mulColumnZZTData = {        xAxis: {          data: this.xData        },        // 图例        legend: {          data: ["人数", "任务数"],          top: "0%"        },        yAxis: {},        series: [          {            type: "bar", //形状为柱状图            data: this.yData,            name: "人数", // legend属性            label: {              // 柱状图上方文本标签,默认展示数值信息              show: true,              position: "top"            }          },          {            type: "bar", //形状为柱状图            data: this.taskDate,            name: "任务数", // legend属性            label: {              // 柱状图上方文本标签,默认展示数值信息              show: true,              position: "top"            }          }        ]      };      const myChart = echarts.init(document.getElementById("mychart"));      myChart.setOption(mulColumnZZTData);      //随着屏幕大小调节图表      window.addEventListener("resize", () => {        myChart.resize();      });    }  }};</script>

其中 series中的label属性为柱状图文本标签,可显示数据、文本等信息,默认不展示,需要将其show设置为true时才会在图中展示出来。

4 柱状图样式设置

4.1 柱条样式

柱条的样式可以通过 series.itemStyle 设置,包括:

  • 柱条的颜色(color);

  • 柱条的宽度(barWidth);

  • 柱条的描边颜色(borderColor)、宽度(borderWidth)、样式(borderType);

  • 柱条的背景色(showBackground)柱条圆角的半径(barBorderRadius);

  • 柱条透明度(opacity);

  • 阴影(shadowBlurshadowColorshadowOffsetXshadowOffsetY)。

我们可以对同一个系列柱条设置同一样式,也可以对单一柱条设置特定的样式,如下:

option = {    xAxis: {        data: ["A", "B", "C", "D", "E"]    },    yAxis: {},    series: [        {            type: "bar",            data: [                10,                22,                28,                {                    value: 43,                    // 设置单个柱子的样式                    itemStyle: {                        color: "#91cc75",                        shadowColor: "#91cc75",                        borderType: "dashed",                        opacity: 0.5                    }                },                49            ],            barWidth: "20%", // 每个柱条的宽度就是类目宽度的 20%            // 同系列柱条样式            itemStyle: {                barBorderRadius: 5,                borderWidth: 1,                borderType: "solid",                borderColor: "#73c0de",                shadowColor: "#5470c6",                shadowBlur: 3            }        }    ]};

效果如下:

vue如何用Echarts画柱状图

4.2 柱条间距

柱条间距分为两种,一种是不同系列在同一类目下的距离 barWidth,另一种是类目与类目的距离 barCateGoryGap

示例如下:

option = {    xAxis: {        data: ["A", "B", "C", "D", "E"]    },    yAxis: {},    series: [        {            type: "bar",            data: [23, 24, 18, 25, 18],            barGap: "0%", // 两个柱子之间的距离相对于柱条宽度的百分比;            barCategoryGap: "40%" // 每侧空余的距离相对于柱条宽度的百分比        },        {            type: "bar",            data: [12, 14, 9, 9, 11]        }    ]};

以上示例如图:

vue如何用Echarts画柱状图

在这个例子中,barGap 被设为 '0%',这意味着每个类目(比如 A)下的两个柱子之间的距离,相对于柱条宽度的百分比,设置成0%说明两个柱跳之间没有间隙。而 barCategoryGap 是 '40%',意味着柱条每侧空余的距离,相对于柱条宽度的百分比。

通常而言,设置 barGap 及 barCategoryGap 后,就不需要设置 barWidth 了,这时候的宽度会自动调整。如果有需要的话,可以设置 barMaxWidth 作为柱条宽度的上限,当图表宽度很大的时候,柱条宽度也不会太宽。

在同一坐标系上,此属性会被多个柱状图系列共享。此属性应设置于此坐标系中最后一个柱状图系列上才会生效,并且是对此坐标系中所有柱状图系列生效。

以上效果vue代码如下:

<template>  <div class="echart" id="mychart" :></div></template><script>import * as echarts from "echarts";export default {  data() {    return {      myChart: {},      myChartStyle: { float: "left", width: "100%", height: "400px" }, //图表样式    };  },  mounted() {    this.initEcharts();  },  methods: {    initEcharts() {      // 样式设置      // const option = {      //   xAxis: {      //     data: ["A", "B", "C", "D", "E"]      //   },      //   yAxis: {},      //   series: [      //     {      //       type: "bar",      //       data: [      //         10,      //         22,      //         28,      //         {      //           value: 43,      //           // 设置单个柱子的样式      //           itemStyle: {      //             color: "#91cc75",      //             shadowColor: "#91cc75",      //             borderType: "dashed",      //             opacity: 0.5      //           }      //         },      //         49      //       ],      //       barWidth: "20%", // 每个柱条的宽度就是类目宽度的 20%      //       // 同系列柱条样式      //       itemStyle: {      //         barBorderRadius: 5,      //         borderWidth: 1,      //         borderType: "solid",      //         borderColor: "#73c0de",      //         shadowColor: "#5470c6",      //         shadowBlur: 3      //       }      //     }      //   ]      // };      // 柱条间距      const option = {        xAxis: {          data: ["A", "B", "C", "D", "E"]        },        yAxis: {},        series: [          {            type: "bar",            data: [23, 24, 18, 25, 18],            barGap: "0%", // 两个柱子之间的距离相对于柱条宽度的百分比;            barCategoryGap: "40%" // 每侧空余的距离相对于柱条宽度的百分比          },          {            type: "bar",            data: [12, 14, 9, 9, 11]          }        ]      };      const myChart = echarts.init(document.getElementById("mychart"));      myChart.setOption(option);      //随着屏幕大小调节图表      window.addEventListener("resize", () => {        myChart.resize();      });    }  }};</script>

5 动态排序柱状图

动态排序柱状图是一种展示随时间变化的数据排名变化的图表,从 ECharts 5 开始内置支持。

动态排序柱状图通常是横向的柱条,如果想要采用纵向的柱条,只要把本教程中的 X 轴和 Y 轴相反设置即可。

实现动态排序柱状图需要使用以下属性:

yAxis.realtimeSort 设为 true,表示开启 Y 轴的动态排序效果

yAxis.inverse 设为 true,表示 Y 轴从下往上是从小到大的排列

yAxis.animationDuration 建议设为 300,表示第一次柱条排序动画的时长

yAxis.animationDurationUpdate 建议设为 300,表示第一次后柱条排序动画的时长

如果想只显示前 n 名,将 yAxis.max 设为 n - 1,否则显示所有柱条

xAxis.max 建议设为 'dataMax' 表示用数据的最大值作为 X 轴最大值,视觉效果更好

如果想要实时改变标签,需要将 series.label.valueAnimation 设为 true

animationDuration 设为 0,表示第一份数据不需要从 0 开始动画(如果希望从 0 开始则设为和 animationDurationUpdate 相同的值)

animationDurationUpdate 建议设为 3000 表示每次更新动画时长,这一数值应与调用 setOption 改变数据的频率相同

以 animationDurationUpdate 的频率调用 setInterval,更新数据值,显示下一个时间点对应的柱条排序

实现效果如下:

vue如何用Echarts画柱状图

上图vue完整代码如下:```js<template>  <div class="echart" id="mychart" :></div></template><script>import * as echarts from "echarts";export default {  data() {    return {      myChart: {},      sortData: [], //动态排序数据      myChartStyle: { float: "left", width: "100%", height: "400px" }, //图表样式      dynamicSortZZTOption: {        xAxis: {          max: "dataMax"        },        yAxis: {          type: "category",          data: ["A", "B", "C", "D", "E"],          inverse: true,          animationDuration: 300,          animationDurationUpdate: 300,          max: 4 // only the largest 3 bars will be displayed        },        series: [          {            realtimeSort: true,            name: "动态变化",            type: "bar",            data: [],            label: {              show: true,              position: "right",              valueAnimation: true            }          }        ],        legend: {          show: true        },        animationDuration: 3000,        animationDurationUpdate: 3000,        animationEasing: "linear",        animationEasingUpdate: "linear"      }    };  },  mounted() {    // 图表初始化    this.myChart = echarts.init(document.getElementById("mychart"));    // 数据初始化    for (let i = 0; i < 5; ++i) {      this.sortData.push(Math.round(Math.random() * 200));    }    // 数据刷新    setInterval(() => {      this.pageUpdate();    }, 3000);  },  methods: {    // 数据刷新    pageUpdate() {      console.log(this.dynamicSortZZTOption.series[0].data);      this.dynamicSortZZTOption.series[0].data = this.sortData;      for (let i = 0; i < this.sortData.length; ++i) {        if (Math.random() > 0.9) {          this.sortData[i] += Math.round(Math.random() * 2000);        } else {          this.sortData[i] += Math.round(Math.random() * 200);        }      }      this.myChart.setOption(this.dynamicSortZZTOption);      //随着屏幕大小调节图表      window.addEventListener("resize", () => {        this.myChart.resize();      });    }  }};</script>```

关于vue如何用Echarts画柱状图问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: vue如何用Echarts画柱状图

本文链接: https://lsjlt.com/news/307211.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue如何用Echarts画柱状图
    vue如何用Echarts画柱状图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。vue是什么Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框...
    99+
    2023-06-26
  • Vue使用Echarts画柱状图详解
    目录前言柱状图实现步骤柱状图常见效果标记显示前言 本篇来学习下柱状图的实现 柱状图实现步骤 ECharts 最基本的代码结构准备x轴的数据准备 y 轴的数据准备 option , 将...
    99+
    2022-12-16
    Vue Echarts画柱状图 Vue画柱状图
  • 详解vue使用Echarts画柱状图
    目录1 引入Echarts1.1 安装1.2 引入2 基本柱状图3 多列柱状图4 柱状图样式设置4.1 柱条样式4.2 柱条间距5 动态排序柱状图6 总结1 引入Echarts 1....
    99+
    2024-04-02
  • VUE中怎么渲染Echarts动画柱状图
    这篇文章主要介绍“VUE中怎么渲染Echarts动画柱状图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“VUE中怎么渲染Echarts动画柱状图”文章能帮助大家解决问题。柱状图效果图安装Echart...
    99+
    2023-07-05
  • vue echarts实现横向柱状图
    本文实例为大家分享了vue echarts实现横向柱状图的具体代码,供大家参考,具体内容如下 实现效果: 代码: <template> <div clas...
    99+
    2024-04-02
  • vue+echarts实现堆叠柱状图
    本文实例为大家分享了vue+echarts实现堆叠柱状图的具体代码,供大家参考,具体内容如下 echarts-子组件 <template> <div cla...
    99+
    2024-04-02
  • Vue+Echarts实现柱状折线图
    本文实例为大家分享了Vue+Echarts实现柱状折线图的具体代码,供大家参考,具体内容如下 vue处理json数据渲染柱状折线图 HTML: <div id="lineCha...
    99+
    2024-04-02
  • Vue使用Echarts实现立体柱状图
    本文实例为大家分享了Vue使用Echarts实现立体柱状图的具体代码,供大家参考,具体内容如下 预览: 代码: 页面部分: <template> <div ...
    99+
    2024-04-02
  • vue+echarts实现进度条式柱状图
    本文实例为大家分享了vue+echarts实现进度条式柱状图的具体代码,供大家参考,具体内容如下 效果图如下 代码: <template> <div cl...
    99+
    2024-04-02
  • vue echarts实现柱状图动态展示
    本文实例为大家分享了vue echarts实现柱状图动态展示的具体代码,供大家参考,具体内容如下 轮播图形式展现 <template> <div clas...
    99+
    2024-04-02
  • vue+echarts实现条纹柱状横向图
    本文实例为大家分享了vue+echarts实现条纹柱状横向图的具体代码,供大家参考,具体内容如下 实现效果: <template>   <div id="Busi...
    99+
    2024-04-02
  • ECharts​怎么实现柱状图
    这篇文章主要讲解了“ECharts怎么实现柱状图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ECharts怎么实现柱状图”吧! //1、引入JS文件 ...
    99+
    2024-04-02
  • vue+echarts怎么实现条纹柱状横向图
    这篇“vue+echarts怎么实现条纹柱状横向图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue+echarts怎么实...
    99+
    2023-06-29
  • 如何利用ECharts和Python接口生成柱状图
    如何利用ECharts和Python接口生成柱状图概述:随着数据可视化技术的发展,柱状图成为常见的数据展示方式之一。本文将介绍如何利用ECharts和Python接口生成柱状图。ECharts 是一款基于 JavaScript 的开源可视化...
    99+
    2023-12-17
    柱状图 Python echarts
  • 如何利用echarts画雷达图和折柱混合
    目录导语雷达图效果折柱图效果总结导语 通常在根据设计图写echarts的时候,很多效果是官方实例里没有的,我在代码里加上了一些常用的效果,并做了注释。 雷达图 var option ...
    99+
    2024-04-02
  • 怎么使用vue+echarts绘制折线图、柱状图和扇形图
    这篇“怎么使用vue+echarts绘制折线图、柱状图和扇形图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用vue+...
    99+
    2023-07-05
  • echarts怎么实现3d柱状图
    本篇内容介绍了“echarts怎么实现3d柱状图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!echarts实现3d柱状图的两种方式看了不少...
    99+
    2023-07-05
  • Android如何实现带动画柱状图
    这篇文章主要为大家展示了“Android如何实现带动画柱状图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android如何实现带动画柱状图”这篇文章吧。为何要用带动画的柱状图呢?最近,项目中遇...
    99+
    2023-05-30
    android
  • 如何在Python中使用ECharts绘制堆叠柱状图
    在数据可视化领域,堆叠柱状图是一种常见的可视化方式。它将多个数据系列绘制成一个条形,每个条形由多个子项组成,每个子项对应一个数据系列,在同一坐标系下进行展示。这种图表可以用于比较不同类别或数据系列的总大小、每个类别或数据系列的组成比例等。在...
    99+
    2023-12-17
    Python echarts 堆叠柱状图
  • Vue echart如何实现柱状图,电池图,3D柱图和3D圆柱图
    这篇文章主要为大家展示了“Vue echart如何实现柱状图,电池图,3D柱图和3D圆柱图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue echart如何实现柱状图,电...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作