Maison >développement back-end >Tutoriel Python >Merveilleux! Cet outil de visualisation de données Python est puissant !
En utilisant Altair, vous pouvez passer plus de temps à vous concentrer sur les données et leur signification, que j'expliquerai en détail ci-dessous :
Voici un exemple d'utilisation d'Altair dans JupyterLab pour visualiser et afficher rapidement un ensemble de données :
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', )
L'une des caractéristiques uniques d'Altair de Vega-Lite est la syntaxe déclarative, qui est non seulement visuelle mais aussi interactive. Avec quelques modifications par rapport à l'exemple ci-dessus, nous pouvons créer un histogramme lié qui est filtré en fonction de la sélection du nuage de points.
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 nécessite les dépendances suivantes :
Si vous avez cloné le référentiel, exécutez la commande suivante depuis la racine du référentiel :
pip install -e .[dev]
Si Si vous ne souhaitez pas cloner le référentiel, vous pouvez utiliser la commande suivante pour l'installer :
pip install git+https://github.com/altair-viz/altair
Pour plus de détails, vous pouvez consulter le lien github :
https://github.com/altair-viz/altair
Ensuite, je vais présenter en détail comment Altair crée des filtres, des objets visuels pour les opérations de regroupement et de fusion qui peuvent être utilisés dans le cadre d'un processus d'analyse exploratoire des données.
Nous construisons deux trames de données de données simulées. Le premier est la commande du restaurant et le second est le prix de l’article dans la commande du restaurant.
# 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
Tout d'abord, nous créons un diagramme simple pour la structure syntaxique d'Altair.
alt.Chart(orders).mark_circle(size=50).encode( x="qty", y="tip", color="order_type" ).properties( title = "Tip vs Quantity" )
Syntaxe de base d'Altair en quatre étapes :
Considérons une situation dans laquelle nous devons créer un nuage de points de valeurs de prix et de pourboire, qui se trouvent dans des cadres de données différents. Une option consiste à fusionner les deux trames de données et à utiliser ces deux colonnes dans un nuage de points.
Altair propose une méthode plus pratique qui permet de rechercher des colonnes dans d'autres blocs de données, similaire à la fonction de fusion de 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" )
La fonction transform_lookup est similaire à la fonction de fusion de Pandas. Les colonnes (c'est-à-dire les lignes) utilisées pour correspondre aux observations sont transmises au paramètre de recherche. Le paramètre field est utilisé pour sélectionner les colonnes requises à partir d’une autre trame de données.
Nous pouvons également intégrer un composant de filtre dans le tracé, nous permettant de tracer des points de données avec des prix supérieurs à 10 $.
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" )
La fonction transform_filter est utilisée pour le filtrage. FieldGTPredicate gère les conditions « supérieur à ».
En plus du filtrage et de la fusion, Altair vous permet également de regrouper des points de données avant de tracer. Par exemple, nous pouvons créer un graphique à barres qui affiche le prix moyen d'un article pour chaque type de commande. De plus, nous pouvons le faire pour les articles dont le prix est inférieur à 20 $.
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 )
Expliquons chaque étape en détail :
La différence entre Altair et les autres bibliothèques de visualisation courantes est qu'elle peut intégrer de manière transparente des composants d'analyse de données dans la visualisation, ce qui en fait un outil d'exploration de données très pratique.
Le filtrage, la fusion et le regroupement sont essentiels au processus d'analyse exploratoire des données. Altair vous permet d'effectuer toutes ces opérations lors de la création de visualisations de données. En ce sens, Altair peut également être considéré comme un outil d’analyse de données. Si vous êtes intéressé, essayez-le maintenant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!