Maison >développement back-end >Tutoriel Python >Merveilleux! Cet outil de visualisation de données Python est puissant !

Merveilleux! Cet outil de visualisation de données Python est puissant !

PHPz
PHPzavant
2023-04-15 09:28:02931parcourir

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 :

Exemple

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',
)

Merveilleux! Cet outil de visualisation de données Python est puissant !

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

Merveilleux! Cet outil de visualisation de données Python est puissant !

Méthode d'installation

Altair nécessite les dépendances suivantes :

  • pandas
  • traitlets
  • IPython

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

Trois opérations majeures

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

Merveilleux! Cet outil de visualisation de données Python est puissant !

Merveilleux! Cet outil de visualisation de données Python est puissant !

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"
)

Merveilleux! Cet outil de visualisation de données Python est puissant !

Syntaxe de base d'Altair en quatre étapes :

  • Transmettez les données dans un objet Chart, qui peut prendre la forme d'un bloc de données Pandas ou d'une chaîne d'URL pointant vers un fichier json ou csv.
  • Sélectionnez le type de visualisation (par exemple mark_circle, mark_line, etc.).
  • encode La fonction d'encodage spécifie ce qu'il faut tracer dans un bloc de données donné. Par conséquent, tout ce que nous écrivons dans la fonction d’encodage doit être lié à la trame de données.
  • Utilisez la fonction propriétés pour spécifier certaines propriétés du graphique.

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"
)

Merveilleux! Cet outil de visualisation de données Python est puissant !

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"
)

Merveilleux! Cet outil de visualisation de données Python est puissant !

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
)

Merveilleux! Cet outil de visualisation de données Python est puissant !

Expliquons chaque étape en détail :

  • transform_lookup : Trouver le prix à partir du cadre de données de prix.
  • transform_filter : filtre les prix inférieurs à 20 $.
  • transform_aggregate : Regroupez les prix par type de commande et calculez la moyenne.

Conclusion

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer