G2 如何自定义 legend 的 icon(marker)

发布于 2024-09-26 22:32:35 字数 2358 浏览 21 评论 0

在某些业务场景下,可能会有这样的需求:需要个性化定制每个图例前面的图标。G2 提供了 legendOption.items 用于配置图例项的内容, legendOption.marker 用于配置图例项的 marker 图标。

如下示例:

import { Chart } from '@antv/g2';

const data = [
  { item: '事例一', count: 40, percent: 0.4 },
  { item: '事例二', count: 21, percent: 0.21 },
  { item: '事例三', count: 17, percent: 0.17 },
  { item: '事例四', count: 13, percent: 0.13 },
  { item: '事例五', count: 9, percent: 0.09 },
];

const chart = new Chart({
  container: 'container',
  autoFit: true,
  height: 500,
});

chart.coordinate('theta', {
  radius: 0.75,
});

chart.data(data);

chart.scale('percent', {
  formatter: (val) => {
    val = val * 100 + '%';
    return val;
  },
});

chart.tooltip({
  showTitle: false,
  showMarkers: false,
});

// 看这里:利用 legend 配置中的 items 即可为每个图例配置不同的图形标志
chart.legend({
  items: [
    {
      name: '事例一',
      marker: {
        style: { // 通过 style 可以设置纹理等
          fill: 'p(a) https://gw.alipayobjects.com/zos/rmsportal/ibtwzHXSxomqbZCPMLqS.png'
        }
      },
    },
    {
      name: '事例二',
      marker: {
        symbol: 'square', // 设置不同的 symbol 值展示不同的 icon
      },
    },
    {
      name: '事例三',
      marker: {
        symbol: 'diamond',
      },
    },
    {
      name: '事例四',
      marker: {
        symbol: 'triangle',
      },
    },
    {
      name: '事例五',
      marker: {
        symbol: 'triangle-down',
      },
    },
  ]
});

chart
  .interval()
  .position('percent')
  .color('item')
  .label('percent', {
    content: (data) => {
      return `${data.item}: ${data.percent * 100}%`;
    },
  })
  .adjust('stack');

chart.interaction('element-active');

chart.render();

注意事项

目前,G2 尚未支持使用自定义图片设置图例。

总结一下

Legend 作为图表的辅助元素,在 G2 官网的 教程和文章-- Lengend 图例 一节就可以清楚知道如何配置图例,对图例的整体样式做设置,以及如何设置各个图例项的样式等,帮助您快速熟悉 Legend。当需要查看详细的 API 时,则应该到 G2 官网的 G2 详细手册 查看相关内容。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

始于初秋

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

玍銹的英雄夢

文章 0 评论 0

我不会写诗

文章 0 评论 0

十六岁半

文章 0 评论 0

浸婚纱

文章 0 评论 0

qq_kJ6XkX

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文