echarts柱状统计图

news/2024/7/19 14:03:55 标签: echarts, JS

目录

echarts%E6%9F%B1%E7%8A%B6%E7%BB%9F%E8%AE%A1%E5%9B%BE%C2%A0-toc" style="margin-left:80px;">一、简单的echarts柱状统计图 

二、柱状图和折线图混搭

echarts%E7%94%BB%E5%9B%BE-toc" style="margin-left:80px;">三、一个项目里同时用不同版本的echarts画图


echarts%E6%9F%B1%E7%8A%B6%E7%BB%9F%E8%AE%A1%E5%9B%BE%C2%A0">一、简单的echarts柱状统计图 

1、首先映入echarts所需的依赖包:echarts.js和echarts.min.js,以及jQuery.js;

     echarts官网下载:https://echarts.baidu.com/download.html

      jQuery官网下载:http://jquery.com/download/

2、源代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="echarts/4.2.1/echarts.js"></script>
    <script type="text/javascript" src="echarts/4.2.1/echarts.min.js"></script>
</head>
<body>
    <div id="main"  style="width: 900px;" class="chart-css" ref="myEchart"></div>
</body>
<script>
    $(function () {
        chart();
    });

    function chart() {
        var menuList =  ['小王', '小李', '小赵', '小马', '小刘', '小张', '小齐'];
        var dataList = [3100, 2142, 1218, 581, 431, 383, 163];

        var option = {
            title: {
                text: '常用报表统计',
            },
            tooltip: {
                show: true,
                trigger: 'axis',
                axisPointer: {  // 坐标轴指示器,坐标轴触发有效
                    type: 'shadow', // 默认为直线,可选为:'line' | 'shadow'
                    fontSize: 8
                }
            },
            legend: {
                data: ['访问量']
            },
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true,
                // y2:140,
            },
            xAxis: {
                name: '访问次数',
                nameLocation: 'middle',// middle 居中显示  end 右边  start 左边
                nameTextStyle:{
                    fontWeight:'bold',
                    fontSize:14,
                    padding: [10, 0, 0, 0]
                },
                type: 'value',
                boundaryGap: [0, 0.01],
                splitLine: {  //网格样式
                    show: true,
                    lineStyle: {
                        color: ['#e7e8ec'],
                        width: 1,
                        type: 'solid'
                    }
                }
            },
            yAxis: {
                name: '名称',
                nameLocation: 'start',
                nameTextStyle:{
                    fontSize:14,
                    fontWeight:'bold'
                },
                type: 'category',
                data: menuList,
                inverse: true, //设置倒序排序
                splitLine: {  //网格样式
                    show: true,
                    lineStyle: {
                        color: ['#e7e8ec'],
                        width: 1,
                        type: 'solid'
                    }
                },
                axisLabel:{
                    interval:0,//Y轴信息全部显示
                    // rotate:-30,//-30度角倾斜显示
                }
            },
            series: [{
                name: '数量',
                type: 'bar',
                data: dataList,
                barWidth: 30,
                // barMaxWidth: 30,
                itemStyle: {
                    normal: {
                        label: {
                            show: true,
                            position: 'right',
                            textStyle: {
                                color: 'black',
                                fontSize: 16
                            }
                        },
                        color: '#88CFFF'
                    }
                }
            }
            ]
        };

        // 设置容器的高度和宽度
        var container = document.getElementById('main');
        var allNode = menuList.length;
        if(allNode < 3){
            allNode = 3;
        }else if(allNode < 5){
            allNode = 5;
        }
        var currentHeight = 55 * allNode;
        container.style.height = currentHeight + 'px'; //设置容器高度
        var myChart = echarts.init(document.getElementById('main'));
        window.onresize = function () {
            myChart.resize();
        }
        myChart.setOption(option);
    }
</script>
</html>

3、关键代码解析:

3.1、坐标名称显示位置:设置nameLocation属性,middle 表示居中显示 、end表示右边显示、start表示左边显示;

注意:nameTextStyle的padding属性可以设置坐标名称的位置,经实验4.2.0以下版本不支持;

3.2、坐标轴名称显示:设置axisLabel属性的interval为0,表示Y轴信息全部显示,rotate为-30,表示-30度角倾斜显示;

3.3、数据排序方式:inverse为true表示以倒序的方式排序;   

