在Echarts中使用graphic配置无数据展示图表样式。

本文介绍了如何在ECharts图表中使用graphic属性实现无数据时的空图片替换,并添加暂无数据的文字提示。通过silent和invisible配置,确保了即使数据为空也能显示定制信息。

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

 

最近碰到一个需求,在展示echarts的图表时,使用echarts的api(getDataURL)来获取图表转为图片的base64转码,但是如果无数据时则会转出空白的图片,但是需求要求无数据也需要将其转出并且展示暂无数据的文字提示,最后在echarts中发现了graphic属性。

 graphic: {
          type: 'text',
          left: 'center',
          top: 'middle',
          silent: true,
          invisible: data.length != 0, //是否可见,这里的意思是当没有数据时可见
          style: {
            fill: 'black',
            font: '36px "bold" ',
            text: '暂无数据',
          },
        },

这样配置之后,如果判断传入echarts的数据为空时,则会展示暂无数据的字体提示,将其转换为base64转码再转为图片之后,转出之后则会显示该效果。

 

要实现这个功能,需要使用echarts中的`zrender`库,它提供了强大的图形渲染和事件处理功能。 具体实现步骤如下: 1. 创建一个矩形图形,并设置它的位置、大小和样式等属性。 ```javascript var rect = new zrender.Rect({ shape: { x: 100, y: 100, width: 100, height: 100 }, style: { fill: 'rgba(255, 0, 0, 0.5)', stroke: '#f00' }, draggable: true // 设置该矩形可拖拽 }); ``` 2. 监听矩形的拖拽事件,在事件处理函数中更新矩形的位置。 ```javascript rect.on('drag', function() { var pos = rect.position; var x = pos[0]; var y = pos[1]; var width = rect.shape.width; var height = rect.shape.height; rect.setShape({ x: x, y: y, width: width, height: height }); }); ``` 3. 将矩形添加到echarts图表中。 ```javascript var myChart = echarts.init(document.getElementById('myChart')); myChart.getZr().add(rect); ``` 完整的代码示例: ```javascript var rect = new zrender.Rect({ shape: { x: 100, y: 100, width: 100, height: 100 }, style: { fill: 'rgba(255, 0, 0, 0.5)', stroke: '#f00' }, draggable: true }); rect.on('drag', function() { var pos = rect.position; var x = pos[0]; var y = pos[1]; var width = rect.shape.width; var height = rect.shape.height; rect.setShape({ x: x, y: y, width: width, height: height }); }); var myChart = echarts.init(document.getElementById('myChart')); myChart.getZr().add(rect); ``` 请注意,这种方式绘制的矩形不是echarts的标准图形,因此无法通过echarts提供的方法设置它的样式和事件处理函数,需要使用zrender库提供的方法来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值