データのフィールドを使用してY軸の定義域を指定することはできますか?
私はこのようなことを試しましたが、機能していません:
scale=alt.Scale(domain = ['field1','field2'])
以下のようなインタラクティブなプロットがあり、凡例の選択に応じてY軸ドメインを変更したいとします。
import altair as alt
from vega_datasets import data
source = data.unemployment_across_industries.url
source = pd.read_json(source)
source['field1'] = 0
source['field2'] = 20000
selection = alt.selection_multi(fields=['series'], bind='legend')
alt.Chart(source).mark_area().encode(
alt.X('yearmonth(date):T', axis=alt.Axis(domain=False, format='%Y', tickSize=0)),
alt.Y('sum(count):Q', stack='center', scale=alt.Scale(domain = ['field1','field2'])),
alt.Color('series:N', scale=alt.Scale(scheme='category20b')),
opacity=alt.condition(selection, alt.value(1), alt.value(0.2))
).add_selection(
selection
)
いいえ、domain
は数字のペアにのみ設定できます。ドメインが選択に応答するようにする場合、そのための1つの方法は、明示的なドメインなしでフィルター変換を使用することです。例えば:
source = data.unemployment_across_industries.url
selection = alt.selection_multi(fields=['series'], bind='legend')
alt.Chart(source).mark_area().encode(
alt.X('yearmonth(date):T', axis=alt.Axis(domain=False, format='%Y', tickSize=0)),
alt.Y('sum(count):Q', stack='center'),
alt.Color('series:N', scale=alt.Scale(scheme='category20b'))
).add_selection(
selection
).transform_filter(selection)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加