Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何实现自定义坐标label为不同的颜色 #3401

Closed
1 task
atdow opened this issue Apr 27, 2021 · 7 comments
Closed
1 task

如何实现自定义坐标label为不同的颜色 #3401

atdow opened this issue Apr 27, 2021 · 7 comments

Comments

@atdow
Copy link

atdow commented Apr 27, 2021

  • I have searched the issues of this repository and believe that this is not a duplicate.

What problem does this feature solve?

同一个图表的同一个坐标轴,但是他们label可以有不同的颜色
如下图所示:
0fefa7a88ca3896420acf6b0a197fc4

What does the proposed API look like?

no

@hustcc
Copy link
Member

hustcc commented Oct 8, 2021

使用回调的方式来设置 label.style 属性。

chart.axis('x-field', {
  label: {
    style:  (item: any, index: number, items: any[]) => ShapeAttrs;
  }
})

@mxye
Copy link

mxye commented Dec 25, 2023

“ShapeAttrs”是什么意思?这个code直接copy不可行。ShapeAttrs代表什么?能举个例子吗?比如是不是

                position: 'spider',
                offset: 40,
                text: 'name',
                style: (item, index, items) => { return { color: item.name } },
            })

这个例子我试过了,也行不通。

还有,如果要把connectorStroke也换成跟各自的Mark相同的颜色(这个例子里按照"name"分配颜色),可能吗?我在各个documentation里怎么找都没找到。。。

@hustcc
Copy link
Member

hustcc commented Dec 26, 2023

ShapeAttrs 是指原生的 canvas/svg 属性配置,参考 https://g.antv.antgroup.com/api/css/inheritance 这个文档最下面的表格。

(item: any, index: number, items: any[]) => ({ fill: 'red' });

@mxye
Copy link

mxye commented Dec 27, 2023

我还是不明白。{ fill: 'red' }结果不都成了红色吗?我的目的跟原作者的有些不同,不是基于axis的label,而是Mark的label,想要各个label和连线都是各自Mark的颜色。比如一张图里有一个蓝色interval,一个红色interval,一个绿色interval,要求蓝色interval配蓝色label和connector,绿色的配绿色的,红色的配红色的。用代码怎样表达“各自Mark的颜色”呢?

而且,我在label里尝试了下,

            chart
            .interval()
            .label({
                position: 'spider',
                offset: 40,
                text: 'name',
                connector: true,
                style: (item, index, items) => ({ fill: 'red' })
            })

添加style: (item, index, items) => ({ fill: 'red' })后,没看到图表哪里变红啊。多谢你的耐心!

@kl258521
Copy link

我还是不明白。{ fill: 'red' }结果不都成了红色吗?我的目的跟原作者的有些不同,不是基于axis的label,而是Mark的label,想要各个label和连线都是各自Mark的颜色。比如一张图里有一个蓝色interval,一个红色interval,一个绿色interval,要求蓝色interval配蓝色label和connector,绿色的配绿色的,红色的配红色的。用代码怎样表达“各自Mark的颜色”呢?

而且,我在label里尝试了下,

            chart
            .interval()
            .label({
                position: 'spider',
                offset: 40,
                text: 'name',
                connector: true,
                style: (item, index, items) => ({ fill: 'red' })
            })

添加style: (item, index, items) => ({ fill: 'red' })后,没看到图表哪里变红啊。多谢你的耐心!

请问你找到label对应mark的方法了吗?

@mxye
Copy link

mxye commented Jan 30, 2024

没有!你要是找到了,告诉我一声

@hustcc
Copy link
Member

hustcc commented Jan 31, 2024

没有!你要是找到了,告诉我一声

使用的啥版本?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants