This article shares the specific code of Vue to implement horizontal beveled bar chart for your reference. The specific content is as follows Result: Implementation code: <template> <div class="Consumption"> <div style="width: 350px; height: 180px" ref="ConsumptionChart" /> </div> </template> <script> import echarts from 'echarts' const myShape = { x: 0, y: 0, width: 10 // Spacing} // Draw the left side const InclinedRoofBar = echarts.graphic.extendShape({ shape: myShape, buildPath: function(ctx, shape) { // Anyone who knows canvas should be able to understand this. shape is passed in from custom const xAxisPoint = shape.xAxisPoint const c0 = [shape.x, shape.y] const c1 = [shape.x + 14, shape.y - 10] const c2 = [xAxisPoint[0], xAxisPoint[1] - 10] const c3 = [xAxisPoint[0], xAxisPoint[1]] ctx .moveTo(c0[0], c0[1]) .lineTo(c1[0], c1[1]) .lineTo(c2[0], c2[1]) .lineTo(c3[0], c3[1]) .closePath() } }) const colors = ['rgba(50, 197, 255, 0.8)', 'rgba(0, 253, 255, 0.8)', 'rgba(255, 235, 0, 0.8)'] const colors = ['rgba(0, 145, 255, 1)', 'rgba(68, 215, 182, 1)', 'rgba(215, 170, 68, 1)'] // Register three surface graphics echarts.graphic.registerShape('InclinedRoofBar', InclinedRoofBar) const defaultOption = { tooltip: { show: true, trigger: 'axis', axisPointer: type: 'shadow' } }, grid: { top: 10, bottom: 30, left: 10, right: 10, containLabel: true }, yAxis: { type: 'category', data: [], axisLine: { show:false }, axisTick: { show:false }, axisLabel: { color(value, index) { return colors[index] }, fontSize: 14 } }, xAxis: type: 'value', axisLine: { show:false }, min: 0, splitLine: { show:false }, axisTick: { show:false }, axisLabel: { show:false }, boundaryGap: ['20%', '20%'] }, series: [ { type: 'custom', name: '', itemStyle: { color: 'rgba(44, 197, 253, 1)' }, renderItem: (params, api) => { const location = api.coord([api.value(0), api.value(1)]) const xlocation = api.coord([0, api.value(1)]) return { type: 'InclinedRoofBar', shape: api, xValue: api.value(0), yValue: api.value(1), x: location[0], y: location[1] + myShape.width, xAxisPoint: [xlocation[0], xlocation[1] + myShape.width] }, style: { fill: new echarts.graphic.LinearGradient(0, 0, 1, 0, [ { offset: 0, color: colors[params.dataIndex] }, { offset: 1, color: colorss[params.dataIndex] } ]) } } }, data: [] }, { type: 'bar', label: { normal: { show: true, position: 'right', fontSize: 14, offset: [15, 0] } }, showBackground: false, barWidth: 14, backgroundStyle: { color: 'rgba(50, 197, 255, 0.1)' }, itemStyle: { color: 'transparent' }, tooltip: { show:false }, data: [] } ] } export default { data() { return { myChart: null } }, mounted() { this.myChart = echarts.init(this.$refs.ConsumptionChart) }, methods: { getOption(seriesData) { const option = defaultOption const { yAxis, series } = option // Process data yAxis.data = ['low', 'middle', 'high'] series[0].data = seriesData series[1].data = seriesData.map((item, index) => Object.assign(item, { label: { color: colorss[index] } })) this.myChart.setOption(option) } } } </script> The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: Detailed tutorial on installing mysql 8.0.20 on CentOS7.8
Environmental requirements: IP hostname 192.168.1...
Preface This article mainly introduces the releva...
This article shares the specific code of a simple...
The tee command is mainly used to output to stand...
In Linux system, both chmod and chown commands ca...
Recently, I ran a spark streaming program in a ha...
Table of contents 1. Introduction Second practice...
1. Download the axios plugin cnpm install axios -...
Table of contents 1. Introduction to SELinux 2. B...
1. Purchase a server In the example, the server p...
Table of contents 1. Introduction 2. GitHub 3. Ba...
This article records the specific steps for downl...
XML/HTML CodeCopy content to clipboard < butto...
Original code: center.html : <!DOCTYPE html>...
1. Two properties of table reset: ①border-collaps...