3.4、设置自适应容器高度:      

var container = document.getElementById('main');
var allNode = menuList.length;  // 获取显示数据的条数
var currentHeight = 55 * allNode;
container.style.height = currentHeight + 'px'; //设置容器高度
var myChart = echarts.init(document.getElementById('main'));    
myChart.setOption(option);

4、效果图:

二、柱状图和折线图混搭

     此例子主要是让柱状图的零刻度线和折线图的零刻度保持一致,并且折线图有负数显示。主要是通过设置yAxis的最大值和最小值控制的。

注意:请使用4.0版本以上,4.0一下版本不支持。

1、代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>折线和柱状混搭</title>
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts-all-3.js"></script>

</head>
<body>
    <div id="mychart" style="width: 1000px;height: 500px"></div>
</body>
<script>
    $(function () {
        var myChart = echarts.init(document.getElementById("mychart"));
        option = {
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    type: 'cross',
                    crossStyle: {
                        color: '#999'
                    }
                }
            },
            color: ['#5b9bd5','#ed7d31'],
            legend: {
                data:['降水量','平均温度']
            },
            xAxis: [
                {
                    type: 'category',
                    data: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
                    axisPointer: {
                        type: 'shadow'
                    }
                }
            ],
            yAxis: [
                {
                    type: 'value',
                    name: '水量',
                    max: function(value) {
                        if(Math.abs(value.max) > Math.abs(value.min)){
                            return (Math.abs(value.max)).toFixed(2);
                        }else{
                            return (Math.abs(value.min)).toFixed(2);
                        }
                    },
                    min: function(value) {
                        if(Math.abs(value.max) > Math.abs(value.min)){
                            return (-Math.abs(value.max)).toFixed(2);
                        }else{
                            return (-Math.abs(value.min)).toFixed(2);
                        }
                    },
                    axisLabel: {
                        margin: 2,
                        formatter: function (value, index) {
                            if (value > 0) {
                                value = value + "ml";
                            } else {
                                value = "";
                            }
                            return value;
                        }
                    },
                    splitLine:{
                        lineStyle:{
                            color:'rgba(91,155,213,0.3)',
                            type:'solid'
                        }
                    }
                },
                {
                    type: 'value',
                    name: '温度',
                    max: function(value) {
                        if(Math.abs(value.max) > Math.abs(value.min)){
                            return (Math.abs(value.max)).toFixed(2);
                        }else{
                            return (Math.abs(value.min)).toFixed(2);
                        }
                    },
                    min: function(value) {
                        if(Math.abs(value.max) > Math.abs(value.min)){
                            return (-Math.abs(value.max)).toFixed(2);
                        }else{
                            return (-Math.abs(value.min)).toFixed(2);
                        }
                    },
                    axisLabel: {
                        formatter: '{value} °C'
                    },
                    splitLine:{
                        lineStyle:{
                            color:'rgba(237,125,49,0.3)',
                            type:'solid'
                        }
                    }
                }
            ],
            series: [
                {
                    name:'降水量',
                    type:'bar',
                    data:[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
                    label: {
                        normal: {
                            show: true,            //显示数字
                            position: 'top'       //这里可以自己选择位置
                        }
                    }
                },
                {
                    name:'平均温度',
                    type:'line',
                    yAxisIndex: 1,
                    data:[2.0, -2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
                    label: {
                        normal: {
                            show: true,            //显示数字
                            position: 'top'       //这里可以自己选择位置
                        }
                    }
                }
            ]
        };

        window.onresize = function () {
            myChart.resize();
        }

        //加载图
        myChart.setOption(option);
    });
</script>
</html>

2、效果图

 

echarts%E7%94%BB%E5%9B%BE">三、一个项目里同时用不同版本的echarts画图

 1、 需求:在项目中需要用到echarts新版本的功能,但是发现项目中一直用的是老版本的echarts,假如直接升级echarts版本就会影响之前echarts图的一下功能;

  2、实现:下载新版本的echarts同时在项目中引入进来,再修改新版本的echarts.js文件,把echarts.js文件中所有的‘echarts’改成‘echarts4’(如果你下载的是echarts.4.0.x 的版本就改成‘echarts4’;如果是echarts.5.0.x 或其他的,就改成 ‘echarts5’或 其他的);

  3、 用法:

