iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Echarts Bar横向柱状图实例代码
  • 457
分享到

Echarts Bar横向柱状图实例代码

2024-04-02 19:04:59 457人浏览 薄情痞子
摘要

目录横向柱状图动态更新数据和样式解决 echarts 宽高自适应问题纵向柱状图纵向柱状图实现坐标指示器背景渐变色柱体设置不同颜色柱状图上方显示数值tooltip 提示框自定义总体实现

接上一篇# Echart Bar柱状图样式详解续写,可以先看看上一篇,不看的话,影响也不是特别大。

横向柱状图

动态更新数据和样式

实现数据按月统计和按日统计的动态切换。按月统计时,每个月数据都会展示,x 轴显示 12 个标签;按日统计时,x 轴不完全显示所有标签,间隔显示,而且柱状体的宽度也会变化。主要是采用的是setOption方法。

官方文档[setOption]:echarts.apache.org/zh/api.html


<script>
  import * as R from "ramda";

  const source1 = [
    ["1月", 1330, 666, 560],
    ["2月", 820, 760, 660],
    ......
    ["11月", 901, 880, 360],
    ["12月", 934, 600, 700],
  ];
  const source2 = [
    ["1日", 1330, 666, 560],
    ["2日", 820, 760, 660],
    ......
    ["29日", 934, 600, 700],
    ["30日", 1330, 666, 560],
  ];

  // 具体配置如之前所示,详细省略,只做基本示例展示
  const initOption = {
    ...
    dataset: { source: source1 },
  };

  export default {
    data() {
      return {
        charts: null,
        isDaily: false,
      };
    },
    mounted() {
      this.charts = this.$echarts.init(
        document.getElementById("barCharts"),
        null,
        {
          renderer: "svg",
        }
      );
      this.charts.setOption(R.clone(initOption));
    },
    methods: {
      handleSource() {
        this.isDaily = !this.isDaily;
        this.charts.setOption(
          R.mergeDeepRight(initOption, {
            // 动态更新数据源
            dataset: {
              source: this.isDaily ? source2 : source1,
            },
            xAxis: {
              // 动态更新标签间隔
              axisLabel: {
                interval: this.isDaily ? 4 : "auto",
              },
            },
            series: R.map(
              // 动态更新柱体宽度
              (o) => ((o.barWidth = this.isDaily ? 12 : 24), o),
              initOption.series
            ),
          }),
          true
        );
        this.charts.resize();
      },
    },
  };
</script>

解决 echarts 宽高自适应问题

WEB 项目中做图表时,图表的宽高不是固定的,需要随着浏览器宽度高度自适应,使用的方法就是resize。如果有多个图表,需要同时进行resize处理。


<script>
  export default {
    mounted() {
      window.addEventListener("resize", this.handleResize, false);
    },
    destroyed() {
      window.removeEventListener("resize", this.handleResize);
    },
    methods: {
      handleResize() {
        const _this = this;
        const timer = setTimeout(() => {
          _this.lineCharts.resize();
          _this.barCharts.resize();
        }, 500);
        // 清除定时器
        this.$once("hook:beforeDestroy", () => {
          setTimeout(timer);
        });
      },
    },
  };
</script>

纵向柱状图

纵向柱状图实现

本质和横向是一样的,就是将 x,y 轴值更换一下;x 轴为value,y 轴为cateGory


let option = {
  xAxis: {
    type: "value",
  },
  yAxis: {
    type: "category",
  },
};

坐标指示器背景渐变色

其实原理和横向的一样,就是渐变色处理的地方 x,y 值更换一下


let horizontalColor = {
  type: "linear",
  x: 1, // 更换
  y: 0,
  x2: 0,
  y2: 0, // 更换
  colorStops: [
    { offset: 0, color: "rgba(234,244,255,1)" },
    { offset: 1, color: "rgba(234,244,255,0.3)" },
  ],
  global: false,
};

柱体设置不同颜色

柱体的属性设置series中color可以是一个函数,在函数中处理。核心代码为colorList[params.dataIndex]


