Альтаир: созданная вручную коробчатая диаграмма неправильно реагирует на фильтр выбораPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Альтаир: созданная вручную коробчатая диаграмма неправильно реагирует на фильтр выбора

Сообщение Anonymous »

Мне нужно запрограммировать коробчатую диаграмму, в которой я смогу фильтровать данные в соответствии с раскрывающимся меню. Из-за этой проблемы https://github.com/vega/altair/issues/2255 я программирую диаграмму вручную.

У меня проблема: когда я сначала выбираю опцию, диаграмма это правильно. Но когда я сначала выбираю другой вариант, а затем этот вариант, диаграмма неверна.

Я считаю, что проблема связана с тем, как я рассчитываю нижний и верхний_ус, особенно с использованием минимального и максимального_значения

Код: Выделить всё

import altair as alt
import pandas as pd

# Example Data
data = pd.DataFrame({
'task': ['A'] * 5 + ['B'] * 5 ,
'value': [0,1,2,3,4,5,6,7,8,9]
})
tasks=["All"]+list(data["task"].unique())
dropdown = alt.binding_select(options=tasks, name="Dropdown Menu: ")
select = alt.selection_point(fields=['task'], bind=dropdown,value="All")

chart = alt.Chart(data).transform_aggregate( #Vertical line of boxplot
q1_value=f"q1(value)",
q3_value=f"q3(value)",
max_value=f"max(value)",
min_value=f"min(value)"
).transform_calculate(
IQR='datum.q3_value - datum.q1_value',
lower_whisker='max(datum.q1_value - 1.5 * datum.IQR, datum.min_value)',
upper_whisker='min(datum.q3_value + 1.5 * datum.IQR, datum.max_value)'
).mark_rule(color='black').encode(
y='lower_whisker:Q',
y2='upper_whisker:Q'
) + alt.Chart(data).transform_aggregate( #Body of boxplot
q1_value=f"q1(value)",
q3_value=f"q3(value)"
).mark_bar(size=20).encode(
y=alt.Y('q1_value:Q'),
y2='q3_value:Q'
)  + alt.Chart(data).transform_aggregate( #Median line
q2_value=f"median(value)",
).mark_tick(color='black', size=20).encode(
y='q2_value:Q',
) + alt.Chart(data).transform_aggregate( #Lower whisker line
q1_value=f"q1(value)",
q3_value=f"q3(value)",
min_value=f"min(value)"

).transform_calculate(
IQR='datum.q3_value - datum.q1_value',
lower_whisker='max(datum.q1_value - 1.5 * datum.IQR, datum.min_value)',
).mark_tick(color='black', size=20).encode(
y="lower_whisker:Q"
) + alt.Chart(data).transform_aggregate( #Upper whisker line
q1_value=f"q1(value)",
q3_value=f"q3(value)",
max_value=f"max(value)"
).transform_calculate(
IQR='datum.q3_value - datum.q1_value',
upper_whisker='min(datum.q3_value + 1.5 * datum.IQR, datum.max_value)'
).mark_tick(color='black', size=20).encode(
y="upper_whisker:Q"
)
chart=chart.encode(
y=alt.Y(title="value")
)
chart2=chart.add_params(
select
).transform_filter(
f"{select.name}.task=='All' || {select.name}.task==datum.task "
)
b, если выбрано напрямую
b, если a выбрано первым
Когда я просто вычисляю, что нижний и верхний усы равны q1-1, 5*IQR и q3+1,5*IQR У меня нет этой проблемы

Подробнее здесь: https://stackoverflow.com/questions/793 ... ion-filter
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Скорректированная коробчатая диаграмма в Python
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Скорректированная коробчатая диаграмма в Python
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как печатать или экспортировать в качестве картинки диаграмма UML, созданная с помощью плагина NetBeans EasyUml?
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Созданная вручную строка JSON недействительна.
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Диаграмма Альтаира пуста в раскрывающемся списке, когда отображается другая диаграмма
    Anonymous » » в форуме Python
    0 Ответы
    112 Просмотры
    Последнее сообщение Anonymous

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