[英]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_))
)
但是我找不到一種簡單的方法來改變單個物種的顏色而不影響 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.