我的编程空间,编程开发者的网络收藏夹
学习永远不晚

echarts图表无数据/空数据如何展示"暂无数据"

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

echarts图表无数据/空数据如何展示"暂无数据"

前言

我们从后端获取数据动态渲染图表时,难免会遇到数据为空的情况(虽然实际应用中这样的bug极少遇到),但考虑周全一点也好,看如何实现吧。

 正常情况渲染图表:

<div id="test_chart" style="width: 600px;height:400px;"></div>
 
<script>
    let chartData =  [5, 20, 36, 10, 10, 20];
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('test_chart'));
 
    // 指定图表的配置项和数据
    var option = {
        title: {
          text: 'ECharts 入门示例'
        },
        tooltip: {},
        legend: {
          data: ['销量']
        },
        xAxis: {
          data: ['衬衫', '羊毛衫']
        },
        yAxis: {},
        series: [
          {
            name: '销量',
            type: 'bar',
            data: chartData          //动态数据
          }
        ]
    };
 
    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
</script>

我们只需要:在定义option的外面加一个if条件判断,判断动态获取的数据是否有值,有则渲染图表,无则渲染指定内容——可以是暂无数据的图片,也可以是文字

1、显示“暂无数据”文字 

<div id="test_chart" style="width: 600px;height:400px;"></div>
 
<script>
    let chartData =  [5, 20, 36, 10, 10, 20];
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('test_chart'));
    
    var option;
    // 指定图表的配置项和数据
    if (chartData.length == 0 ) {  //暂无数据
        option = {
            title: {
                text: '暂无数据',
                x: 'center',
                y: 'center',
                textStyle: {
                  fontSize: 14,
                  fontWeight: 'normal',
                }
              }
        }
    } else {
        option = {
            title: {
              text: 'ECharts 入门示例'
            },
            tooltip: {},
            legend: {
              data: ['销量']
            },
            xAxis: {
              data: ['衬衫', '羊毛衫']
            },
            yAxis: {},
            series: [
              {
                name: '销量',
                type: 'bar',
                data: chartData          //动态数据
              }
            ]
        };
    }
 
    
    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
</script>

效果如下: 

需要注意的是,如果有值的option里面没有定义title属性,那么就无法覆盖无值的情况渲染的“暂无数据”title,我们可以给它赋空值。

option = {
    title:{
        text:''
    },
    xAxis:{},
    yAxis:{},
    series:{},
}

2、显示“暂无数据”图片

 封装了一个noDataChart函数(可以直接复制使用),在上面的if判断为真的时候,调用这个函数,显示暂无数据图片即可。

// 暂无数据处理函数
noDataChart(dom){   //传入图表所在的dom节点
   dom.removeChild(dom.firstChild)
   const mainImg = document.createElement('img')
   dom.appendChild(mainImg) // 定义要显示的图片
   mainImg.style.width = 'auto'
   mainImg.style.height = 'auto'
   mainImg.class="lazy" data-src = noDataImg // 要显示图片的class="lazy" data-src路径,由外部统一定义,或直接写在这里也可以
   const mainText = document.createElement('h3')   //定义显示文字
   dom.appendChild(mainText)
   dom.style.display = 'flex'
   dom.style.flexDirection = 'column'
   dom.style.justifyContent = 'center'
   dom.style.alignItems = 'center'
   mainText.innerHTML = '暂无数据'
   mainText.style.color = '#999999'
   dom.removeAttribute('_echarts_instance_')
},
 
 
// 图表绘制函数
function myChartFunc(){
    let dom = document.getElementById('test_chart')
    var myChart = echarts.getInstanceByDom(dom);   //存在dom节点,获取已有的echarts实例的dom节点
    if ( myChart == null ) {  //不存在,进行初始化操作
        myChart = echarts.init(dom);
    }
   
    // 指定图表的配置项和数据
    if (chartData.length == 0 ) {  //暂无数据
        this.noDataChart(dom)   //---调用暂无数据处理函数
    } else {
      var option = {
          title: {
             text: 'ECharts 入门示例'
          },
                
      }
    
      myChart.setOption(option)
    }
}

 注意点:

        1、noDataChart函数中使用的暂无数据图片noDataImg由外部定义,此处直接使用,可以根据需要选择外部定义或者是直接将图片路径写在对应位置;

        2、在图表绘制函数内部,判断有无数据之前,新增了一条if语句,判断图表dom节点是否存在,存在则直接获取echarts实例,否则进行初始化操作;

        3、因为在这种情况下,图表无数据时,我们没有使用到option变量,如果还是将option的声明写在if条件外侧(且myChart.setOption(option)也在外侧),那暂无数据的情况会导致setOption语句获取到option为undefined报错,所以直接将option的声明和定义、以及myChart.setOption(option)语句写在有数据的else代码块内部。

总结

到此这篇关于echarts图表无数据/空数据如何展示“暂无数据”的文章就介绍到这了,更多相关echarts图表无数据/空数据内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

echarts图表无数据/空数据如何展示"暂无数据"

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

echarts图表无数据/空数据如何展示"暂无数据"

在开发echarts的时候我们不得不考虑数据为空的情况,其实有很多种解决办法,下面这篇文章主要给大家介绍了关于echarts图表无数据/空数据如何展示“暂无数据”的相关资料,需要的朋友可以参考下
2022-11-13

oracle数据为空如何表示

