Как создать вложенные фасеты в Altair с одинаковым масштабом по строкам?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как создать вложенные фасеты в Altair с одинаковым масштабом по строкам?

Сообщение Anonymous »

Я работаю над проектом визуализации данных на Python с использованием Altair и пытаюсь создать вложенные фасеты с одинаковым масштабом во всех строках. Я хочу создать график, который будет иметь фасеты по одной переменной и подфасеты по другой, но мне нужно, чтобы все строки имели один и тот же масштаб для лучшей сопоставимости.
Описание проблемы
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Пользовательские фасеты локали игнорируются std::locale::category
    Anonymous » » в форуме C++
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Как скомпилировать фасеты?
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Как создать динамическую ось X Altair и не фиксироваться на текущих значениях?
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как создать динамическую ось X Altair и не фиксироваться на текущих значениях?
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Денежная сумма с фиксированным масштабом
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»