Я новичок в Altair и пытаюсь составить тепловую карту со шкалой журнала для цвета, а также выбрать цветовую схему не по умолчанию (схема по умолчанию использует очень мало экстентов, а также я хочу, чтобы свет-темные цвета).Я обнаружил, что могу легко получить масштаб журнала с помощью type=log
, но после этого параметр scheme=
игнорируется.Если я вместо этого вручную установлю верхний и нижний цвета с помощью range=
, это прекрасно работает.
Я также обнаружил, что если я явно установлю type=
любым способом, даже явно установив type='linear'
, который являетсяпо умолчанию scheme=
игнорируется.Это ошибка?Если нет, то как я могу понять использование цветовых схем таким образом, чтобы это имело смысл?Если я не могу напрямую использовать схему, как я могу проверить схему и извлечь ее значения цвета для повторного использования?
Вот несколько примеров:
import numpy as np
import pandas as pd
import altair as alt
# This question is about Altair - plotnine is only here for the example data
from plotnine.data import diamonds
# This works, and gives me the greenblue color scheme:
alt.Chart(diamonds).mark_rect().encode(
x=alt.X('carat',bin=True),
y=alt.Y('price',bin=True),
color=alt.Color('count()',scale=alt.Scale(scheme='greenblue'))
)
# This gives me a log scale, but now the greenblue scheme is gone:
alt.Chart(diamonds).mark_rect().encode(
x=alt.X('carat',bin=True),
y=alt.Y('price',bin=True),
color=alt.Color('count()',scale=alt.Scale(type='log',scheme='greenblue'))
)
# Direct specification of range works, but it is not exactly the same
# colors as greenblue. If this is the only way to do it, how do I open
# up the greenblue scheme and grab its colors?
alt.Chart(diamonds).mark_rect().encode(
x=alt.X('carat',bin=True),
y=alt.Y('price',bin=True),
color=alt.Color('count()',scale=alt.Scale(type='log',range=['palegreen','blue']))
)