在Oracle数据库中,当一个列(字段)的数据为空时,可以使用特殊的值来表示空值。以下是Oracle中常用的两种表示空值的方式:1. 使用NULL关键字:Oracle支持使用NULL关键字来表示空值。当某个列没有具体的值时,可以将该列的值设
2023-08-08

数据库的数据透视表数据源引用无效如何解决

今天小编给大家分享一下数据库的数据透视表数据源引用无效如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
2023-03-01

如何结合php接口和ECharts实现大数据量统计图的展示

如何结合 PHP 接口和 ECharts 实现大数据量统计图的展示导言:随着互联网的快速发展和智能化的推广,数据量的增长呈现出爆炸式增长的趋势。对于大数据量的统计,传统的数据展示方法已经无法满足需求。而 ECharts 是基于 JavaSc
如何结合php接口和ECharts实现大数据量统计图的展示
2023-12-17

如何结合ECharts和php接口实现统计图的动态数据展示

如何结合ECharts和PHP接口实现统计图的动态数据展示介绍:随着互联网技术的发展,数据可视化在各个领域中起到了重要的作用。ECharts是一款强大的数据可视化库,它可以帮助我们快速的创建各种类型的图表。而PHP是一种流行的服务器端脚本语
如何结合ECharts和php接口实现统计图的动态数据展示
2023-12-17

如何结合ECharts和php接口实现多维度数据的统计图展示

如何结合ECharts和php接口实现多维度数据的统计图展示摘要:ECharts 是一款由百度开源的数据可视化图表库,能够支持多种图表类型和交互操作。结合 ECharts 和 php 接口,可以方便地实现多维度数据的统计图展示。本文将介绍如
如何结合ECharts和php接口实现多维度数据的统计图展示
2023-12-18

Vue如何结合ECharts等图表库进行数据可视化?

Vue结合ECharts数据可视化库,让开发者能创建交互式图表。步骤:安装ECharts,导入库,创建ECharts实例,设置图表选项,处理事件和实现响应式更新。优点:丰富的图表类型、交互性、响应性和可扩展性。示例:使用Vue和ECharts创建一个显示销量数据的柱状图,演示了Vue的响应性更新功能。
Vue如何结合ECharts等图表库进行数据可视化?
2024-04-02

echarts图表y轴数据间隔过大问题如何解决

这篇文章主要介绍“echarts图表y轴数据间隔过大问题如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“echarts图表y轴数据间隔过大问题如何解决”文章能帮助大家解决问题。echarts图
2023-07-05

vue使用echarts时created里拿到的数据无法渲染如何解决

这篇文章主要介绍了vue使用echarts时created里拿到的数据无法渲染如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue使用echarts时created里拿到的数据无法渲染如何解决文章都会有
2023-07-05

Cacti系统如何进行数据收集和图形化展示

Cacti系统是一个基于PHP的网络图形化解决方案,它允许用户收集、存储和展示网络设备的性能数据。数据收集过程通常包括以下步骤:配置SNMP代理:在要监控的设备上启用SNMP代理,并设置相应的安全参数。创建数据查询:在Cacti系统中创
Cacti系统如何进行数据收集和图形化展示
2024-03-11

如何在MongoDB中实现数据的实时地图展示功能

如何在MongoDB中实现数据的实时地图展示功能MongoDB是一种流行的NoSQL数据库,具有高性能和可伸缩性的优势。在许多应用场景中,我们需要将存储在MongoDB中的数据以地图的形式进行展示,以便更直观地观察和分析数据。本文将介绍如何
2023-10-22

PHP+jQuery如何实现中国地图热点数据统计展示

这篇文章给大家分享的是有关PHP+jQuery如何实现中国地图热点数据统计展示的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一款PHP+jQuery实现的中国地图热点数据统计展示实例,当鼠标滑动到地图指定省份区域
2023-06-04

mybatis plus中空字符串无法保存到数据库如何解决

mybatis plus中空字符串无法保存到数据库如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。解决办法在字段上加上@TableField(strategy = F
2023-06-06

Mysql 如何实现多张无关联表查询数据并分页

Mysql 多张无关联表查询数据并分页 功能需求 在三张没有主外键关联的表中取出自己想要的数据,并且分页。 数据库表结构 水果表:坚果表: 饮料表:数据库随便建的,重在方法。 主要使用UNION ALL 操作符 UNION ALL 操作
2022-06-01

如何使用HTML表格布局创建一个数据展示页面

HTML表格是一种常见的布局工具,可以用于创建数据展示页面。通过合理的利用表格的结构和属性,可以创建出清晰、易读且美观的数据展示页面。一、基本的表格结构在HTML中,表格由table、tr和td标签组成。table标签用于定义表格,tr标签
2023-10-21

C#如何实现图表中鼠标移动并显示数据

这篇文章将为大家详细讲解有关C#如何实现图表中鼠标移动并显示数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下效果图:1.首先在页面上添加一个label控件并 默认隐藏:2.给该图表添加Mou
2023-06-29

layui表格组件详解:如何高效实现数据展示与交互?(layui table组件使用指南:数据展示与交互技巧)

LayuiTable组件指南详细介绍其数据展示和交互功能。通过表格基本结构、数据绑定、列定义和数据格式化,开发者可高效实现复杂数据展示。交互方面,指南涵盖行/列操作、行选中、行编辑、事件触发、远程分页、导出/导入和表格工具栏。优化技巧包括数据虚拟化、数据缓存、事件委托、数据结构优化和页面布局优化。
layui表格组件详解:如何高效实现数据展示与交互?(layui table组件使用指南:数据展示与交互技巧)
2024-04-02

编程热搜

目录