var myChart = echarts4.init(document.getElementById("mychart"));

4、具体场景:

      4.1、项目中在同一页面同时显示一个柱状图和折线图混搭的图表,并且柱状 图只有正数,而折线图有负数,客户要求柱状图和折线图的零刻度线保持一致(4.0版本一下的无法实现)。

     4.2、在柱状图和折线图混搭的图表的同一页面显示一个雷达图,需要显示默认数值,用的的是radar属性:axisLabel.show 属性4.0以上版本不支持,并且会报错无法加载图表,错误信息:Uncaught TypeError: e.getCategories is not a function 。只能用4.0一下的版本(用不同的版本实现)。

 radar: {
        indicator: [
           { 
             text: '销售', 
             axisLabel: {
                show: true,  // 此属性不支持,会报错
                textStyle: {
                     fontSize: 18, 
                     color: '#333'
                 }
              }, 
             max: 6500
            },
            { 
              text: '管理',  
              max: 16000
           }     
        ]                      
    }

5、最终效果如下

 

 


http://www.niftyadmin.cn/n/857092.html

相关文章

JS实现图片自动播放

一、JS实现图片自动播放 1、先看效果图 2、完整代码 <!DOCTYPE html> <html> <head><style>/* 定义样式 */body{margin: 5% 30%;}.bannerimage{width:700px;height:400px;float:left;background-size:100% 100%;color:#fff;box-shadow: 0 0 12px 2px…

matlab计算奇异值和正交矩阵,奇异值、奇异矩阵、SVD分解、正交矩阵

奇异值&#xff1a;奇异值分解法是线性代数中一种重要的矩阵分解法&#xff0c;在信号处理、统计学等领域有重要应用。定义&#xff1a;设A为m*n阶矩阵&#xff0c;A表示A的转置矩阵&#xff0c;A*A的n个特征值的非负平方根叫作A的奇异值。记为σi(A)。如果把A‘*A的特征值记为…

使用My97DatePicker封装一个双选日期组件

由于项目中使用My97DatePicker作为日期控件&#xff0c;额外不用其它日期组件。但是项目需要用到双选日期&#xff0c;一方面放两个空间有限&#xff0c;另一方面看起也不太美观&#xff0c;所以就简单的自己封装一个。 一、准备工作 My97DatePicker下载&#xff1a;http://ww…

jpa oracle默认序列,為什么使用帶有Oracle 10g方言的Hibernate使用JPA創建一個名為hibernate_sequence的序列?...

4I see the following code in org.hibernate.id.SequenceGenerator:我在org.hibernate.id.SequenceGenerator中看到以下代碼:public void configure(Type type, Properties params, Dialect dialect) throws MappingException {ObjectNameNormalizer normalizer ( ObjectName…

关闭linux系统命令是什么,linux shutdown关闭系统命令使用介绍

关闭、重启系统Linux是一个多用户、多任务系统&#xff0c;如果不正确地关闭或重启系统&#xff0c;可能会导致系统中的用户数据丢失。可能的情况是用户正在执行某个关键的运算或操作等&#xff0c;如果不经提示关闭系统&#xff0c;用户将来不及保存当前数据&#xff0c;从而导…

内网穿透之HTTP穿透

一、内网穿透 在很多开发的时候需要临时体验开发时往往没有公网域名或者公网IP&#xff0c;本篇介绍一个有钉钉官方提供的一个公网代理服务&#xff0c;目的是方便开发测试。 二、准备工作 1、官方文档&#xff1a;https://open-doc.dingtalk.com/microapp/kn6zg7/hb7000 2、…

.a 和.o 合并成一个.a_泉美环保为您讲解地埋式污水处理设备A/O工艺详情

不管什么类型的废水处理设备工艺都是其中的核心部分&#xff0c;而A/O工艺可以说是目前地埋式污水处理设备使用比较广泛成熟的一种工艺&#xff0c;虽然算不上很先进的工艺但是胜在处理效果稳定、质优价廉&#xff0c;还是比较推荐大家了解使用的。今天泉美环保公司就给您详解介…

JS实现数字翻牌效果

JS实现数字变化翻牌效果 一、效果图如下&#xff1a; 二、代码如下&#xff1a; 注意&#xff1a;需要引入JQuery.js。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>数字翻牌器</title>&…