美文网首页程序员
Echarts柱状图折线图混合使用

Echarts柱状图折线图混合使用

作者: 祈澈菇凉 | 来源:发表于2019-09-16 15:54 被阅读0次

    前面用到的更多的是单个统计图,有些统计图里面,使用柱状图折线图混合使用的,下面写的是用ajax+json本地模拟数据,发送请求,渲染出一个柱状图折线图混合图表。

    一个练手的小demo,仅供参考:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>柱状图折线图混合使用</title>
            <script src="https://cdn.bootcss.com/echarts/4.2.1-rc1/echarts.min.js" type="text/javascript"></script>
            <script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
        </head>
        <style>
            .charts6 {
                background: #0d1c2e;
            }
        </style>
        <body>
            <div class="row">
                <div class="col-md-12  col-sm-12  col-xs-12 charts6">
                    <div id="main3" style="height: 200px;"></div>
                </div>
            </div>
        </body>
        <script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
        <script type="text/javascript">
            // 折线图
            $.ajax({
                url: "test.json",
                data: {},
                type: 'GET',
                success: function(data) {
                    console.log(JSON.stringify(data))
                    dFun(data.echatX, data.echatY, data.echatY2);
    
                },
            });
            
            // 基于准备好的dom,初始化echarts实例
            var dChart = echarts.init(document.getElementById('main3'));
            // 指定图表的配置项和数据
            function dFun(x_data, y_data, y2_data) {
                dChart.setOption({
                    title: {
                        left: 'left',
                        text: '概率',
                        show: false
                    },
                    tooltip: {
                        trigger: 'axis',
                        formatter: '{a}:{c}',
                        axisPointer: {
                            type: 'cross',
                            crossStyle: {
                                color: '#999'
                            }
                        }
                    },
                    grid: {
                        show: false,
                        top: '30',
                        bottom: '60',
                        right: '60',
                        left: '60'
                    },
                    legend: {
                        show: true,
                        selectedMode: 'single', // 设置显示单一图例的图形,点击可切换
                        bottom: 10,
                        left: 50,
                        textStyle: {
                            color: '#666',
                            fontSize: 12
                        },
                        itemGap: 20,
                        inactiveColor: '#ccc'
                    },
                    xAxis: {
                        splitLine: {     show: false   },
                        type: 'category',
                        data: x_data,
                        axisPointer: {
                            type: 'shadow'
                        },
                        // 改变x轴颜色
                        axisLine: {
                            lineStyle: {
                                color: '#00a2e2',
                                width: 1, // 这里是为了突出显示加上的
                            }
                        },
                        axisTick: {
                            show: true,
                            interval: 0
                        },
                    },
                    // 设置两个y轴,左边显示数量,右边显示概率
                    yAxis: [{
                            splitLine: {     show: false   },
                            type: 'value',
                            name: '数量',
                            max: 1000,
                            min: 0,
                            show: true,
                            interval: 500,
                            // 改变y轴颜色
                            axisLine: {
                                lineStyle: {
                                    color: '#00a2e2',
                                    width: 1, // 这里是为了突出显示加上的
                                }
                            },
                        },
    
                        // 右边显示概率
                        {
                            splitLine: {     show: false   },
                            type: 'value',
                            name: '概率',
                            min: 0,
                            max: 100,
                            interval: 10,
                            // 改变y轴颜色
                            axisLine: {
                                lineStyle: {
                                    color: '#00a2e2',
                                    width: 1, // 这里是为了突出显示加上的
                                }
                            },
                            axisLabel: {
                                formatter: '{value} %'
                            }
                        }
    
                    ],
    
                    // 每个设备分数量、概率2个指标,只要让他们的name一致,即可通过,legeng进行统一的切换
                    series: [{
                            name: '',
                            type: 'bar',
                            symbol: 'circle', // 折线点设置为实心点
                            symbolSize: 6, // 折线点的大小
    
                            data: y_data,
                            barWidth: '50%',
    
                        },
                        {
                            //折线
                            name: '',
                            type: 'line',
                            symbol: 'circle', // 折线点设置为实心点
                            symbolSize: 6, // 折线点的大小
    
                            yAxisIndex: 1, // 这里要设置哪个y轴,默认是最左边的是0,然后1,2顺序来。
                            data: y2_data,
                            symbolSize: 10,
                            itemStyle: {
                                normal: {
                                    color: "#DDA0DD"
                                }
    
                            }
    
                        },
    
                    ]
    
                });
            }
        </script>
    </html>
    

    自己写的一个test.json模拟数据:

    {
        "echatX": [
            "2019-07-02",
            "2019-07-03",
            "2019-07-04",
            "2019-07-05",
            "2019-07-06",
            "2019-07-07",
            "2019-07-08",
            "2019-07-09",
            "2019-07-10",
            "2019-07-11",
            "2019-07-12",
            "2019-07-13",
            "2019-07-14",
            "2019-07-15"
        ],
        "echatY": [
            501,210,123,333,445,157,151,369,101,101,350,435,153,100
        ],
        "echatY2": [
          80,40,13,36,57,77,41,39,61,31,60,73,33,50
        ],
        "peopleTotal":15,"peopleOnline":4,"peopleOutline":12,"ranges":[]
    }
    
    

    原文作者:祈澈姑娘 技术博客:https://www.jianshu.com/u/05f416aefbe1
    90后前端妹子,爱编程,爱运营,文艺与代码齐飞,魅力与智慧共存的程序媛一枚。

    相关文章

      网友评论

        本文标题:Echarts柱状图折线图混合使用

        本文链接:https://www.haomeiwen.com/subject/bspxuctx.html