Я бы хотел использовать отдельные шкалы для каждой группы в сгруппированном и сложенном барплоте, используя Altair в Python.
Так, например, вместо следующих
![enter image description here](https://i.stack.imgur.com/LfxcO.png)
Я бы хотел что-то похожее на следующее. На этом (Gimp-) отредактированном снимке у меня одинаковая шкала для всех 4 групп A, B, C и D. Но в моих реальных данных порядки величин отличаются от группы к другой. Поэтому у каждой группы должен быть свой масштаб. Любые идеи о том, как это сделать?
![enter image description here](https://i.stack.imgur.com/L9pGZ.png)
Вот минимальный пример из ЗДЕСЬ
import pandas as pd
import numpy as np
import altair as alt
df1=pd.DataFrame(10*np.random.rand(4,3),index=["A","B","C","D"],columns=["I","J","K"])
df2=pd.DataFrame(10*np.random.rand(4,3),index=["A","B","C","D"],columns=["I","J","K"])
df3=pd.DataFrame(10*np.random.rand(4,3),index=["A","B","C","D"],columns=["I","J","K"])
def prep_df(df, name):
df = df.stack().reset_index()
df.columns = ['c1', 'c2', 'values']
df['DF'] = name
return df
df1 = prep_df(df1, 'DF1')
df2 = prep_df(df2, 'DF2')
df3 = prep_df(df3, 'DF3')
df = pd.concat([df1, df2, df3])
chart = alt.Chart(df).mark_bar().encode(
x=alt.X('c2:N', title=None),
y=alt.Y('sum(values):Q', axis=alt.Axis(grid=False, title=None)),
column=alt.Column('c1:N', title=None),
color=alt.Color('DF:N', scale=alt.Scale(range=['#96ceb4', '#ffcc5c','#ff6f69']))
).configure_view(
strokeOpacity=0
)
chart.save("Power.svg")