let colorList = [
  "#1890ff",
  "#52c41a",
  "#faad14",
  "#f5222d",
  "#1DA57A",
  "#d9d9d9",
];
let series = [
  {
    type: "bar",
    barWidth: 16,
    itemStyle: {
      // 定制显示(按顺序),实现不同颜色的柱体
      color: (params) => {
        return colorList[params.dataIndex];
      },
    },
    dimensions: ["类型", "销售数量"],
  },
];

柱状图上方显示数值

柱体的属性设置series中label可以是一个函数,在函数中处理。可以设置位置,字体颜色和大小等。核心代码为params.value[params.encode.x[0]]。


let series = [
  {
    // ......
    type: "bar",
    label: {
      // 柱图头部显示值
      show: true,
      position: "right",
      color: "#333",
      fontSize: "12px",
      fORMatter: (params) => {
        return params.value[params.encode.x[0]];
      },
    },
  },
];

tooltip 提示框自定义

和横向的一样,就是要注意取值params[0].axisValue, item.seriesName, item.value[item.encode.x[0]]


let tooltip = R.merge(tooltip, {
  formatter: function(params) {
    let html = `<div style="height:auto;width:163px;">
          <div style="font-size:14px;font-weight:bold;color:#333;margin-bottom:16px;line-height:1;">
            ${params[0].axisValue}
          </div>
          ${params
            .map(
              (
                item
              ) => `<div style="font-size:12px;color:#808080;margin-bottom:8px;display:flex;align-items:center;line-height:1;">
                <span style="display:inline-block;margin-right:8px;border-radius:6px;width:6px;height:6px;background-color:${
                  item.color
                };"></span>
                ${item.seriesName}
                <span style="flex:1;text-align:right;">${
                  item.value[item.encode.x[0]]
                }</span>
              </div>`
            )
            .join("")}
        </div>`;
    return html;
  },
});

总体实现


charts.setOption({
  title: {
    text: "销售数量分布",
  },
  dataset: {
    source: [
      ["苹果", 200],
      ["桃子", 180],
      ["葡萄", 340],
      ["香蕉", 250],
      ["芒果", 166],
      ["榴莲", 185],
    ],
  },
  xAxis: R.merge(yAxis, {
    type: "value",
  }),
  yAxis: R.mergeDeepRight(xAxis, {
    type: "category",
    axisPointer: {
      shadowStyle: {
        color: horizontalColor,
      },
    },
  }),
  series,
  tooltip,
});

总结

到此这篇关于Echarts Bar横向柱状图的文章就介绍到这了,更多相关Echarts Bar横向柱状图内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Echarts Bar横向柱状图实例代码

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

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

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

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

