Skip to main content

Command Palette

Search for a command to run...

Echars 实现简单柱状图

Updated
2 min read

最简单的柱状图

柱状图的series typrbar

option = {
    xAxis:{
        data:['a','b','c','d','e']
    },
    yAxis:{

    },
    series:{
        type: 'bar',
        data:[1,2,3,4,5]
    }
}

image-20211112134243725

xAxis:类目型

yAxis:数值型

series:系列(指定数值)


多系列的柱状图

如果要实现多系列,我们可以把原先的字典类型修改为数组类型即可

option:{
    xAxis:{
         data:['a','b','c','d','e'],
    },
    yAxis:{

    },
    series:[
        {
            type:'bar',
            data:[1,2,3,4,5]
        },
        {
            type:'bar',
            data:[5,4,3,2,1]
        }
    ]
}

image-20211112191817646


柱状图样式设置

柱条样式

柱条的样式可以通过 series.itemStyle 设置

一些常用:

  • 柱条的颜色(color);
  • 柱条的描边颜色(borderColor)、宽度(borderWidth)、样式(borderType);
  • 柱条圆角的半径(barBorderRadius);
  • 柱条透明度(opacity);
  • 阴影(shadowBlurshadowColorshadowOffsetXshadowOffsetY)。

    我们可以设置stack属性来实现柱形叠加效果

stack自定义,相当于字典中的key

image-20211112205316561

option = {
  xAxis: {
    data: ["a", "b", "c", "d", "e"],
  },
  yAxis: {},
  series: [
    {
      type: "bar",
      data: [1, 2, 3, 4, 5],
      stack: "y",
    },
    {
      type: "bar",
      data: [1, 2, 3, 4, 5],
      stack: "y",
    },
  ],
};

柱条宽度和高度

柱条宽度可以通过 barWidth 设置。比如在下面的例子中,将 barWidth 设为 '20%',表示每个柱条的宽度就是类目宽度的 20%。

由于这个例子中,每个系列有 5 个数据,20% 的类目宽度也就是整个 x 轴宽度的 4%。

image-20211113103959753

option = {
  xAxis: {
    data: ["a", "b", "c", "d", "e"],
  },
  yAxis: {},
  series: [
    {
      type: "bar",
      data: [1, 2, 3, 4, 5],
      stack: "y",
      barWidth: "20%",
    }
  ],
};

另外,还可以设置 barMaxWidth 限制柱条的最大宽度。

对于一些特别小的数据,我们也可以为柱条指定最小高度 barMinHeight,当数据对应的柱条高度小于该值时,柱条高度将采用这个最小高度。

这里的数值参考对象均为整个图表的宽高

在同一坐标系上,此属性会被多个柱状图系列共享。

此属性应设置于此坐标系中最后一个柱状图系列上才会生效,并且是对此坐标系中所有柱状图系列生效。

image-20211113105030344

柱条间距

柱条间距分为两种:

一种是不同系列在同一类目下的距离 barWidth

另一种是类目与类目的距离 barCategoryGap

option = {
  xAxis: {
    data: ["a", "b", "c", "d", "e"],
  },
  yAxis: {},
  series: [
    {
      type: "bar",
      data: [1, 2, 3, 4, 5],
      barGap: '20%',
      barCategoryGap: '40%',
    },
    {
      type: "bar",
      data: [1, 2, 3, 4, 5],
    }
  ],
};

在这个例子中,barGap 被设为 '20%',这意味着每个类目(比如 A)下的两个柱子之间的距离,相对于柱条宽度的百分比。而 barCategoryGap'40%',意味着柱条每侧空余的距离,相对于柱条宽度的百分比。

通常而言,设置 barGapbarCategoryGap 后,就不需要设置 barWidth 了,这时候的宽度会自动调整。如果有需要的话,可以设置 barMaxWidth 作为柱条宽度的上限,当图表宽度很大的时候,柱条宽度也不会太宽。

柱条背景色

有时,我们希望能够为柱条添加背景色。从 ECharts 4.7.0 版本开始,这一功能可以简单地用 showBackground 开启,并且可以通过 backgroundStyle 配置。

image-20211113105429245

option = {
  xAxis: {
    data: ["a", "b", "c", "d", "e"],
  },
  yAxis: {},
  series: [
    {
      type: "bar",
      data: [1, 2, 3, 4, 5],
      showBackground: true,
      backgroundColor: {
        color: "rgba(220,220,220,0.8)",
      },
    },
  ],
};

More from this blog

【两万字总结】Spark 部署与入门

Spark 介绍 核心概念 Spark 是 UC Berkeley AMP lab 开发的一个集群计算的框架,类似于 Hadoop,但有很多的区别。 最大的优化是让计算任务的中间结果可以存储在内存中,不需要每次都写入 HDFS,更适用于需要迭代的 MapReduce 算法场景中,可以获得更好的性能提升。 例如一次排序测试中,对 100TB 数据进行排序,Spark 比 Hadoop 快三倍,并且只需要十分之一的机器。 Spark 集群目前最大的可以达到 8000 节点,处理的数据达到 PB 级别...

Oct 20, 202115 min read

【引言】浙大机器学习课程记录

机器学习的定义 第一种定义 ARTHUR SAMUEL对Machine learning 的定义 Machine Learning is Fields of study that gives computers the ability to learn without being explicitly programmed 机器学习是这样的领域,它赋予计算机学习的能力,(这种学历能力)不是通过显著式编程获得的 显著式编程 提前人为指定规律的编程方式 非显著式编程 让计算机自己总结规律的...

Oct 19, 20212 min read

TensorFlow 2 Keras实现线性回归

介绍 线性回归是入门机器学习必学的算法,其也是最基础的算法之一。 接下来,我们以线性回归为例,使用 TensorFlow 2 提供的 API 和 Eager Execution 机制对其进行实现。 线性回归是一种较为简单,但十分重要的机器学习方法,它也是神经网络的基础。 如下所示,线性回归要解决的问题就是如何找到最理想的直线去拟合散点样本。 对于一个线性回归问题,一般来讲有 2 种解决方法,分别是: 最小二乘法 代数求解 矩阵求解 梯度下降法。 本次,我们将使用梯度下降方法来解决线性回...

Oct 12, 20211 min read

TensorFlow 2 基础概念语法与常用模块

TensorFlow 2 简介 TensorFlow 是由谷歌在 2015 年 11 月发布的深度学习开源工具,我们可以用它来快速构建深度神经网络,并训练深度学习模型。运用 TensorFlow 及其他开源框架的主要目的,就是为我们提供一个更利于搭建深度学习网络的模块工具箱,使开发时能够简化代码,最终呈现出的模型更加简洁易懂。 2019 年,TensorFlow 推出了 2.0 版本,也意味着 TensorFlow 从 1.x 正式过度到 2.x 时代。根据 TensorFlow 官方 介绍内...

Oct 12, 20213 min read

uiu's log

27 posts

Insist on programming & Love open source

Echars 实现简单柱状图