返回顶部
首页 > 资讯 > 精选 >Echarts横向堆叠柱状图和markLine怎么使用
  • 327
分享到

Echarts横向堆叠柱状图和markLine怎么使用

2023-06-30 17:06:48 327人浏览 薄情痞子
摘要

这篇文章主要介绍“Echarts横向堆叠柱状图和markLine怎么使用”,在日常操作中,相信很多人在Echarts横向堆叠柱状图和markLine怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ech

这篇文章主要介绍“Echarts横向堆叠柱状图和markLine怎么使用”,在日常操作中,相信很多人在Echarts横向堆叠柱状图和markLine怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Echarts横向堆叠柱状图和markLine怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.Echarts 横向堆叠柱状图 + markLine

效果图

根据月份计算百分比展示markLine

Echarts横向堆叠柱状图和markLine怎么使用

思路: 根据月份计算百分比展示markLine,例如3月就是25%,这里的图表是数值,所以markLine要展示百分比需要进行一下计算,思路是在series里添加一个专门为了markLine处理的(这里是双柱子所以要采用这种方法,如果是单个柱子就不需要,可以直接在series里边项写markLine),具体计算方式在option代码上面,大家自行看一下这里不复制重复写了

验证:我这里的x轴隐藏掉了,大家为了验证计算的对不对可以把axisLabel show: 改为true,对比下数值和markLine值是否正确

代码如下:

