Altair:当类别多于可用颜色时如何着色
Altair: How to color when there are more categories than colors available
这是取自 Altair documentation 配色方案的代码。
alt.Chart(iris).mark_point().encode(
x='petalWidth',
y='petalLength',
color=alt.Color('species', scale=alt.Scale(scheme='dark2'))
)
这里,为了根据物种上色,他们使用了dark2配色方案。 dark2 vega方案有8种颜色。我注意到,当可用的类别多于可用颜色时,似乎颜色又被回收了,这意味着某些类别具有相同的颜色。在此示例中,假设 species
有 8 个以上的类别。这意味着两个物种将以相同的方式着色。
Altair 是否可以自动 'extend' dark2 配色方案以支持更多类别?我在考虑方案中的插值或混合颜色。
附带说明一下,我知道还有其他配色方案可以提供更多颜色,但我想要一个我在上面提到的 dark2 解决方案。
无法通过 Altair/VegaLite 自动扩展配色方案。您需要手动定义要使用的颜色,或者切换到另一种配色方案,如您所述。
请注意,当您使用如此多的分类颜色时,reader 可能很难解析图中的信息,通常最好通过分面将图分解为多个图,或者使用 labels/hovering 来编码一些信息,而不是仅仅依赖于颜色。有some good pointers on this topic in this book chapter.
这是取自 Altair documentation 配色方案的代码。
alt.Chart(iris).mark_point().encode(
x='petalWidth',
y='petalLength',
color=alt.Color('species', scale=alt.Scale(scheme='dark2'))
)
这里,为了根据物种上色,他们使用了dark2配色方案。 dark2 vega方案有8种颜色。我注意到,当可用的类别多于可用颜色时,似乎颜色又被回收了,这意味着某些类别具有相同的颜色。在此示例中,假设 species
有 8 个以上的类别。这意味着两个物种将以相同的方式着色。
Altair 是否可以自动 'extend' dark2 配色方案以支持更多类别?我在考虑方案中的插值或混合颜色。
附带说明一下,我知道还有其他配色方案可以提供更多颜色,但我想要一个我在上面提到的 dark2 解决方案。
无法通过 Altair/VegaLite 自动扩展配色方案。您需要手动定义要使用的颜色,或者切换到另一种配色方案,如您所述。
请注意,当您使用如此多的分类颜色时,reader 可能很难解析图中的信息,通常最好通过分面将图分解为多个图,或者使用 labels/hovering 来编码一些信息,而不是仅仅依赖于颜色。有some good pointers on this topic in this book chapter.