You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by GitBox <gi...@apache.org> on 2022/04/21 10:04:19 UTC

[GitHub] [superset] stephenLYZ commented on pull request #19038: feat: improve color consistency (save all labels)

stephenLYZ commented on PR #19038:
URL: https://github.com/apache/superset/pull/19038#issuecomment-1104997733

   @serenajiang Hi, thanks for the feedback. This PR is not only to prevent color conflicts caused by "run out" of colors in the color-scheme, but mainly to ensure that the same dimensions of all charts in the dashboard have the same color. 
   
   The `shared_label_colors` is transparent to the user. It stores the colorMap(`{[chartId]: { [label]: color }}`) of all charts in the dashboard, and if different charts have the same dimensions, these dimensions will be extracted to generate analogous colors of color scheme, which is to prevent color conflicts.
   
   The question is why we need to extract these same dimensions and use analogous colors. In this case, if we use the remaining color of color-scheme for the same dimensions in the one chart,  we can't be sure whether the remaining color has been used in another chart, which may lead to color conflicts in another chart.
   
   For example, one dashboard has chartA and chartB. The color scheme is `['red', 'yellow', 'blue']`. The chartA has two dimensions `['a', 'b']` and chartB has three dimensions `['b', 'c', 'e']`. 
   As before the color map is
   **chart A**
   ```
   {
     a: 'red',
     b: 'yellow',
   }
   ```
   **chart B**
   ```
   {
     b: 'red',
     c: 'yellow',
     e: 'blue',
   }
   ```
   But we need to make sure that dimension `b` has the same color in the two charts. If we both use `yellow` as the color value for dimension `b`,  it will cause a color conflict for chartB. That's the problem I want to solve.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org