java可以自适应的柱状图_vue——echart例: 柱状图及高度自适应

//按需引入

//引入基本模板

let echarts = require('echarts/lib/echarts')//引入图形组件

require('echarts/lib/chart/pie')

require('echarts/lib/chart/bar')

require('echarts/lib/chart/line')//引入提示框、title、图例组件

require('echarts/lib/component/tooltip')

require('echarts/lib/component/title')

require('echarts/lib/component/legend')

exportdefault{

name:'Echart',

data() {return{

tabIndex:'1',

winWid: screen.availWidth,

bar: {

list: [],

name: [],

data: []

},

barHeight:0,

options_bar: {}

}

},

mounted() {this.getCount();

},

methods: {

getCount() {

let _this= this,

getParam={

param: {

param1:***,

param2: _this.tabIndex

}

};

_this.axios.get('***', {

params: getParam

}).then(function(res) {if (res.status == 200 && res.data.result == 0) {

let _data=res.data.message;

_this.bar.list=_data.list;

_this.drawBar();

}else{

console.log('获取数据失败');

}

}).catch(function(err) {

console.log(err);

})

},

reGetCount(tab) {

let _this= this;if (_this.tabIndex ==tab) {return}else{

_this.tabIndex=tab;

_this.getCount();

}

},

drawBar() {

let _this= this,

list=_this.bar.list;for (let i = 0; i < list.length; i++) {

_this.bar.name[i]=list[i].name;

_this.bar.data[i]=list[i].num;

}

let obj= document.getElementById('chart_bar'),

chart_bar= echarts.init(document.getElementById('chart_bar'), );

chart_bar.clear();//清空画布

chart_bar.setOption({

title: {

text:'排行榜'},

tooltip: {//点击图形时显示详细数据

trigger: 'axis',

axisPointer: {

type:'shadow'}

},

legend: {

data: ['金额']

},

grid: {

left:'3%',

right:'4%',

bottom:'3%',

containLabel:true},

xAxis: {

type:'value',

name:'元',

boundaryGap:true,

axisLabel: {

interval:0,

formatter:function(value) {//金额超过千显示k

var res =value;if (res >= 1000) {

res= res / 1000 + res % 1000 + 'k';

}returnres;

}

}

},

yAxis: {

type:'category',

name:'姓名',

minInterval:1,

boundaryGap: [0, 0.1],

triggerEvent:true,

axisLabel: {

formatter:function(value) {//姓名超过3个字加省略号

var res =value;if (res.length > 3) {

res= res.substring(0, 3) + "..";

}returnres;

}

},

data: _this.bar.name,//data: ['王一王一', '张二', '吴三', '陈四', '张二', '吴三', '陈四', '王一', '张二', '吴三', '陈四']

},

series: [{

name:'金额',//注意与lengend名称必须一致,否则不显示图例

itemStyle: {//柱图背景色

color: 'lightcoral'},

type:'bar',

barWidth:10, //柱图宽度

data: _this.bar.data,//data: [7, 12, 8, 3, 7, 1000, 8, 3, 7, 8, 3]

}],

});

_this.barHeight= list.length * 50 + 100;

obj.style.height= _this.barHeight + "px";//******

//chart_bar.getDom().style.height = _this.barHeight + "px";

//chart_bar.getDom().childNodes[0].style.height = _this.barHeight + "px";

//chart_bar.getDom().childNodes[0].childNodes[0].setAttribute("height", _this.barHeight);

//chart_bar.getDom().childNodes[0].childNodes[0].style.height = _this.barHeight + "px";

//******

//我用*****部分设置高度有问题:一进页面是好的,但是tab一旦切换柱状图就会变形

chart_bar.resize();//区域更新

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使echarts柱状图自适应大小,可以在代码中添加相应的逻辑。根据提供的代码,可以在created()方法中添加setTimeout()函数来延迟执行columnar()方法。在columnar()方法中,可以使用echarts.init()方法初始化图表,并在window的resize事件中调用myChart.resize()方法来实现自适应大小的效果。具体代码如下所示: ```javascript created() { setTimeout(() => { this.columnar() }, 100) }, methods: { columnar() { var myChart = echarts.init(document.getElementById('columnar')); // 自适应大小 window.addEventListener('resize', () => { myChart.resize() }) // 其他配置和数据设置 // ... } } ``` 这样,当窗口大小改变时,echarts柱状图会自动调整大小以适应新的窗口尺寸。 #### 引用[.reference_title] - *1* [vueEcharts柱状图大小随浏览器窗口自适应、轴线刻度标签显示或隐藏](https://blog.csdn.net/weixin_45440916/article/details/120788023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Echarts绘制上下柱状图自适应屏幕大小Vue](https://blog.csdn.net/yyanglirong/article/details/113183920)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值