首页 前端知识 ECharts 的基本配置

ECharts 的基本配置

2024-11-04 10:11:36 前端知识 前端哥 608 940 我要收藏

一. 初体验

1. 基本配置

<body>
    <!-- 必须设置高度 -->
    <div id="main" style="width: 800px; height: 400px"></div>
    <!-- 
      window.echarts 对象
     -->
    <script src="../libs/echarts-5.3.3.js"></script>
    <script>
      // 1.拿到echarts的实例对象
      var myChart = echarts.init(document.getElementById("main"), null, {
        renderer: 'svg'
        // renderer: 'canvas'
      });
      // 2.编写图表配置项和数据
      var option = {
        xAxis: {
          data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
        },
        yAxis: {},
        series: [
          {
            name: "销量",
            type: "bar",
            data: [5, 20, 36, 10, 10, 20],
          },
        ],
      };
      // 3.将图表显示到界面上
      myChart.setOption(option);
    </script>
  </body>

2. 切换渲染引擎 和 主题色

echarts.init(document.getElementById("main"), null, {renderer: "svg"});

echarts.init(document.getElementById("main"), "dark", {renderer: "canvas"});

二. 配置项(组件)

1. grid 网格

var option = {
    backgroundColor: "pink",
    grid: {
        show: true,
        backgroundColor: "lightblue",
        left: 0,  // 相对于组外层容器的位置
        right: 0,
        // top: 0,
        // bottom: 0,
        containLabel: true, // 是否保留坐标轴坐标标签
    },
    xAxis: {
        data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
    },
    yAxis: {},
    series: [
        {
        name: "销量",
        type: "bar",
        data: [5, 20, 36, 10, 10, 20],
        },
    ],
};

2. x/y 坐标轴

xAxis: {
    show: true,
    name: "类目坐标",  // 轴坐标名称

    type: "category", // 类目坐标才有data选项 
    // type: "value", 
    data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],

    axisLine: { // 坐标轴轴线相关设置。
        show: true,
        lineStyle: {
        color: "red",
        width: 3,
        },
    },

    axisLabel: { // 坐标轴标签的相关设置。
        show: true,
        color: "green",
        fontSize: 16,
    },
    
    axisTick: {  // 坐标轴刻度相关设置。
        show: true,
        length: 10,
        lineStyle: {
        color: "blue",
        width: 3,
        },
    },
        
    splitLine: { // 坐标轴在 grid 区域中的分隔线。
        show: true,
        lineStyle: {
        color: "orange",
        width: 1,
        },
    }, 
}

3. series 系列

1. data 支持的书写方式

series: [
    {
    name: "产品销量柱形图",
    type: "bar",
    label: {
        show: true,
    },
    
    // 方式一
    // 按照坐标轴索引进行匹配,顺序不可变  [value1, value2]
    data: [5, 20, 36, 10, 10, 20],  
        
        
    // 方式二
    // [index, value]
    data: [
      [0, 5],
      [1, 20],
      [2, 36],
      [3, 10],
      [4, 10],
      [5, 20],
    ],
                
        
    // 方式三(推荐)
    data: [
        {
            value: 5,
            name: "衬衫", // 数据项名称, 比如pie系列 tooltip 需要用到
        },
        {
            value: 20,
            name: "羊毛衫",
        },
        {
            value: 36,
            name: "雪纺衫",
        },
        {
            value: 10,
            name: "裤子",
        },
        {
            value: 10,
            name: "高跟鞋",
        },
        {
            value: 20,
            name: "袜子",
        },
    ],
                
        
    // 方式四
    data: [
      {
        value: [0, 5], // 数组第一项为x轴值,第二项为y轴值
        name: "衬衫", // 数据项名称, 比如pie系列 tooltip 需要用到
      },
      {
        value: [1, 20],
        name: "羊毛衫",
      },
      {
        value: [2, 36],
        name: "雪纺衫",
      },
      {
        value: [3, 10],
        name: "裤子",
      },
      {
        value: [4, 10],
        name: "高跟鞋",
      },
      {
        value: [5, 20],
        name: "袜子",
      },
    ],
        
            
    // 方式五(地理坐标系推荐)
    data: [
      {
        value: [0, 5, 500], // 第一项为x轴或纬度值,第二项为y或维度轴值,第三项以后为扩展值
        name: "衬衫", // 数据项名称, 比如pie系列 tooltip 需要用到
      },
      {
        value: [1, 20, 400],
        name: "羊毛衫",
      },
      {
        value: [2, 36, 200],
        name: "雪纺衫",
      },
      {
        value: [3, 10, 100],
        name: "裤子",
      },
      {
        value: [4, 10, 600],
        name: "高跟鞋",
      },
      {
        value: [5, 20, 300],
        name: "袜子",
      },
    ],
  },
],

2. type 图表类型

series: [
    {
        name: "产品销量柱形图",
        type: "line", // line 折线图  bar 柱状图  scatter 散点图  pie 饼图
        data: [5, 20, 36, 10, 10, 20], 
    },
],


