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

分组柱状图的排序可以不根据legend的顺序,根据数据源的顺序吗 #3653

Closed
1 task
yumanfeng opened this issue Sep 29, 2021 · 8 comments
Closed
1 task

Comments

@yumanfeng
Copy link

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

Reproduction link

Edit on CodeSandbox

Steps to reproduce

第二个分组柱状图,期望的顺序,是按照数据源的顺序,目前看起来是按照legend的顺序进行了第二次排序
image

Environment Info
g2 4.0.12
System -
Browser -
@hustcc
Copy link
Member

hustcc commented Sep 30, 2021

图例是看图形的辅助元素,所以图例的顺序一定是和数据相同的。

上图中第二组有异常的原因是:提供的色板数量少于分组数,导致颜色重复了。

@hustcc hustcc closed this as completed Sep 30, 2021
@yumanfeng
Copy link
Author

图例是看图形的辅助元素,所以图例的顺序一定是和数据相同的。

上图中第二组有异常的原因是:提供的色板数量少于分组数,导致颜色重复了。

https://codesandbox.io/s/summer-river-pmqq6?file=/src/index.js
这个demo,把颜色去掉了,还是存在这样的问题,期望的第二组柱状图的顺序是按照数据源的顺序:现代简约、日式、港式、简欧。
image

@hustcc
Copy link
Member

hustcc commented Oct 8, 2021

因为这个数据中,有一些城市没有某一些分类值。

你的意思是需要:如果没有这个分类值,也需要吧位置预留出来嘛?

@yumanfeng
Copy link
Author

因为这个数据中,有一些城市没有某一些分类值。

你的意思是需要:如果没有这个分类值,也需要吧位置预留出来嘛?

位置预留出来,指的是没有的legend,会有空白的柱状图吗?这里不希望有空白的柱状图占位,如果没有legend,就不渲染,但是柱状图的顺序还是希望是按照数据源的顺序。
需求现状是:每一组 x,不会包含所有的 legend,只含有部分 legend,且每组x的 legend 不相同。

@hustcc
Copy link
Member

hustcc commented Oct 11, 2021

且每组x的 legend 不相同

legend 是所有分类的,tooltip 是按照分组中有几项数据就显示几项。目前,如果某一组不存在其中一个分类,那么这么分类的柱子是不绘制的,也不会预留空白位置。

@hustcc hustcc reopened this Oct 11, 2021
@yumanfeng
Copy link
Author

且每组x的 legend 不相同

legend 是所有分类的,tooltip 是按照分组中有几项数据就显示几项。目前,如果某一组不存在其中一个分类,那么这么分类的柱子是不绘制的,也不会预留空白位置。

“柱子是不绘制的,也不会预留空白位置”,这个目前是这样的。但是柱子会按照分类重新排序,这里可以支持一下按照传入的数据源的顺序吗?

@zss7819
Copy link

zss7819 commented Aug 11, 2022

请问解决了吗,遇到相同的业务问题@yumanfeng

@hustcc
Copy link
Member

hustcc commented Dec 6, 2022

这个数据顺序需要你提供从 data 中获取,然后通过设置 scale 的 values 来设置顺序。

chart.scale("legend", {
  values: ['现代简约', '简欧'/* ... */]
});

@yumanfeng @zss7819

@hustcc hustcc closed this as completed Dec 6, 2022
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

3 participants