Фасет имеет общие масштабы по умолчанию, но вы можете переопределить разрешение масштаба с помощью свойства разрешения:
import altair as alt
import pandas as pd
df = pd.DataFrame({'label': ['A','A','B','B'],
'variable': ['x', 'y', 'x', 'y'],
'value':[2,4,3,1]})
alt.Chart(df,title='My Plot').mark_bar().encode(
alt.Y('label', sort=alt.EncodingSortField(field="value", op="mean", order='descending'), axis=alt.Axis(title='Label')),
alt.X('value:Q', axis=alt.Axis(format='%', title='Value'))
).facet(
alt.Row('variable', title='Variable'),
resolve={"scale": {"y": "independent"}}
)
Обратите внимание, что вы больше не можете использовать сокращенную кодировку строк в Altair 2, поскольку спецификации модулей со строкой / столбцом в Altair 2 (и Vega-Lite 2) не имеют свойства resolve
. Теперь мы добавили resolve
в Vega-Lite 3, поэтому я думаю, что вы сможете сделать следующее после выхода Altair 3:
df = pd.DataFrame({'label': ['A','A','B','B'],
'variable': ['x', 'y', 'x', 'y'],
'value':[2,4,3,1]})
alt.Chart(df,title='My Plot', resolve={"scale": {"y": "independent"}}).mark_bar().encode(
alt.Y('label', sort=alt.EncodingSortField(field="value", op="mean", order='descending'), axis=alt.Axis(title='Label')),
alt.X('value:Q', axis=alt.Axis(format='%', title='Value')),
alt.Row('variable', title='Variable')
)
Да. Из документации Apple :
setContentOffset: animated:
Устанавливает смещение от исходной точки представления содержимого, соответствующее исходной точке получателя.