// 饼图
series: [
    {
        name: "产品销量柱形图",
        type: "pie",

        // 饼图的中心点相对于容器的位置
        center: ["50%", "50%"],
        
        // 饼图的直径百分比是参照容器高和宽中较小一项  
        // [内圆的直径,外圆的直径]
        radius: ["10%", "50%"], 

        //area玫瑰图(南丁格尔图)。 圆心角一样,通过半径展现数据大小(默认false)
        // roseType: "area",

        data: [
            {
                value: 5,
                name: "衬衫", // 数据项名称, 比如pie系列 tooltip 需要用到
            },
            {
                value: 20,
                name: "羊毛衫",
            },
            {
                value: 36,
                name: "雪纺衫",
            },
            {
                value: 10,
                name: "裤子",
            },
            {
                value: 10,
                name: "高跟鞋",
            },
            {
                value: 20,
                name: "袜子",
            },
        ],
    },
],

 

 3. label 图表的标签

series: [
    {   
        name: "产品销量柱形图",
        type: "bar",
        
        label: { // 系列图形上的文本标签
            show: true,
            position: [10, 20], // 标签所处于每项图表中的位置
            color: "white",
            fontSize: "20px",
        },
        data: [10, 20, 30, 20, 10, 20]
    },
]

 4. itemStyle 图形默认色

series: [
    {   
        name: "产品销量柱形图",
        type: "bar",
        itemStyle: { // 系列图形的样式
            color: "red", // 图形颜色
            borderColor: "orange", // 边框颜色
            borderWidth: 4,  // 边框宽度
            opacity: 0.4,   // 图形颜色的透明度
        },
        data: [10, 20, 30, 20, 10, 20]
    },
]

 5. emphasis 鼠标悬浮时的高亮色

series: [
    {   
        name: "产品销量柱形图",
        type: "bar",
        label: {
            show: true
        },
        itemStyle:{
            color: 'pink'
        },

        emphasis: { // 鼠标 hover 时的高亮色
            label: {
                show: true,
                color: "gold",
            },
            itemStyle:{
                color: 'red'
            },
            // ...
        },

        data: [10, 20, 30, 20, 10, 20]
    },
]

4. title 标题组件

title: {
    text: "一级标题",
    left: 20,
    top: 10,
    subText: "二级标题"
    // ...
},

5. legend 图例组件

legend: {
    show: true,
    // width: 50, // 图例组件的总宽度,默认自适应
    itemWidth: 20, // 每个图例标记的图形宽度。
    icon: "circle",
    //   top: 10,
    // bottom: 0,

    // 用来格式化图例标记文本,支持字符串模板和回调函数两种形式
    // formatter: "liu-{name}",  
    formatter: function (name) {
        // 富文本语法:{style_name|value} 不能有空格
        return name + "  {countSty|40%}";
    },
    textStyle: {
        color: "red",
        rich: { // 在 rich 里面,可以自定义富文本样式
            countSty: {
            color: "blue",
            },
        },
    },
},

 

6. tooltip 提示组件

tooltip: {
    show: true,
    
    // 使用了 trigger ,一般也结合 axisPointer
    trigger: "axis",  // 默认是 item
    
    axisPointer: {
        type: "shadow", //  (默认是竖线 line)  (横线 + 竖线 cross)  (柱状 shadow)
    },
    formatter: "123"  // 自定义标签的显示内容
},

7. 图形渐变色

color: {
  // 渐变
  type: "linear",
  // 坐标配置  [0,0]  =>  [0,1]
  x: 0,
  y: 0,
  x2: 0,
  y2: 1,
  // 
  colorStops: [
    {
      offset: 0.5,
      color: "red",
    },
    {
      offset: 1,
      color: "blue",
    },
  ],
},

 三. 图表实例

1. 柱形图

var option = {
  backgroundColor: "rgba(40, 46, 72)",
  grid: {
    show: true,
    backgroundColor: "rgba(0, 255, 0, 0.1)",
    left: "5%",
    right: "10%",
    top: "30%",
    bottom: "5%",
    containLabel: true, // grid 区域是否包含坐标轴的刻度标签
  },
  tooltip: {},
  xAxis: {
    name: "月份",
    axisLine: {
      show: true,
      lineStyle: {
        color: "#42A4FF",
      },
    },
    axisTick: {
      show: false,
    },
    axisLabel: {
      color: "white",
    },

    data: ["一月", "二月", "三月", "四月", "五月", "六月", "七月"],
  },
  yAxis: {
    name: "个",
    nameTextStyle: {
      color: "white",
      fontSize: 13,
    },
    axisLine: {
      show: true,
      lineStyle: {
        color: "#42A4FF",
      },
    },
    axisTick: {
      show: false,
    },
    splitLine: {
      show: true,
      lineStyle: {
        color: "#42A4FF",
      },
    },
    axisLabel: {
      color: "white",
    },
  },
  series: [
    {
      name: "销量",
      type: "bar",
      barWidth: 17,
      itemStyle: {
        color: {
          type: "linear",
          x: 0,
          y: 0,
          x2: 0,
          y2: 1,
          colorStops: [
            {
              offset: 0,
              color: "#01B1FF", // 0% 处的颜色
            },
            {
              offset: 1,
              color: "#033BFF", // 100% 处的颜色
            },
          ],
        },
      },
      data: [500, 2000, 3600, 1000, 1000, 2000, 4000],
    },
  ],
};

转载请注明出处或者链接地址:https://www.qianduange.cn//article/19908.html
标签
评论
发布的文章
大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!