下载Word文档
猜你喜欢
  • Echarts Bar横向柱状图实例代码
    目录横向柱状图动态更新数据和样式解决 echarts 宽高自适应问题纵向柱状图纵向柱状图实现坐标指示器背景渐变色柱体设置不同颜色柱状图上方显示数值tooltip 提示框自定义总体实现...
    99+
    2024-04-02
  • vue echarts实现横向柱状图
    本文实例为大家分享了vue echarts实现横向柱状图的具体代码,供大家参考,具体内容如下 实现效果: 代码: <template> <div clas...
    99+
    2024-04-02
  • vue+echarts实现条纹柱状横向图
    本文实例为大家分享了vue+echarts实现条纹柱状横向图的具体代码,供大家参考,具体内容如下 实现效果: <template>   <div id="Busi...
    99+
    2024-04-02
  • Echarts横向堆叠柱状图和markLine实例详解
    目录1.Echarts 横向堆叠柱状图 + markLine效果图代码如下:2.Echarts 横向堆叠柱状图 + markLine效果图代码如下总结1.Echarts 横向堆叠柱状...
    99+
    2024-04-02
  • vue+echarts怎么实现条纹柱状横向图
    这篇“vue+echarts怎么实现条纹柱状横向图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue+echarts怎么实...
    99+
    2023-06-29
  • echarts怎么实现带百分比的横向柱状图
    这篇文章主要讲解了“echarts怎么实现带百分比的横向柱状图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“echarts怎么实现带百分比的横向柱状图”吧!实例代码var data...
    99+
    2023-06-25
  • echarts如何实现带百分比的横向柱状图
    目录实例代码效果图代码解析总结实例代码 var data = [220, 182, 191, 234, 290, 120, 65, 444]; var barWidth = 20...
    99+
    2024-04-02
  • Echarts横向堆叠柱状图和markLine怎么使用
    这篇文章主要介绍“Echarts横向堆叠柱状图和markLine怎么使用”,在日常操作中,相信很多人在Echarts横向堆叠柱状图和markLine怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ech...
    99+
    2023-06-30
  • vue实现横向斜切柱状图
    本文实例为大家分享了vue实现横向斜切柱状图的具体代码,供大家参考,具体内容如下 实现效果: 实现代码: <template> <div class="C...
    99+
    2024-04-02
  • React+CSS实现绘制横向柱状图
    前言: 页面一共分为两个结构 文字 + 渐变柱形图为一个部分,下面的标注为一个结构。 我们先看文字 + 渐变柱形图部分。 总体使用 flex 布局,左边文字部分占总体的 50%,右...
    99+
    2024-04-02
  • 基于Echarts实现绘制立体柱状图的示例代码
    目录前言实现方法先写一个常规的柱状图echarts的配置选项效果图前言 大家好,我是梁木由。之前在做大屏可视化项目时,UI设计了一个立体形状的柱状图,根据之前做的一些图表的项目没有能...
    99+
    2023-02-23
    Echarts绘制立体柱状图 Echarts立体柱状图 Echarts柱状图
  • ECharts​怎么实现柱状图
    这篇文章主要讲解了“ECharts怎么实现柱状图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ECharts怎么实现柱状图”吧! //1、引入JS文件 ...
    99+
    2024-04-02
  • python绘制横向水平柱状条形图
    python绘制横向水平柱状条形图Bar,供大家参考,具体内容如下 import matplotlib import random import matplotlib.pyplot ...
    99+
    2024-04-02
  • React less 实现纵横柱状图示例详解
    目录引言主要设计来源display 布局display 布局动态位置使用绝对定位styleJS引言 之前的文章,咱们介绍过横向和竖向,具体的内容,请看 React + CSS 绘制横...
    99+
    2024-04-02
  • echarts怎么实现3d柱状图
    本篇内容介绍了“echarts怎么实现3d柱状图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!echarts实现3d柱状图的两种方式看了不少...
    99+
    2023-07-05
  • vue+echarts实现堆叠柱状图
    本文实例为大家分享了vue+echarts实现堆叠柱状图的具体代码,供大家参考,具体内容如下 echarts-子组件 <template> <div cla...
    99+
    2024-04-02
  • Vue+Echarts实现柱状折线图
    本文实例为大家分享了Vue+Echarts实现柱状折线图的具体代码,供大家参考,具体内容如下 vue处理json数据渲染柱状折线图 HTML: <div id="lineCha...
    99+
    2024-04-02
  • Vue怎么使用Echarts实现横向柱状图并通过WebSocket即时通讯更新
    这篇文章主要介绍“Vue怎么使用Echarts实现横向柱状图并通过WebSocket即时通讯更新”,在日常操作中,相信很多人在Vue怎么使用Echarts实现横向柱状图并通过WebSocket即时通讯更新问题上存在疑惑,小编查阅了各式资料,...
    99+
    2023-07-05
  • echarts柱状堆叠图怎么实现
    本文小编为大家详细介绍“echarts柱状堆叠图怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“echarts柱状堆叠图怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。问题描述: &nbs...
    99+
    2023-07-05
  • echarts实现3d柱状图的2种方式举例
    目录echarts实现3d柱状图的两种方式方法1: echarts.graphic.extendShape 自定义图形方式2: 象型柱图(type: “pictorial...
    99+
    2023-02-23
    echarts柱状图 echarts 3d柱状图 echarts 3D立体堆叠柱状图
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作