如何使用 Altair 在多个图表上移动/对齐 X-axis 标题?
How to move / align X-axis title on multiple charts with Altair?
我有下面的 3 个图表,我想将第三个图表(“Autres”)的 X-axis 标题与其他两个图表垂直对齐
我的代码如下
...
base = alt.Chart(data).properties(
width=250,
height=250
).add_selection(selector)
base2 = alt.Chart(data.loc[data.time.isin(l1)]).properties(
width=250,
height=250
).add_selection(selector)
base3 = alt.Chart(data.loc[data.time.isin(l2)]).properties(
width=250,
height=250
).add_selection(selector)
points = base.mark_point(filled=True, size=50,opacity=1).encode(
x=alt.X('trage',title="Tranche d'âge"),
y=alt.Y('mean(y)',title='NBV (%CA)',axis=alt.Axis(format='%')),
color=alt.condition(selector, 'Reseau_pat:O', alt.value('lightgray')),
#shape=alt.Shape('Segment:O', scale=alt.Scale(range=['circle', 'triangle'])),
tooltip = ['id','x','mean(y)']
)
timeseries = base2.mark_bar(opacity=1).encode(
x=alt.X('time', title='Structure de marge (%PM)'),
y=alt.Y('value',title='', scale=alt.Scale(domain=(-1, 1)),stack=None,axis=alt.Axis(format='.2f')),
#y2=alt.Y2('mean(duree)'),
color=alt.Color('Reseau_pat:O',
scale=alt.Scale(domain=domain, range=range_),
#legend=None
),
tooltip = ['value']
).transform_filter(
selector
)
test = base3.mark_bar(opacity=1,size=50).encode(
y=alt.Y('time', title='',axis=alt.Axis(orient='right')),
x=alt.X('value', title="Autres",scale=alt.Scale(domain=(0, 40)),stack=None),
color=alt.Color('Reseau_pat:O',
scale=alt.Scale(domain=domain, range=range_),
#legend=None
),
tooltip = ['value']
).transform_filter(
selector
)
points | timeseries | test
如果您有任何想法,将不胜感激
您可以在 Axis 中使用 titleY
和 titleX
参数手动移动标题。对所有地块执行此操作,使用相同的值并将它们对齐。所以像 x=alt.X(...axis=alt.Axis(titleY=42)
.
您还可以选择使用 .properties(title='Autres')
为每个图添加标题并删除 x-axis 标题。然后标题至少会对齐(在顶部)。
我有下面的 3 个图表,我想将第三个图表(“Autres”)的 X-axis 标题与其他两个图表垂直对齐
我的代码如下
...
base = alt.Chart(data).properties(
width=250,
height=250
).add_selection(selector)
base2 = alt.Chart(data.loc[data.time.isin(l1)]).properties(
width=250,
height=250
).add_selection(selector)
base3 = alt.Chart(data.loc[data.time.isin(l2)]).properties(
width=250,
height=250
).add_selection(selector)
points = base.mark_point(filled=True, size=50,opacity=1).encode(
x=alt.X('trage',title="Tranche d'âge"),
y=alt.Y('mean(y)',title='NBV (%CA)',axis=alt.Axis(format='%')),
color=alt.condition(selector, 'Reseau_pat:O', alt.value('lightgray')),
#shape=alt.Shape('Segment:O', scale=alt.Scale(range=['circle', 'triangle'])),
tooltip = ['id','x','mean(y)']
)
timeseries = base2.mark_bar(opacity=1).encode(
x=alt.X('time', title='Structure de marge (%PM)'),
y=alt.Y('value',title='', scale=alt.Scale(domain=(-1, 1)),stack=None,axis=alt.Axis(format='.2f')),
#y2=alt.Y2('mean(duree)'),
color=alt.Color('Reseau_pat:O',
scale=alt.Scale(domain=domain, range=range_),
#legend=None
),
tooltip = ['value']
).transform_filter(
selector
)
test = base3.mark_bar(opacity=1,size=50).encode(
y=alt.Y('time', title='',axis=alt.Axis(orient='right')),
x=alt.X('value', title="Autres",scale=alt.Scale(domain=(0, 40)),stack=None),
color=alt.Color('Reseau_pat:O',
scale=alt.Scale(domain=domain, range=range_),
#legend=None
),
tooltip = ['value']
).transform_filter(
selector
)
points | timeseries | test
如果您有任何想法,将不胜感激
您可以在 Axis 中使用 titleY
和 titleX
参数手动移动标题。对所有地块执行此操作,使用相同的值并将它们对齐。所以像 x=alt.X(...axis=alt.Axis(titleY=42)
.
您还可以选择使用 .properties(title='Autres')
为每个图添加标题并删除 x-axis 标题。然后标题至少会对齐(在顶部)。