Mit Altair können Sie mehr Zeit damit verbringen, sich auf die Daten und ihre Bedeutung zu konzentrieren, was ich im Folgenden ausführlich erläutern werde:
Hier ist ein Beispiel für die Verwendung von Altair in JupyterLab zur schnellen Visualisierung und Anzeige eines Datensatzes :
import altair as alt # load a simple dataset as a pandas DataFrame from vega_datasets import data cars = data.cars() alt.Chart(cars).mark_point().encode( x='Horsepower', y='Miles_per_Gallon', color='Origin', )
Eine der einzigartigen Eigenschaften von Altair von Vega-Lite ist die deklarative Syntax, die nicht nur visuell, sondern auch interaktiv ist. Mit einigen Modifikationen am obigen Beispiel können wir ein verknüpftes Histogramm erstellen, das basierend auf der Streudiagrammauswahl gefiltert wird.
import altair as alt from vega_datasets import data source = data.cars() brush = alt.selection(type='interval') points = alt.Chart(source).mark_point().encode( x='Horsepower', y='Miles_per_Gallon', color=alt.condition(brush, 'Origin', alt.value('lightgray')) ).add_selection( brush ) bars = alt.Chart(source).mark_bar().encode( y='Origin', color='Origin', x='count(Origin)' ).transform_filter( brush ) points & bars
Altair erfordert die folgenden Abhängigkeiten:
Wenn Sie das Repository geklont haben, führen Sie den folgenden Befehl im Stammverzeichnis des Repositorys aus:
pip install -e .[dev]
Wenn Sie das Repository nicht klonen möchten, können Sie es mit dem folgenden Befehl installieren:
pip install git+https://github.com/altair-viz/altair
Weitere Details finden Sie unter dem Github-Link:
https://github.com/altair-viz/altair
Als nächstes werde ich stellen Sie detailliert vor, wie Altair Filter und visuelle Objekte für Gruppierungs- und Zusammenführungsvorgänge erstellt, die als Teil eines explorativen Datenanalyseprozesses verwendet werden können.
Wir erstellen zwei Datenrahmen aus simulierten Daten. Das erste ist die Restaurantbestellung und das zweite ist der Preis des Artikels in der Restaurantbestellung.
# import libraries import numpy as np import pandas as pd import altair as alt import random # mock data orders = pd.DataFrame({ "order_id": np.arange(1,101), "item": np.random.randint(1, 50, size=100), "qty": np.random.randint(1, 10, size=100), "tip": (np.random.random(100) * 10).round(2) }) prices = pd.DataFrame({ "item": np.arange(1,51), "price": (np.random.random(50) * 50).round(2) }) order_type = ["lunch", "dinner"] * 50 random.shuffle(order_type) orders["order_type"] = order_type
Zuerst erstellen wir ein einfaches Diagramm zur Altair-Syntaxstruktur.
alt.Chart(orders).mark_circle(size=50).encode( x="qty", y="tip", color="order_type" ).properties( title = "Tip vs Quantity" )
Grundlegende Altair-Syntax in vier Schritten:
Stellen Sie sich eine Situation vor, in der wir ein Streudiagramm von Pirce- und Tip-Werten erstellen müssen, die sich in unterschiedlichen Datenrahmen befinden. Eine Möglichkeit besteht darin, die beiden Datenrahmen zusammenzuführen und diese beiden Spalten in einem Streudiagramm zu verwenden.
Altair bietet eine praktischere Methode, die das Auffinden von Spalten in anderen Datenrahmen ermöglicht, ähnlich der Zusammenführungsfunktion von Pandas.
alt.Chart(orders).mark_circle(size=50).encode( x="tip", y="price:Q", color="order_type" ).transform_lookup( lookup="item", from_=alt.LookupData(data=prices, key="item", fields=["price"]) ).properties( title = "Price vs Tip" )
Die transform_lookup-Funktion ähnelt der Merge-Funktion von Pandas. Die zum Abgleich der Beobachtungen verwendeten Spalten (d. h. Zeilen) werden an den Suchparameter übergeben. Der Parameter „Felder“ wird verwendet, um die erforderlichen Spalten aus einem anderen Datenrahmen auszuwählen.
Wir können auch eine Filterkomponente in die Darstellung integrieren, die es uns ermöglicht, Datenpunkte mit Preisen über 10 $ darzustellen.
alt.Chart(orders).mark_circle(size=50).encode( x="tip", y="price:Q", color="order_type" ).transform_lookup( lookup="item", from_=alt.LookupData(data=prices, key="item", fields=["price"]) ).transform_filter( alt.FieldGTPredicate(field='price', gt=10) ).properties( title = "Price vs Tip" )
Zum Filtern wird die Funktion transform_filter verwendet. FieldGTPredicate verarbeitet „Größer als“-Bedingungen.
Neben dem Filtern und Zusammenführen ermöglicht Ihnen Altair auch das Gruppieren von Datenpunkten vor dem Plotten. Wir können beispielsweise ein Balkendiagramm erstellen, das den Durchschnittspreis eines Artikels für jede Bestellart anzeigt. Darüber hinaus können wir dies für Artikel mit einem Preis unter 20 $ tun.
alt.Chart(orders).mark_bar().encode( y="order_type", x="avg_price:Q" ).transform_lookup( lookup="item", from_=alt.LookupData(data=prices, key="item", fields=["price"]) ).transform_filter( alt.FieldLTPredicate(field='price', lt=20) ).transform_aggregate( avg_price = "mean(price)", groupby = ["order_type"] ).properties( height=200, width=300 )
Lassen Sie uns jeden Schritt im Detail erklären:
Der Unterschied zwischen Altair und anderen gängigen Visualisierungsbibliotheken besteht darin, dass es Datenanalysekomponenten nahtlos in die Visualisierung integrieren kann, was es zu einem sehr praktischen Datenexplorationstool macht.
Filtern, Zusammenführen und Gruppieren sind für den explorativen Datenanalyseprozess von entscheidender Bedeutung. Mit Altair können Sie alle diese Vorgänge beim Erstellen von Datenvisualisierungen ausführen. In diesem Sinne kann Altair auch als Datenanalysetool betrachtet werden. Wenn Sie interessiert sind, probieren Sie es jetzt aus.
Das obige ist der detaillierte Inhalt vonWunderbar! Dieses Python-Datenvisualisierungstool ist leistungsstark!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!