簡體   English   中英

在 Altair 中更改單一顏色 plot

[英]Change single color in Altair plot

有沒有辦法改變 Altair plot 中一個組的顏色,同時讓 rest 保持不變? 我喜歡默認的配色方案,但我想為一組更改顏色。

例如,在這樣的散點圖中:

import altair as alt
from vega_datasets import data

iris = data.iris()

alt.Chart(iris).mark_point().encode(
    x='petalWidth',
    y='petalLength',
    color=alt.Color('species')
)

示例_散點圖

我想在不更改 rest 的情況下將“versicolor”的顏色更改為黑色。

我從文檔中知道您可以指定自己的配色方案,或者將 colors 分配給每個組,如下所示:

domain = ['setosa', 'versicolor', 'virginica']
range_ = ['red', 'green', 'blue']

alt.Chart(iris).mark_point().encode(
    x='petalWidth',
    y='petalLength',
    color=alt.Color('species', scale=alt.Scale(domain=domain, range=range_))
)

example_scatterplot_2

但是我找不到一種簡單的方法來改變單個物種的顏色而不影響 colors 的 rest。

一種方法是使用alt.condition ,盡管更新后的顏色不會出現在圖例中:

import altair as alt
from vega_datasets import data

iris = data.iris()

alt.Chart(iris).mark_point().encode(
    x='petalWidth',
    y='petalLength',
    color=alt.condition("datum.species == 'setosa'", alt.value('yellow'), alt.Color('species'))
)

在此處輸入圖像描述

如果您想更改顏色並將其反映在圖例中,唯一的方法就是像您在問題中所做的那樣使用自定義比例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM