iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >详解如何利用JavaScript绘制堆叠柱状图
  • 481
分享到

详解如何利用JavaScript绘制堆叠柱状图

2024-04-02 19:04:59 481人浏览 独家记忆
摘要

效果图 this.state.workChartList的数据结构 const workChartList = [ { name: "居民热线", chartData: [5,

效果图

this.state.workChartList的数据结构

const workChartList = [
 { name: "居民热线", chartData: [5, 8, 8, 7, 0, 5, 6, 5, 9, 5, 4, 7] },
 { name: "日常调度类", chartData: [5, 6, 8, 8, 5, 8, 5, 9, 8, 7, 3, 6] },
 { name: "调度预警类", chartData: [6, 8, 8, 7, 4, 6, 6, 9, 6, 8, 5, 3] },
 { name: "抢维修类", chartData: [1, 2, 3, 1, 4, 5, 6, 3, 9, 7, 8, 7] },
 { name: "物质申请类", chartData: [5, 8, 8, 7, 0, 5, 6, 5, 9, 5, 4, 7] },
 { name: "其他类", chartData: [5, 6, 8, 8, 5, 8, 5, 9, 8, 7, 6, 0] },
];

option相关代码 关键是每个serise需要设置同样的stack属性

	var colorList = ["#72fbfd", "#56c2f9", "#2e69e9", "#7a23f5", "#8082f7", "#ab4399"];
    const xData = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"];
    var option = {
      tooltip: {
        trigger: 'axis',
        axisPointer: { type: 'shadow' },
        backgroundColor: "#030e2d",
        borderColor: "#030e2d",
        textStyle: {
          fontSize: "12px",
          color: "#96A4F4",
        },
      },
      color: colorList,
      legend: {
        left: "center",
        itemWidth: 10,
        itemHeight: 10,
        textStyle: {
          fontSize: "12px",
          color: "#96A4F4",
          padding: [3, 0, 0, 0],
        },
      },
      grid: {
        left: 20,
        bottom: 20,
        top: 30,
        right: 20,
      },
      xAxis: {
        name: "\n\n(月)",
        type: "cateGory",
        nameTextStyle: {
          color: "#7089ba",
          fontSize: "10px"
        },
        nameGap: -9,
        axisLabel: {
          interval: 0,
          textStyle: {
            color: "#7089ba",
            fontSize: "10px"
          },
          margin: 6, //刻度标签与轴线之间的距离。
        },
        axisLine: {
          lineStyle: {
            color: "#414965",
          },
        },
        axisTick: {
          show: false,
        },
        data: xData,
      },
      yAxis: {
        type: "value",
        axisLabel: {
          textStyle: {
            color: "#7089ba",
            fontSize: "10px",
          },
        },
        axisLine: {
          show: false,
        },
        axisTick: {
          show: false,
        },
        splitLine: {
          lineStyle: {
            color: "#414965",
            opacity: 0.3,
          },
        },
      },
      series: [],
    };
    if (!this.state.workChartList) return;
    const seriesItem = this.state.workChartList;
    seriesItem.map((item, index) => {
      option.series.push({
        name: item.name,
        type: "bar",
        stack: "总数",
        barWidth: '50%',
        label: {
          show: false,
          position: "insideRight",
        },
        data: item.value,
        itemStyle: {
          nORMal: {
            label: {
              show: false, //开启显示
              position: "top", //在上方显示
              textStyle: {
                //数值样式
                color: "#fff",
                fontSize: "12px",
                fontWeight: 100,
              },
            },
          },
        },
      });
    });
    this.Chart_init2 = echarts.init(this.Chart_dom2.current);
    this.Chart_init2.clear();
    this.Chart_init2.setOption(option);

补充

当然javascript不仅能绘制堆叠柱状图,还能绘制折柱混合图

效果图:

数据结构

const nrwData = [
      { label: "10", proviceWater: "100.45", userWater: "55", nrwRate: 80.65 },
      { label: "11", proviceWater: "80", userWater: "80", nrwRate: 70 },
      { label: "12", proviceWater: "81.45", userWater: "67", nrwRate: 89 },
      { label: "01", proviceWater: "145.45", userWater: "140.45", nrwRate: 55 },
      { label: "02", proviceWater: "60.45", userWater: "45", nrwRate: 43.65 },
      { label: "03", proviceWater: "55", userWater: "50", nrwRate: 85.65 },
      { label: "10", proviceWater: "100.45", userWater: "55", nrwRate: 80.65 },
      { label: "11", proviceWater: "80", userWater: "80", nrwRate: 70 },
      { label: "12", proviceWater: "81.45", userWater: "67", nrwRate: 89 },
      { label: "01", proviceWater: "145.45", userWater: "140.45", nrwRate: 55 },
      { label: "02", proviceWater: "60.45", userWater: "45", nrwRate: 43.65 },
      { label: "03", proviceWater: "55", userWater: "50", nrwRate: 85.65 }
    ];

具体代码

var xData3 = nrwData?.map((item) => item.label);
const proviceWater = nrwData?.map((item) => item.proviceWater <= 0 ? 0 : item.proviceWater);
const userWater = nrwData?.map((item) => item.userWater <= 0 ? 0 : item.userWater);
const lineData = nrwData?.map((item) => item.nrwRate >= 100 ? 0 : item.nrwRate);
var option = {
      tooltip: {
        trigger: "axis",
        show: true,
        backgroundColor: "rgba(16, 34, 79, 0.9)",
        borderColor: "#274370",
        textStyle: {
          color: "#fff",
          fontSize: 8,
        }
      },
      legend: {
        show: true,
        itemWidth: 20,
        itemHeight: 10,
        itemGap: 10,
        textStyle: {
          fontSize: 10,
          color: "#ccc",
        },
      },
      grid: {
        left: 30,
        bottom: 20,
        top: 30,
        right: 30,
      },
      xAxis: {
        data: xData3,
        name: "\n\n\n(月)",
        nameTextStyle: {
          color: "#7089ba",
          fontSize: "10px"
        },
        // 坐标轴刻度相关设置
        axisTick: {
          show: false,
        },
        nameGap: -9,
        // 坐标轴线的相关设置
        axisLine: {
          show: true,
          lineStyle: {
            color: "#414965",
          },
        },
        // 坐标轴刻度标签的相关设置
        axisLabel: {
          // 可以设置成 0 强制显示所有标签
          interval: 0,
          textStyle: {
            color: "#7089ba",
            fontSize: "10px"
          },
          margin: 10, //刻度标签与轴线之间的距离。
        },
      },
      yAxis: [{
        type: "value",
        name: "单位:万m³",
        nameTextStyle: {
          color: "#fff",
          fontSize: "10px"
        },
        // 坐标轴在grid区域中的分隔线
        splitLine: {
          show: false,
          lineStyle: {
            color: "#414965",
            opacity: 0.3,
          },
        },
        axisTick: {
          show: false,
        },
        axisLine: {
          show: false,
        },
        axisLabel: {
          textStyle: {
            color: "#7089ba",
            fontSize: "10px",
          },
        },
      },
      {
        type: "value",
        name: "产销差(%)",
        min: 0,
        max: 100,
        nameTextStyle: {
          color: "#fff",
          fontFamily: "PingFangSC-Light",
          fontSize: "10px",
        },
        axisLabel: {
          textStyle: {
            color: "#7089ba",
            fontSize: "10px"
          }
        },
        axisTick: {
          show: false,
        },
        axisLine: {
          show: false,
        },
        splitLine: {
          show: true,
          lineStyle: {
            color: "#414965",
            opacity: 0.3,
          },
        },
      },
      ],
      series: [
        {
          name: "供水量",
          type: "bar",
          barWidth: 10,
          itemStyle: {
            opacity: 0.1,
            normal: {
              show: true,
              color: "#8c3ed8",
              barBorderRadius: 0,
              borderWidth: 0,
            },
          },
          label: {
            show: false,//数据不进行显示
            position: "top",
            distance: 10,
            color: "#fff",
          },
          tooltip: {
            valueFormatter: function (value) {
              return value + "万m³";
            }
          },
          data: proviceWater,
        },
        {
          name: "用水量",
          type: "bar",
          barWidth: 10,
          itemStyle: {
            opacity: 0.1,
            normal: {
              show: true,
              color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
                {
                  offset: 0,
                  color: "#1134ac",
                },
                {
                  offset: 1,
                  color: "#4aaaf8",
                },
              ]),
              barBorderRadius: 0,
              borderWidth: 0,
            },
          },
          label: {
            show: false,//数据不进行显示
            position: "top",
            distance: 10,
            color: "#fff",
          },
          tooltip: {
            valueFormatter: function (value) {
              return value + "万m³";
            }
          },
          data: userWater,
        },
        
        {
          name: "产销差",
          type: "line",
          yAxisIndex: 1,
          z: 15,
          tooltip: {
            valueFormatter: function (value) {
              return value + "%";
            }
          },
          symbol: "circle",
          // symbolSize: 10,
          itemStyle: {
            normal: {
              color: "#84fbfb",
              borderColor: "#84fbfb",  //拐点边框颜色
              lineStyle: {
                color: "#84fbfb"//折线的颜色
              },
            },
          },
          data: lineData,
        }
      ],
    };

以上就是详解如何利用JavaScript绘制堆叠柱状图的详细内容,更多关于JavaScript柱状图的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解如何利用JavaScript绘制堆叠柱状图

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

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

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 详解如何利用JavaScript绘制堆叠柱状图
    效果图 this.state.workChartList的数据结构 const workChartList = [ { name: "居民热线", chartData: [5, ...
    99+
    2022-11-13
  • 怎么利用JavaScript绘制堆叠柱状图
    这篇文章主要讲解了“怎么利用JavaScript绘制堆叠柱状图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么利用JavaScript绘制堆叠柱状图”吧!效果图this.state.wor...
    99+
    2023-06-29
  • 如何在Python中使用ECharts绘制堆叠柱状图
    在数据可视化领域,堆叠柱状图是一种常见的可视化方式。它将多个数据系列绘制成一个条形,每个条形由多个子项组成,每个子项对应一个数据系列,在同一坐标系下进行展示。这种图表可以用于比较不同类别或数据系列的总大小、每个类别或数据系列的组成比例等。在...
    99+
    2023-12-17
    Python echarts 堆叠柱状图
  • Qt使用QWT绘制柱状图详解
    目录1:设置QChart的整体背景色2:设置有效区域的背景色3:设置X、Y坐标轴数据4:设置网格线5:插入实际数据6:X轴刻度值优化7:设置X轴文本偏移8:设置每个柱状体的宽度9:设...
    99+
    2022-11-13
  • 如何使用C#实现运行状态堆叠柱状图
    小编给大家分享一下如何使用C#实现运行状态堆叠柱状图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下需求通过柱状图显示设备运行时间停止时间,稼动率等通过...
    99+
    2023-06-29
  • Qt如何使用QWT绘制柱状图
    本文将为大家详细介绍“Qt如何使用QWT绘制柱状图”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Qt如何使用QWT绘制柱状图”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知...
    99+
    2023-06-28
  • python如何利用matplotlib绘制并列双柱状图并标注数值
    目录项目场景:代码:效果图:扩展功能及代码:补充:Python画图实现同一结点多个柱状图总结项目场景: Python项目需要画两组数据的双柱状图,以下以一周七天两位小朋友吃糖颗数为例...
    99+
    2022-11-10
  • QT如何利用QPainter绘制三维饼状图
    这篇“QT如何利用QPainter绘制三维饼状图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“QT如何利用QPainter绘...
    99+
    2023-07-02
  • 如何利用Python快速绘制海报级别地图详解
    目录1 简介2 利用prettymaps快速制作海报级地图2.1 prettymaps的几种使用方式2.1.1 圆形模式2.1.2 圆角矩形模式2.1.3 添加文字内容总结1 简介 ...
    99+
    2022-11-12
  • 详解如何利用Python绘制科赫曲线
    目录1. 递归1.1 定义1.2 数学归纳法2. 递归的使用方法2.1 阶乘2.2 字符串反转3. 科赫曲线的绘制3.1 概要3.2 绘制科赫曲线3.3 科赫曲线的雪花效果3.4 分...
    99+
    2022-11-11
  • 详解Python如何利用turtle绘制中国结
    目录导语一、中国结01 平安喜乐1)效果图2)附代码二、中国结02心想事成1)效果图2)附代码三、中国结03烟火年年总结导语 春节是中国特有的传统节日,中国结是中华民族特有...
    99+
    2022-11-13
  • 如何利用JavaScript读取excel文件并绘制echarts图形
    目录1、场景描述2、需求描述3、功能实现4、尾言1、场景描述 通常来说,前端要拿到excel数据,都是先上传存储数据库,然后再请求后端接口,获取数据。但有100个产品经理,就会有10...
    99+
    2022-11-13
  • 详解如何利用Python绘制迷宫小游戏
    目录构思绘制迷宫走出迷宫完整代码更大的挑战关于坐标系设置周末在家,儿子闹着要玩游戏,让玩吧,不利于健康,不让玩吧,扛不住他折腾,于是想,不如一起搞个小游戏玩玩! 之前给他编过猜数字 ...
    99+
    2022-11-13
  • 利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
    前言 最近工作中遇到了一些需求,想通过图形化的方式显示社交网络特定用户的好友关系,上网找了一下这方面的图形库有networkx、graphviz等,找了好久我选择了iGraph这个图形库。下面话不多说了,来...
    99+
    2022-06-04
    贴吧 详解 好友
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作