Описание проблемы
I иметь DataFrame под названием Movies со следующей структурой:
genre studio voiceavg_runtime_ratio доход_runtime_ratio
Action Studio A 1.2 0,8
Action Studio B 1.1 0,7
Comedy Studio A 1.4 0.9
Drama Studio C 1.3 0.85
... ... ... ...
Я хочу создать вложенные фасеты, где основной фасет будет по жанру и внутри каждого жанра, подфасеты созданы студией. На каждом графике значение voiceavg_runtime_ratio должно отображаться в виде гистограммы, а мне нужно, чтобы оси X были одинаковыми для всех строк жанра.
Код: Выделить всё
import altair as alt
import pandas as pd
# Sample DataFrame
movies = pd.DataFrame({
'genre': ['Action', 'Action', 'Comedy', 'Drama', 'Drama'],
'studio': ['Studio A', 'Studio B', 'Studio A', 'Studio C', 'Studio D'],
'voteavg_runtime_ratio': [1.2, 1.1, 1.4, 1.3, 1.5],
'revenue_runtime_ratio': [0.8, 0.7, 0.9, 0.85, 0.9]
})
# Plot
chart = alt.Chart(movies).mark_bar().encode(
x=alt.X('studio:N', title='Studio'),
y=alt.Y('voteavg_runtime_ratio:Q', title='Vote Average / Runtime Ratio'),
color='studio:N'
).facet(
row='genre:N'
).resolve_scale(
y='shared'
)
chart
Сюжет создает фасеты по жанрам с подфасетами для студии, но оси Y не совпадают по строкам, что затрудняет сравнение между жанрами. Использованиеsolve_scale(y='shared') не решило проблему.
Что я пробовал
Использованиеsolve_scale(y='shared'): Кажется, это не помогло. влияют на выравнивание или согласованность строк.
Установка масштабов вручную для каждого аспекта: невозможно для большого количества жанров и студий.
Желаемый результат
Я хочу, чтобы все строки жанров имели один и тот же y -масштабируйте, позволяя студии быть подфасетом в каждой строке. Таким образом, я могу сравнивать voiceavg_runtime_ratio по жанрам с согласованными масштабами.
Есть ли способ обеспечить согласованность y-шкал для всех строк при фасетировании в Альтаире?
Будем благодарны за любую помощь или идеи!
Подробнее здесь: https://stackoverflow.com/questions/791 ... cross-rows