1. Import echart in HTML file<!-- Import echarts --> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.min.js"></script> 2. Mount the echarts object on main.jsVue.prototype.$echarts = window.echarts // Use this.$echarts directly when using 3. Page structure<template> <div class="com-container"> <div class="com-chart" ref="sellerRef"></div> </div> </template> 4.Data in dataexport default { data () { return { // Initialized chart chartInstance: null, allDate: null, //Data returned by the server} }, } ```js ##### 5. Logic in methods ```js methods: { // Initialize echarts object initEchart(){ // Get the DOM object this.chartInstance = this.$echarts.init(this.$refs.sellerRef) }, // Get data from the server async getData(){ const {data:res} = await this.$http.get('seller') this.allDate = res // The data structure of the return is name, merchant, value // Sort the returned data from small to large sort method this.allDate.sort((a, b) => { return a.value - b.value }) // Call the update view method this.updateChart() }, // Update the chart updateChart(){ // Y-axis category axis data const sellerNames = this.allDate.map(item=>{ // Adjust return item.name according to your needs }) // Data of the x-axis value axis const sellerValues = this.allDate.map(item=>{ return item.value }) const option = { xAxis: type: 'value' }, yAxis: { type: 'category', // The y-axis coordinate axis uses the traversed name data:sellerNames }, series: [ { // Type is bar chart type: 'bar', // The x-axis data needs to be set in the series data type as the traversal value data:sellerValues } ] } // Render optio data to dom object this.chartInstance.setOption(option) }, Mounted hook function call// DOM loading is complete call mounted () { this.initChart() this.getData() }, Changing the column chart configuration1. Introduce the theme configuration file in index.html<!-- Introducing the topic --> <script src="./static/lib/theme/chalk.js"></script> 2. Use initialization to get DOM and pass it into chalk where the theme is neededthis.chartInstance = this.$echarts.init(this.$refs.sellerRef, 'chalk') 3.option configuration LinearGradient(x1,x2,y1,y2) linear gradientconst option = { title: text: '| Merchant sales statistics', textStyle: { fontSize: 66 }, left: 20, top: 20 }, // Axis configuration grid: { top: '20%', left: '3%', right: '6%', bottom: '3%', // The distance includes the axis text containLabel: true }, xAxis: type: 'value' }, yAxis: { type: 'category', // The y-axis coordinate axis uses the traversed name data:sellerNames }, series: [ { // Type is bar chart type: 'bar', // The x-axis data needs to be set in the series data type as the traversal value data: sellerValues, // Column width barWidth: 66, // Column text does not display label by default: { show: true, // The text is displayed on the right position: 'right', textStyle: { // The color is white color: 'white' } }, //Control each item in the column itemStyle: { // Control the corner radius of the barBorderRadius: [0, 33, 33, 0], // Linear gradient // Specify different percentages of color values color: new this.$echarts.graphic.LinearGradient(0, 0, 1, 0, [ { // 0 percent style offset: 0, color: '#5052EE' }, { // 100% offset: 1, color: '#AB6EE5' } ]) } } ], tooltip: { trigger: 'axis', axisPointer: type: 'line', // Default is a straight line, optional: 'line' | 'shadow' z: 0, // Background level lineStyle: { width: 66, // background width color: '#2D3443' // background color} } } } ``` The above is the details of how to use the bar chart in Vue and modify the configuration by yourself. For more information about using the bar chart in Vue, please pay attention to other related articles on 123WORDPRESS.COM! You may also be interested in:
|
<<: MySQL detailed explanation of isolation level operation process (cmd)
>>: Detailed steps for setting up a nexus server
1. Concurrency Concurrency is the most important ...
MySQL is a very powerful relational database. How...
Introduction In a production environment, in orde...
Use profile to analyze slow SQL The main purpose ...
Table of contents 1. From father to son 2. From s...
The MySQL version number is 5.7.28. Table A has 3...
MySQL handles GROUP BY and DISTINCT queries simil...
Recently, some friends said that after installing...
Table of contents Preface Style Function Descript...
Operating system: Alibaba Cloud ESC instance cent...
The first one is to use jQuery's ajax to send...
vue implements the drag and drop sorting function...
In order to enhance the ability to write JavaScri...
Recorded the installation of mysql-8.0.12-winx64 ...
The full name of Blog should be Web log, which me...