echarts如何修改数据视图dataView中的样式

本文介绍了一种在ECharts中优化从折线图切换到表格显示的方法。通过自定义内容,解决了默认表格样式不佳的问题,并提供了一段可直接使用的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:点我

做了一个现实折线图的图表,通过右上角icon可以自由切换成柱状图,表格。
在表格中遇到的一点小问题,解决方案如下:

1、场景重现


这是一个显示两个折线图的图表,一切看起来都很顺利。
但是点击红色箭头所指的图标,这个作用就是以表格的形式展现。
展现如下。

很丑是吧,测试姐姐说一定要改掉。
附加一下右上角的实现代码,在options配置项加下面的配置就OK。

 1 //右上角切换实现方法
 2 toolbox: {
 3     show: true,
 4         right: '5%',
 5         feature: {
 6         dataView: {
 7             readOnly: true              
 8         },
 9         magicType: {type: ['line', 'bar']}
10     }
11 },

2、解决方案

点击文档传送

echarts给的解决的办法就是自定义。
下面写了一个小表格,opt包含了所有折线图的数据,自己组装下。
可以console看看都有什么。

 1 optionToContent: function (opt) {
 2     let axisData = opt.xAxis[0].data; //坐标数据
 3     let series = opt.series; //折线图数据
 4     let tdHeads = '<td  style="padding: 0 10px">时间</td>'; //表头
 5     let tdBodys = ''; //数据
 6     series.forEach(function (item) {
 7         //组装表头
 8         tdHeads += `<td style="padding: 0 10px">${item.name}</td>`;
 9     });
10     let table = `<table border="1" style="margin-left:20px;border-collapse:collapse;font-size:14px;text-align:center"><tbody><tr>${tdHeads} </tr>`;
11     for (let i = 0, l = axisData.length; i < l; i++) {
12         for (let j = 0; j < series.length; j++) {
13             //组装表数据
14             tdBodys += `<td>${ series[j].data[i]}</td>`;
15         }
16         table += `<tr><td style="padding: 0 10px">${axisData[i]}</td>${tdBodys}</tr>`;
17         tdBodys = '';
18     }
19     table += '</tbody></table>';
20     return table;
21 }

 

改完效果如下,大家可以自己试试看哦。可以改成自己想要的风格哦。

3、总结

和数据视图有关的都可以这样改,不一定是我的那个场景。

如果项目中图表很多,可以把这段代码抽取出来,毕竟篇幅很长。
写这篇文章,主要是自己刚学会,其次是搜了一会没找到合适的答案。就分享下自己的小喜悦吧,嘻嘻。

转载于:https://www.cnblogs.com/myfate/p/10655643.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值