ECharts -- bar 柱状图

888 阅读1分钟
<template>
  <div
    ref="bar"
    style="width: 500px; height: 300px; border: 1px solid red"
  ></div>
</template>

<script>
import * as echarts from "echarts";

export default {
  name: "Bar",
  mounted() {
    let myChart = echarts.init(this.$refs.bar, "dark");
    myChart.setOption({
      // 直角坐标系 grid 中的 x 轴
      xAxis: {
        show: true, // 是否显示 x 轴。
        position: "bottom", // x 轴的位置。 'top''bottom'
        offset: 20, // X 轴相对于默认位置的偏移,在相同的 position 上有多个 X 轴的时候有用。
        type: "category", // 坐标轴类型。
        /* 
            'value' 数值轴,适用于连续数据。
            'category' 类目轴,适用于离散的类目数据。为该类型时类目数据可自动从 series.data 或 dataset.source 中取,或者可通过 xAxis.data 设置类目数据。
            'time' 时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。
            'log' 对数轴。适用于对数数据。
        */
        data: [
          {
            value: "周一", // 单个类目名称。
            /* 类目标签的文字样式。 */
            textStyle: {
              color: "red",
            },
          },
          "周二",
          "周三",
          "周四",
          "周五",
          "周六",
          "周日",
        ],
        name: "x轴", // 坐标轴名称。
        nameLocation: "end", // 坐标轴名称显示位置。 start middle center end
        // 坐标轴名称的文字样式。
        nameTextStyle: {},
        nameGap: 10, // 坐标轴名称与轴线之间的距离。
        nameRotate: 0, // 坐标轴名字旋转,角度值。
        inverse: false, // 是否是反向坐标轴。
        // boundaryGap: // boolean Array 坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样。 具体看文档
        min: "dataMin", // 坐标轴刻度最小值。
        max: "dataMax", // 坐标轴刻度最大值。
        triggerEvent: false, // 坐标轴的标签是否响应和触发鼠标事件,默认不响应。
        /* 坐标轴轴线相关设置 */
        axisLine: {},
        /* 坐标轴刻度相关设置。 */
        axisTick: {},
        /* 坐标轴刻度标签的相关设置。 */
        axisLabel: {},
        /* 坐标轴在 grid 区域中的分隔线。 */
        splitLine: {},
        /* 坐标轴指示器配置项。 */
        // axisPointer: {
        //   // show: "cross",
        // },
      },
      yAxis: {
        type: "value",
      },
      series: [
        {
          type: "bar", // 设置图标类型
          name: "money", // 系列名称,用于tooltip的显示,legend 的图例筛选,在 setOption 更新数据和配置项时用于指定对应的系列。
          /* 系列中的数据内容数组。数组项通常为具体的数据项 */
          data: [30, 30, 50, 60, 80, 90, 100],
          colorBy: "series", // 从调色盘 option.color 中取色的策略,可取值为
          // 'series':按照系列分配调色盘中的颜色,同一系列中的所有数据都是用相同的颜色;
          // 'data':按照数据项分配调色盘中的颜色,每个数据项都使用不同的颜色。
          legendHoverLink: true, // 是否启用图例 hover 时的联动高亮。
          coordinateSystem: "cartesian2d", // 'cartesian2d' 直角坐标系 'polar'使用极坐标系,通过 polarIndex 指定相应的极坐标组件
          realtimeSort: true, // 是否开启实时排序,用来实现动态排序图效果,具体参见手册中动态排序柱状图的教程。
          showBackground: true, //是否显示柱条的背景色。通过 backgroundStyle 配置背景样式。
          /* 每一个柱条的背景样式。需要将 showBackground 设置为 true 时才有效。 */
          backgroundStyle: {
            // color: "red",
          },
          /* 图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等。 */
          label: {
            show: true, // 是否显示标签。
            // ... 具体看文档
          },
          /* 标签的视觉引导线配置。 */
          labelLine: { show: true },
          /* 图形样式。可以在data中单独配置每根柱子的样式 */
          itemStyle: {},
          /* 标签的统一布局配置。 */
          labelLayout: {},
          // 高亮的图形样式和标签样式。
          emphasis: {
            disabled: false, // 是否关闭高亮状态。
            focus: "self", // 在高亮图形时,是否淡出其它数据的图形已达到聚焦的效果。支持如下配置:
            //  'none' 不淡出其它图形,默认使用该配置。
            // 'self' 只聚焦(不淡出)当前高亮的数据的图形。
            // 'series' 聚焦当前高亮的数据所在的系列的所有图形。
            blurScope: "coordinateSystem", // 在开启focus的时候,可以通过blurScope配置淡出的范围。支持如下配置
            // 'coordinateSystem' 淡出范围为坐标系,默认使用该配置。
            // 'series' 淡出范围为系列。
            // 'global' 淡出范围为全局。
            /* 淡出时的图形样式和标签样式 */
          },
          blur: {
            label: {}, //图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等。
            labelLine: {}, //标签的视觉引导线配置。
            // 图形样式
            itemStyle: {
              color: "red",
            },
          },
          /* 数据选中时的图形样式和标签样式。开启 selectedMode 后有效。 */
          select: {},
          selectedMode: true, // 选中模式的配置,表示是否支持多个选中,默认关闭,支持布尔值和字符串,字符串取值可选'single','multiple','series' 分别表示单选,多选以及选择整个系列
          cursor: "pointer", //鼠标悬浮时在图形元素上时鼠标的样式是什么。同 CSS 的 cursor。
          // barWidth : 柱条的宽度,不设时自适应。 numberstring
          //  barMaxWidth:  barMinWidth  barMinHeight  barMinAngle
          barGap: "30%", // 不同系列的柱间距离,为百分比(如 '30%',表示柱子宽度的 30%)。
          barCategoryGap: "50%", // 同一系列的柱间距离,默认为类目间距的20%,可设固定值
          large: true,
          /* 
            是否开启大数据量优化,在数据图形特别多而出现卡顿时候可以开启。
            开启后配合 largeThreshold 在数据量大于指定阈值的时候对绘制进行优化。
            缺点:优化后不能自定义设置单个数据项的样式。
          */
          largeThreshold: 500, // 开启绘制优化的阈值。
          // 图表标注。
          markPoint: {
            symbol: "circle", //标记的图形。  看文档
            /* 
              标注的数据数组。每个数组项是一个对象,有下面几种方式指定标注的位置。
              通过 x, y 属性指定相对容器的屏幕坐标,单位像素,支持百分比。
              用 coord 属性指定数据在相应坐标系上的坐标位置,单个维度支持设置 'min', 'max', 'average'。
              直接用 type 属性标注系列中的最大值,最小值。这时候可以使用 valueIndex 或者 valueDim 指定是在哪个维度上的最大值、最小值、平均值。
              当多个属性同时存在时,优先级按上述的顺序。
            */
            data: [
              {
                name: "最大值",
                type: "max",
              },
            ],
          },
          // 图表标线。
          markLine: {
            data: [
              {
                name: "平均线",
                // 支持 'average', 'min', 'max'
                type: "average",
              },
            ],
          },
          // 图表标域,常用于标记图表中某个范围的数据,例如标出某段时间投放了广告。
          markArea: {},
          animation: true, // 是否开启动画。
        },
      ],
      tooltip: {},
    });
  },
};
</script>

<style>
</style>