效果图
vue2 代码
<!-- 横向柱状图测试结果 -->
<template>
<div>
<h3>横向柱状图测试</h3>
<div style="width: 500px; height: 500px; background-color: antiquewhite">
<div id="heng" style="width: 100%; height: 100%"></div>
</div>
</div>
</template>
<script>
// import * as echarts from 'echarts';
export default {
name: "hengzhu",
data() {
return {
// data: [1000, 800, 600, 500, 540, 1100, 528, 55, 66, 588, 980, 563, 578, 154, 55, 66, 55, 66, 452, 652]
// data: [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000]
data: [
2000, 1900, 1800, 1700, 1600, 1500, 1400, 1300, 1200, 1100, 1000, 900,
900, 800, 700, 600, 500, 400, 300, 200,
],
start: 0,
end: 5,
};
},
created() {
this.dingshi();
},
mounted() {
this.heng();
// this.dingshi();
},
methods: {
heng() {
// let that = this;
// alert("执行");
let chartDom = document.getElementById("heng");
let myChart = this.$echarts.init(chartDom);
let option = {
title: {
text: "World Population",
},
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
},
},
legend: {},
grid: {
left: "3%",
right: "4%",
bottom: "3%",
containLabel: true,
},
// xAxis: {
yAxis: {
type: "value",
// boundaryGap: [0, 0.01] // 柱图距离边界的距离
},
// yAxis: {
xAxis: {
type: "category",
inverse: false, // ture: 从上到下显示, 默认:从下到上显示,下面的数值会跟着变动
data: [
"aa",
"bb",
"cc",
"dd",
"ee",
"ff",
"gg",
"hh",
"ii",
"jj",
"kk",
"ll",
"mm",
"nn",
"oo",
"pp",
"qq",
"rr",
"ss",
"tt",
],
},
dataZoom: {
type: "inside", // inside: 表示用内测滑块
startValue: this.start, // 开始显示的数
endValue: this.end, // 结束显示的数
xAxisIndex: [0], // 代表是作用在y轴上的
// yAxisIndex: [0], // 代表是作用在y轴上的
// start: '10',
// end: '1'
// zoomLock: true,
zoomOnMouseWheel: false, // 关闭滚轮缩放
moveOnMouseWheel: true, // 开启滚轮平移
moveOnMouseMove: true, // 鼠标移动能触发数据窗口平移
},
series: [
{
type: "bar",
// realtimeSort: true, // 这个可以与 yAxis-inverse 配合,让数据正序显示还是逆序显示
data: this.data,
},
],
};
myChart.setOption(option);
// setInterval(function () {
// this.data = [1000, 800, 600, 500, 540, 1100, 528, 55, 66, 588, 980, 563, 578, 154, 55, 66, 55, 66, 452, 1200]
// }, 2000)
},
/** 定时跳动 */
dingshi() {
let that = this;
setInterval(function () {
if (that.end == that.data.length) {
that.start = 0;
that.end = 5;
} else {
that.start = that.start + 1;
that.end = that.end + 1;
}
that.heng();
}, 3000);
},
},
};
</script>
<style scoped></style>