Echarts大屏可视化_04 横向柱状图模块的引入和开发

模块的引入

1.寻找官方示例引入

ECharts官方实例入口

 2.引入示例

ECharts 示例 可从这里直接进入

标题、提示信息、图例都不需要所以直接删掉  

 <div class="column">
        <div class="panel bar2">
          <h2>柱状图-技能掌握</h2>
          <div class="chart"></div>
          <div class="panel-footer"></div>
        </div>
        <div class="panel line1">
          <h2>折线图-播放量</h2>
          <div class="chart"></div>
          <div class="panel-footer"></div>
        </div>
        <div class="panel pie1">
          <h2>饼形图-地区分布</h2>
          <div class="chart"></div>
          <div class="panel-footer"></div>
        </div>
      </div>

 这里要注意是 改为bar2  因为要在这里面添加

//柱状图2模块
(function () {
  var myChart = echarts.init(document.querySelector(".bar2 .chart"));
  let option = {
    grid: {
      left: "3%",
      right: "4%",
      bottom: "3%",
      containLabel: true,
    },
    xAxis: {
      type: "value",
      boundaryGap: [0, 0.01],
    },
    yAxis: {
      type: "category",
      data: ["Brazil", "Indonesia", "USA", "India", "China", "World"],
    },
    series: [
      {
        name: "2011",
        type: "bar",
        data: [18203, 23489, 29034, 104970, 131744, 630230],
      },
      {
        name: "2012",
        type: "bar",
        data: [19325, 23438, 31000, 121594, 134141, 681807],
      },
    ],
  };
  myChart.setOption(option);
})();

 

定制开发

1.修改x轴、y轴、网格样式

// 修改网格
    grid: {
      top: "10%",
      left: "22%",
      bottom: "10%",
      // containLabel: true,
    },
    // 不显示x轴相关信息
    xAxis: {
      show: false,
    },
    // 不显示y轴线和相关刻度
    yAxis: {
      type: "category",
      data: ["巴西", "Indonesia", "USA", "India", "China"],
      // 不显示y轴线
      axisLine: {
        show: false,
      },
      // 不显示刻度 
      axisTick: {
        show: false,
      },
      // 把刻度标签里面的文字颜色设置为白色
      axisLabel: {
        color: "#fff",
      },
    },

2. 圆柱样式修改

1.第一组柱子基本样式修改

series: [
      // 第一组柱子
      {
        name: "条",
        type: "bar",
        data: [18203, 23489, 29034, 104970, 131744],
        // 修改第一组柱子的圆角
        itemStyle: {
          barBorderRadius: 20,
        },
        // 修改柱子之间的距离
        barCategoryGap: 50,
        // 柱子的宽度
        barWidth: 10,
        // 显示柱子内的文字
        label: {
          show: true,
          // 图形内显示
          position: "inside",
          // 文字的显示格式   {c}会自动解析为数据data里面的数据
          formatter: "{c}%",
        },
      },
      //第二组柱子
      {
        name: "2012",
        type: "bar",
        data: [19325, 23438, 31000, 121594, 134141],
      },
    ],

 

2.第一组柱子颜色修改

五个柱子都是不同颜色的,在这里我们使用函数的方式来设置。

先看一下 在echarts 提供的params给我们的是什么内容

 itemStyle: {
          barBorderRadius: 20,
          // 使用函数设置柱子颜色
          color: function (params) {
            console.log(params);
          },
        },

 发现每个对象对用的就是每个柱子,所以我们的方法来了

 我们在实例化echarts上面创建一个颜色数组。

  // 颜色数组
  var myColor = ["#1089E7", "#F57474", "#56D0E3", "#F8B448", "#8B78F6"];

 通过params的索引 来动态的返回颜色的值

itemStyle: {
   barBorderRadius: 20,
   // 使用函数设置柱子颜色
   color: function (params) {
     return myColor[params.dataIndex];
   },
 },

3. 第二组柱子的基本样式修改

//第二组柱子
      {
        name: "框",
        type: "bar",
        data: [19325, 23438, 31000, 121594, 134141],
        // 修改柱子之间的距离
        barCategoryGap: 50,
        // 柱子的宽度
        barWidth: 15,
        // 修改第一组柱子的圆角
        itemStyle: {
          // 不要颜色
          color: "none",
          // 边框颜色
          borderColor: "#00c1de",
          // 边框宽度
          borderWidth: 3,
          // 柱子圆角
          barBorderRadius: 15,
        },
      },

4.第二组柱子 y轴后侧内容显示

 我们需要在每一个柱子后面加一个数字显示,这个跟y轴相关,所以我们要扩展y轴

因为yAxis属性 可以是一个数组,所以我们用数组来承载值,做这个效果。

