Диаграмма нескольких временных рядов в Altair с выбираемыми временными рядамиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Диаграмма нескольких временных рядов в Altair с выбираемыми временными рядами

Сообщение Anonymous »

Я хочу создать диаграмму в Altair со следующими свойствами: < /p>

На нем показаны несколько временных рядов < /li>
Я могу выбрать, какие временные ряды отображаются, нажимая на Legend < /li>
, если серия не отображается в Lipe -Li. Невыбранный в легенде, тогда вы все еще можете увидеть ее в легенде < /li>
Цвета строк остаются последовательными, независимо от того, какие временные ряды выбираются или не выбраны < /li>
< /ul>
Pre Class = "LLM Prite-Prite-Prite-over-over-over-over-over-over-over-over-over-over-over-over-over-over-over-over-over

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

import pandas as pd
import altair as alt

dates = pd.date_range(start="2023-01-01", periods=10)
data = {
"Date": dates.tolist() * 3,
"Value": [10, 20, 15, 30, 25, 35, 40, 45, 50, 55] +
[5, 15, 10, 20, 15, 25, 30, 35, 40, 45] +
[2, 12, 8, 18, 14, 22, 28, 32, 38, 42],
"Device": ["Device A"] * 10 + ["Device B"] * 10 + ["Device C"] * 10
}
df = pd.DataFrame(data)

# Create a selection object for the legend
aselection = alt.selection_multi(fields=["Device"], bind="legend")

# Create the Altair chart
achart = alt.Chart(df).mark_line().encode(
x="Date:T",
y="Value:Q",
color="Device:N"  # Keep the color consistent
).transform_filter(
aselection  # Filter data based on the selection
).add_selection(
aselection
).properties(
title="Interactive Time Series Plot"
)

achart
Кажется, что Transform_filter делает невыбранную серию исчезает из графика, но это также заставляет его исчезнуть из легенды. Я хочу, чтобы он исчез из таблицы, но оставался в легенде.chart = alt.Chart(df).mark_line().encode(
x="Date:T",
y="Value:Q",
color="Device:N", # Keep the color consistent
opacity=alt.condition(aselection, alt.value(1), alt.value(0.2)) # Hide unselected lines
).add_selection(
aselection
).properties(
title="Interactive Time Series Plot"
)
< /code>
Теперь легенда работает так, как я хочу (вы можете выбрать несколько серий путем переключения смены), но невыбранные временные ряды все еще отображаются на графике, просто в более жарком цвете. Если я сделаю диаграмму интерактивной, то конечный пользователь часто будет в конечном итоге нажимать на невыбранную серию случайно, так что это определенно не то, что я тоже хочу.
Есть ли способ сделать то, что я хочу?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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