Ich möchte mit den folgenden Eigenschaften ein Diagramm in Altair erstellen: < /p>
Es zeigt mehrere Zeitreihen < /li>
Ich kann auswählen, welche Zeitreihen angezeigt werden, indem Sie auf die Legende klicken. In der Legende nicht ausgewählt, können Sie es in der Legende immer noch sehen.
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
Es scheint, dass die Transformation_Filter eine nicht ausgewählte Serie aus dem Diagramm verschwinden lässt, aber dies zwingt es auch, aus der Legende zu verschwinden. Ich möchte, dass es aus dem Diagramm verschwindet, aber in der Legende bleibt.
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>
Jetzt funktioniert die Legende so, wie ich es gewünscht habe (Sie können mehrere Serien durch Verschiebungsklicken auswählen), aber eine nicht ausgewählte Zeitreihe wird weiterhin in der Tabelle angezeigt, nur in blasserer Farbe. Wenn ich das Diagramm interaktiv mache, klickt der Endbenutzer häufig versehentlich auf eine nicht ausgewählte Serie. Dies ist also definitiv auch nicht das, was ich möchte. Gibt es eine Möglichkeit, das Diagramm interaktiv zu gestalten, aber das Klicken zu deaktivieren?achart = alt.Chart(df).mark_line().encode(
x="Date:T",
y="Value:Q",
color="Device:N", # Keep the color consistent
).transform_filter(
aselection
).add_selection(aselection)
chart2 = alt.Chart(df).encode(
x="Date:T",
y="Value:Q",
color="Device:N", # Keep the color consistent # Hide unselected lines
).mark_line(opacity=0).properties(
title="Interactive Time Series Plot"
)
chart2 + achart.interactive()
Gibt es eine Möglichkeit, das zu tun, was ich will?
[url=viewtopic.php?t=14917]Ich möchte[/url] mit den folgenden Eigenschaften ein Diagramm in Altair erstellen: < /p>
Es zeigt mehrere Zeitreihen < /li> Ich kann auswählen, welche Zeitreihen angezeigt werden, indem Sie auf die Legende klicken. In der Legende nicht ausgewählt, können Sie es in der Legende immer noch sehen.[code]import pandas as pd import altair as alt
# 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 [/code] Es scheint, dass die Transformation_Filter eine nicht ausgewählte Serie aus dem Diagramm verschwinden lässt, aber dies zwingt es auch, aus der Legende zu verschwinden. Ich möchte, dass es aus dem Diagramm verschwindet, aber in der Legende bleibt.[code]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> Jetzt funktioniert die Legende so, wie ich es gewünscht habe (Sie können mehrere Serien durch Verschiebungsklicken auswählen), aber eine nicht ausgewählte Zeitreihe wird weiterhin in der Tabelle angezeigt, nur in blasserer Farbe. Wenn ich das Diagramm interaktiv mache, klickt der Endbenutzer häufig versehentlich auf eine nicht ausgewählte Serie. Dies ist also definitiv auch nicht das, was ich möchte. Gibt es eine Möglichkeit, das Diagramm interaktiv zu gestalten, aber das Klicken zu deaktivieren?achart = alt.Chart(df).mark_line().encode( x="Date:T", y="Value:Q", color="Device:N", # Keep the color consistent ).transform_filter( aselection ).add_selection(aselection)
chart2 = alt.Chart(df).encode( x="Date:T", y="Value:Q", color="Device:N", # Keep the color consistent # Hide unselected lines ).mark_line(opacity=0).properties( title="Interactive Time Series Plot" )
chart2 + achart.interactive() [/code] Gibt es eine Möglichkeit, das zu tun, was ich will?
Ich verwende die TeeChart WPF-Bibliothek in meiner Anwendung und stoße auf eine Ausnahme, wenn ich versuche, eine FastLine-Reihe zur Seriensammlung eines Diagramms hinzuzufügen.
Hier ist mein Code:...
Ich habe eine Tabelle mit der Spalte „additional_session_end_ts“ vom Typ TIME WITHOUT TIME ZONE und in dieser Spalte können Nullwerte vorhanden sein.
Ich habe eine einfache Methode im Repository...
Ich versuche, mein Altair -Diagramm in Streamlit Etiketten hinzuzufügen, aber die Beispielcodes funktionieren nur dann, wenn die Werte entweder alle positiv oder alle negativ sind. Ich möchte, dass...
Ich versuche, Daten für jeden Tag zu zeichnen. Abhängig von der Auswahl der Daten kann es einige Tage oder mehrere Monate dauern. In beiden Fällen möchte ich die gleiche Skala (1 bar pro Tag)
Ich...
Ich versuche, einen Tensorflow -Code für einfache Timeseries -Vorhersage in Where zu validieren:
X = np.arange(0, 2000, 0.5)
y = 2 * np.sin(X) + 0.8 * np.random.rand(X.shape )