yAxis: [
      {
        type: "category",
        data: ["巴西", "Indonesia", "USA", "India", "China"],
        // 不显示y轴线
        axisLine: {
          show: false,
        },
        // 不显示刻度
        axisTick: {
          show: false,
        },
        // 把刻度标签里面的文字颜色设置为白色
        axisLabel: {
          color: "#fff",
        },
      },
      {
        show: true,
        data: [702, 350, 610, 793, 664],
        // 不显示y轴线
        axisLine: {
          show: false,
        },
        // 不显示刻度
        axisTick: {
          show: false,
        },
        // 把刻度标签里面的文字颜色设置为白色
        axisLabel: {
          color: "#fff",
          fontSize: 12,
        },

      },
    ],

 5.第二组柱子 包含第一组柱子的实现+数据替换

层叠性的实现直接使用yAxisIndex这个属性就可以。

  let option = {
    // 修改网格
    grid: {
      top: "10%",
      left: "22%",
      bottom: "10%",
      // containLabel: true,
    },
    // 不显示x轴相关信息
    xAxis: {
      show: false,
    },
    // 不显示y轴线和相关刻度
    yAxis: [
      {
        type: "category",
        data: ["HTML", "JavaScript", "Vue", "React", "jQuery"],
        // 不显示y轴线
        axisLine: {
          show: false,
        },
        // 不显示刻度
        axisTick: {
          show: false,
        },
        // 把刻度标签里面的文字颜色设置为白色
        axisLabel: {
          color: "#fff",
        },
      },
      {
        show: true,
        data: [702, 350, 610, 793, 664],
        // 不显示y轴线
        axisLine: {
          show: false,
        },
        // 不显示刻度
        axisTick: {
          show: false,
        },
        // 把刻度标签里面的文字颜色设置为白色
        axisLabel: {
          color: "#fff",
          fontSize: 12,
        },
      },
    ],
    series: [
      // 第一组柱子
      {
        name: "条",
        type: "bar",
        data: [70, 34, 60, 78, 69],
        // 柱子的层叠性 
        yAxisIndex: 0,
        // 修改第一组柱子的圆角
        itemStyle: {
          barBorderRadius: 20,
          // 使用函数设置柱子颜色
          color: function (params) {
            return myColor[params.dataIndex];
          },
        },
        // 修改柱子之间的距离
        barCategoryGap: 50,
        // 柱子的宽度
        barWidth: 10,
        // 显示柱子内的文字
        label: {
          show: true,
          // 图形内显示
          position: "inside",
          // 文字的显示格式   {c}会自动解析为数据data里面的数据
          formatter: "{c}%",
        },
      },
      //第二组柱子
      {
        name: "框",
        type: "bar",
        data: [100, 100, 100, 100, 100],
        // 柱子的层叠性
        yAxisIndex: 1,
        // 修改柱子之间的距离
        barCategoryGap: 50,
        // 柱子的宽度
        barWidth: 15,
        // 修改第一组柱子的圆角
        itemStyle: {
          // 不要颜色
          color: "none",
          // 边框颜色
          borderColor: "#00c1de",
          // 边框宽度
          borderWidth: 3,
          // 柱子圆角
          barBorderRadius: 15,
        },
      },
    ],
  };

我们发现数据的显示反了,从下面开始渲染的,我们解决一下这个问题。

在echarts中 有一个inverse反向坐标 将它改为true就可以解决了。

6. 数组数据倒置修改

7.当然,我们也要做窗口大小的适配

  // 侦听屏幕的变化,让图表跟着变化
  window.addEventListener("resize", function () {
    myChart.resize();
  });
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
解决方案 ECharts 是一个基于 JavaScript 的开源可视化库,可用于创建交互式图表和地图。通过使用 ECharts,您可以轻松地从大量数据中提取信息,并通过可视化展示数据,使其更直观地理解。ECharts 提供了多种类型的图表,包括柱状图、折线图、散点图、饼图、K 线图等,还支持地图和 3D 的图表类型。 如果您想使用 ECharts 创建大屏可视化应用程序,可以考虑使用以下步骤: 1. 确定需求和数据:首先,您需要明确您的业务需求和数据来源。了解您要展示的数据类型,以及数据的规模和格式。 2. 选择合适的图表类型:根据您的数据类型和需求,选择合适的 ECharts 图表类型。例如,如果您要展示各个城市的销售额数据,可以选择地图或热力图类型的图表。 3. 自定义样式和交互:根据您的需求,自定义图表的样式和交互。ECharts 提供了丰富的配置项,您可以根据自己的需要调整图表的样式和交互。 4. 集成到您的应用程序中:将 ECharts 图表嵌入到您的应用程序中。ECharts 提供了多种集成方式,包括通过 JavaScript API、Vue 组件和 React 组件等方式集成。 5. 优化和调试:最后,对您的大屏可视化应用程序进行优化和调试。可以使用 ECharts 提供的性能分析工具和调试工具来对应用程序进行调试和优化。 总之,使用 ECharts 创建大屏可视化应用程序可以帮助您更好地展示数据,提高数据的可读性和可理解性,从而更好地支持您的业务决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Web阿成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值