mychart() {    var myChart = echarts.init(document.getElementById('profitTotal6'));    let echartData = [{        name: "其他",        value1: 64,        value2: 84,    },    {        name: "运输",        value1: 104,        value2: 164,    },    {        name: "化工",        value1: 619.59,        value2: 354.00,    },    {        name: "煤炭",        value1: 338.01,        value2: 154.00,    },    {        name: "光伏",        value1: 248.69,        value2: 934.00,    },    {        name: "风电",        value1: 556.43,        value2: 654.00,    },    {        name: "水电",        value1: 816.31,        value2: 354.00,    },    {        name: "火电",        value1: 221.87,        value2: 154.00,    }    ];    let xAxisData = echartData.map(v => v.name);    let yAxisData1 = echartData.map(v => v.value1);    let yAxisData2 = echartData.map(v => v.value2);    let bgdata = [];    echartData.map(item => {        bgdata.push(parseInt(item.value1 + item.value2) + 100);    })    let maxxAxis = Math.max.apply(null,bgdata);//设置x轴最大值    let date_ = new Date();    let month = date_.getMonth() + 1;    let markyAxis = maxxAxis / 12 * month;  //markLine值    let markyvalueText = parseInt(markyAxis / maxxAxis * 100); //为了控制百分样式    let paddingStyle;//根据数值动态设置padding样式    if (0 <= markyvalueText && markyvalueText < 10) {        paddingStyle = [10, 7];    } else if (10 <= markyvalueText && markyvalueText < 100) {        paddingStyle = [10, 5];    } else {        paddingStyle = [14, 5];    }    option = {        // tooltip: {        //     trigger: 'axis',        //     axisPointer: {        //         type: 'shadow'        //     }        // },        legend: {            data: ['年度投资完成额(滞后)', '年度投资计划'],            orient: "horizontal",//vertical            x: 'center',            // y: 'bottom',            // right: '-50%',            bottom: '2%',            icon: "roundRect1",            selectedMode: false,//取消图例上的点击事件            itemWidth: 16,  // 设置宽度            itemHeight: 10, // 设置高度            itemGap: 10,// 设置间距            textStyle: {//文字根据legend显示                 color: "#FFFFFF",                fontSize: 12,            },        },        grid: {            left: '8%',            top: '18%',            right: '8%',            bottom: '12%',            containLabel: true        },        yAxis: {            type: 'cateGory',            triggerEvent: true,            data: xAxisData,            axisLine: {                show: false            },            axisLabel: {                color: "#FFFFFF",                fontSize: '14',                // interval: 0,                // rotate: rotate//文字旋转角度            },            axisTick: {                show: false,                alignWithLabel: true,                lineStyle: {                    color: '#0C4F81',                    type: 'solid'                }            },        },        xAxis: {            type: 'value',            max: maxxAxis,            nameTextStyle: {                color: '#4F88BD',                padding: [0, 25, -5, 0],                fontSize: 12,                fontFamily: 'Microsoft YaHei',            },            axisLine: {                show: false,                lineStyle: {                    color: "#0C4F81"                }            },            axisLabel: {                show: false,//                color: "#4F88BD",                fontSize: '12',                fORMatter: '{value}'            },            splitLine: {                show: false,                lineStyle: {                    type: "dotted",                    color: "#0C4F81"                }            },            axisTick: {                show: false            },        },        series: [            {                name: '年度投资完成额(滞后)',                type: 'bar',                barMaxWidth: 15,                stack: 'Ad',                emphasis: {                    focus: 'series'                },                itemStyle: {                    normal: {                        label: {                            show: true,                            // position: 'top',                            color: '#ffffff'                        },                        color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{                            offset: 0,                            color: "rgba(128, 123, 254, 1)"                        },                        {                            offset: 1,                            color: "rgba(230, 143, 252, 1)"                        }                        ]),                    }                },                data: yAxisData1,            },            {                name: '年度投资计划',                type: 'bar',                barMaxWidth: 15,                stack: 'Ad',                emphasis: {                    focus: 'series'                },                itemStyle: {                    normal: {                        label: {                            show: true,                            // position: 'top',                            color: '#ffffff'                        },                        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{                            offset: 0,                            color: "rgba(13, 78, 137, 1)"                        },                        {                            offset: 1,                            color: "rgba(13, 78, 137, 1)"                        }                        ]),                    }                },                data: yAxisData2,            },            {                // 为了处理markline                name: '最长背景',                type: 'bar',                barMaxWidth: 5,                color: 'transparent',                data: bgdata,                markLine: {                    data: [                        { name: '考核临界线',xAxis:markyAxis},                    ],                    silent: true,                    symbol:'none',//去掉箭头                    itemStyle: {                        normal: {                            lineStyle: {                                color: '#FA7F3C',                                type: 'solid'                            },                            label:{                                // color: '#FA7F3C',                                formatter:'{c}%',                                show:true,                                backgroundColor: '#FFF7F2',                                color: '#DB6525',                                fontSize: '100%',                                borderColor: '#FFF7F2',                                formatter: function(v){                                    var s = parseInt(v.value / maxxAxis * 100);                                    return s + '%';                                },                                padding:paddingStyle,                                borderRadius: 50,                            }                        }                    },                },            },        ]    };    myChart.clear();    myChart.setOption(option);},

2.Echarts 横向堆叠柱状图 + markLine

效果图

根据数据计算百分比展示markLine

Echarts横向堆叠柱状图和markLine怎么使用

代码如下

根据数据计算百分比展示markLine,和上面基本同理,这个只是数值上的转换,和月份没有关系了

mychart() {    var myChart = echarts.init(document.getElementById('profitTotal2'));    let echartData = [{        name: "其他",        value1: 64,        value2: 84,    },    {        name: "运输",        value1: 104,        value2: 164,    },    {        name: "化工",        value1: 619.59,        value2: 354.00,    },    {        name: "煤炭",        value1: 338.01,        value2: 154.00,    },    {        name: "光伏",        value1: 248.69,        value2: 934.00,    },    {        name: "风电",        value1: 556.43,        value2: 654.00,    },    {        name: "水电",        value1: 816.31,        value2: 354.00,    },    {        name: "火电",        value1: 221.87,        value2: 154.00,    }    ];    let xAxisData = echartData.map(v => v.name);    let yAxisData1 = echartData.map(v => v.value1);    let yAxisData2 = echartData.map(v => v.value2);    let bgdata = [];    echartData.map(item => {        bgdata.push(parseInt(item.value1 + item.value2) + 100);    })    let maxxAxis = Math.max.apply(null,bgdata);//设置x轴最大值    let markyAxis = maxxAxis  * 0.9;  //markLine值90%    let markyvalueText = parseInt(markyAxis / maxxAxis * 100); //为了控制百分样式    let paddingStyle;//根据数值动态设置padding样式    if (0 <= markyvalueText && markyvalueText < 10) {        paddingStyle = [10, 7];    } else if (10 <= markyvalueText && markyvalueText < 100) {        paddingStyle = [10, 5];    } else {        paddingStyle = [14, 5];    }    option = {        // tooltip: {        //     trigger: 'axis',        //     axisPointer: {        //         type: 'shadow'        //     }        // },        legend: {            data: ['合同总额(预警)', '项目概算'],            orient: "horizontal",//vertical            x: 'center',            // y: 'bottom',            // right: '-50%',            bottom: '2%',            icon: "roundRect1",            selectedMode: false,//取消图例上的点击事件            itemWidth: 16,  // 设置宽度            itemHeight: 10, // 设置高度            itemGap: 10,// 设置间距            textStyle: {//文字根据legend显示                 color: "#FFFFFF",                fontSize: 12,            },        },        grid: {            left: '8%',            top: '18%',            right: '8%',            bottom: '12%',            containLabel: true        },        yAxis: {            type: 'category',            triggerEvent: true,            data: xAxisData,            axisLine: {                show: false            },            axisLabel: {                color: "#FFFFFF",                fontSize: '14',                // interval: 0,                // rotate: rotate//文字旋转角度            },            axisTick: {                show: false,                alignWithLabel: true,                lineStyle: {                    color: '#0C4F81',                    type: 'solid'                }            },        },        xAxis: {            type: 'value',            max: maxxAxis,            nameTextStyle: {                color: '#4F88BD',                padding: [0, 25, -5, 0],                fontSize: 12,                fontFamily: 'Microsoft YaHei',            },            axisLine: {                show: false,                lineStyle: {                    color: "#0C4F81"                }            },            axisLabel: {                show: false,                color: "#4F88BD",                fontSize: '12',                formatter: '{value}'            },            splitLine: {                show: false,                lineStyle: {                    type: "dotted",                    color: "#0C4F81"                }            },            axisTick: {                show: false            },        },        series: [            {                name: '合同总额(预警)',                type: 'bar',                barMaxWidth: 15,                // zlevel: 1,                stack: 'Ad',                emphasis: {                    focus: 'series'                },                itemStyle: {                    normal: {                        label: {                            show: true,                            // position: 'top',                            color: '#ffffff'                        },                        color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{                            offset: 0,                            color: "rgba(252, 175, 159, 1)"                        },                        {                            offset: 1,                            color: "rgba(241, 88, 135, 1)"                        }                        ]),                    }                },                data: yAxisData1,            },            {                name: '项目概算',                type: 'bar',                barMaxWidth: 15,                // zlevel: 1,                stack: 'Ad',                emphasis: {                    focus: 'series'                },                itemStyle: {                    normal: {                        label: {                            show: true,                            // position: 'top',                            color: '#ffffff'                        },                        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{                            offset: 0,                            color: "rgba(13, 78, 137, 1)"                        },                        {                            offset: 1,                            color: "rgba(13, 78, 137, 1)"                        }                        ]),                    }                },                data: yAxisData2,            },            {                // 为了处理markline                name: '最长背景',                type: 'bar',                barMaxWidth: 5,                // barGap: '-100%',                color: 'transparent',                // itemStyle: {                //     normal: {                //         color: '#1B375E',                //         barBorderRadius: 0,                //     },                // },                data: bgdata,                markLine: {                    data: [                        { name: '考核临界线',xAxis:markyAxis},                    ],                    silent: true,                    symbol:'none',//去掉箭头                    itemStyle: {                        normal: {                            lineStyle: {                                color: '#FA7F3C',                                type: 'solid'                            },                            label:{                                formatter:'{c}%',                                show:true,                                backgroundColor: '#FFF7F2',                                color: '#DB6525',                                fontSize: '100%',                                borderColor: '#FFF7F2',                                formatter: function(v){                                    var s = parseInt(v.value / maxxAxis * 100);                                    return s + '%';                                },                                padding:paddingStyle,                                borderRadius: 50,                            }                        }                    },                },            },        ]    };    myChart.clear();    myChart.setOption(option);},

到此,关于“Echarts横向堆叠柱状图和markLine怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Echarts横向堆叠柱状图和markLine怎么使用

本文链接: https://lsjlt.com/news/330772.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Echarts横向堆叠柱状图和markLine怎么使用
    这篇文章主要介绍“Echarts横向堆叠柱状图和markLine怎么使用”,在日常操作中,相信很多人在Echarts横向堆叠柱状图和markLine怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ech...
    99+
    2023-06-30
  • Echarts横向堆叠柱状图和markLine实例详解
    目录1.Echarts 横向堆叠柱状图 + markLine效果图代码如下:2.Echarts 横向堆叠柱状图 + markLine效果图代码如下总结1.Echarts 横向堆叠柱状...
    99+
    2024-04-02
  • echarts柱状堆叠图怎么实现
    本文小编为大家详细介绍“echarts柱状堆叠图怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“echarts柱状堆叠图怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。问题描述: &nbs...
    99+
    2023-07-05
  • 如何在Python中使用ECharts绘制堆叠柱状图
    在数据可视化领域,堆叠柱状图是一种常见的可视化方式。它将多个数据系列绘制成一个条形,每个条形由多个子项组成,每个子项对应一个数据系列,在同一坐标系下进行展示。这种图表可以用于比较不同类别或数据系列的总大小、每个类别或数据系列的组成比例等。在...
    99+
    2023-12-17
    Python echarts 堆叠柱状图
  • vue+echarts怎么实现条纹柱状横向图
    这篇“vue+echarts怎么实现条纹柱状横向图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue+echarts怎么实...
    99+
    2023-06-29
  • echarts怎么实现带百分比的横向柱状图
    这篇文章主要讲解了“echarts怎么实现带百分比的横向柱状图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“echarts怎么实现带百分比的横向柱状图”吧!实例代码var data...
    99+
    2023-06-25
  • 怎么利用JavaScript绘制堆叠柱状图
    这篇文章主要讲解了“怎么利用JavaScript绘制堆叠柱状图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么利用JavaScript绘制堆叠柱状图”吧!效果图this.state.wor...
    99+
    2023-06-29
  • echarts柱状堆叠图实现示例(图例和x轴都是动态的)
    目录问题描述:  实现思路及步骤:示例:代码:总结问题描述:   echarts柱状堆叠图,是很常用的图表,官网的例子很简单 。图例(lege...
    99+
    2023-05-14
    echarts柱状堆叠图 echarts柱状图叠加 echarts堆积柱状图
  • 如何使用C#实现运行状态堆叠柱状图
    小编给大家分享一下如何使用C#实现运行状态堆叠柱状图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下需求通过柱状图显示设备运行时间停止时间,稼动率等通过...
    99+
    2023-06-29
  • Vue怎么使用Echarts实现横向柱状图并通过WebSocket即时通讯更新
    这篇文章主要介绍“Vue怎么使用Echarts实现横向柱状图并通过WebSocket即时通讯更新”,在日常操作中,相信很多人在Vue怎么使用Echarts实现横向柱状图并通过WebSocket即时通讯更新问题上存在疑惑,小编查阅了各式资料,...
    99+
    2023-07-05
  • python怎么绘制横向水平柱状条形图
    这篇文章主要介绍“python怎么绘制横向水平柱状条形图”,在日常操作中,相信很多人在python怎么绘制横向水平柱状条形图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python怎么绘制横向水平柱状条形图...
    99+
    2023-06-30
  • Pyecharts教程(七):使用pyecharts创建堆叠柱状图的示例
    Pyecharts教程(七):使用pyecharts创建堆叠柱状图的示例 作者:安静到无声 个人主页 目录 Pyecharts教程(七):使用pyecharts创建堆叠柱状图的示例 完整代码 推荐专栏 ...
    99+
    2023-08-30
    信息可视化 数据分析 python 原力计划
  • Python怎么绘制百分比堆叠柱状图并填充图案
    这篇文章主要介绍“Python怎么绘制百分比堆叠柱状图并填充图案”,在日常操作中,相信很多人在Python怎么绘制百分比堆叠柱状图并填充图案问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么绘制百...
    99+
    2023-06-30
  • 怎么使用vue+echarts绘制折线图、柱状图和扇形图
    这篇“怎么使用vue+echarts绘制折线图、柱状图和扇形图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用vue+...
    99+
    2023-07-05
  • JS怎么使用canvas技术模仿echarts柱状图
    这篇文章主要介绍JS怎么使用canvas技术模仿echarts柱状图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!JavaScript是什么JavaScript是一种直译式的脚本语言,其解释器被称为JavaScrip...
    99+
    2023-06-14
  • 如何使用ECharts和Python接口生成堆叠区域图
    如何使用ECharts和Python接口生成堆叠区域图ECharts是一个基于JavaScript的开源可视化库,可以帮助我们创建交互式且美观的图表。利用ECharts的Python接口,我们可以使用Python代码来生成各种类型的图表,其...
    99+
    2023-12-17
    Python echarts 堆叠区域图
  • 使用Python怎么绘制柱状图和条形图
    今天就跟大家聊聊有关使用Python怎么绘制柱状图和条形图,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、实验目的:掌握Python中柱状图、条形图绘图函数的使用利用上述绘图函数实...
    99+
    2023-06-15
  • 怎么使用python plot画柱状图
    要使用Python的Matplotlib库来绘制柱状图,可以按照以下步骤操作:1. 导入必要的库:```pythonimport m...
    99+
    2023-09-20
    python
  • vue怎么使用echarts实现立体柱形图
    今天小编给大家分享一下vue怎么使用echarts实现立体柱形图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。立体柱形图是由...
    99+
    2023-06-29
  • 怎么利用echarts画雷达图和折柱混合
    本篇内容主要讲解“怎么利用echarts画雷达图和折柱混合”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么利用echarts画雷达图和折柱混合”吧!导语通常在根据设计图写echarts的时候,...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作