Recommandation d'Altair! Visualisation des données avec Python

À propos de cet article

Présentation de ** Altair **, la bibliothèque de visualisation de données de Python. Puisqu'il y a peu d'informations en japonais, j'écrirai un article à usage missionnaire. Si vous maîtrisez l'anglais, il est plus facile de consulter la Page officielle.

Installation

Il peut être facilement installé avec la commande pip. vega_datasets sera utilisé plus tard, alors installons-les ensemble.

pip install altair vega_datasets

J'ai utilisé Google Colaboratory et cela a fonctionné depuis le début sans installation.

Préparation préalable

Chargez la bibliothèque et l'ensemble de données ci-dessous.

import altair as alt
from vega_datasets import data
iris = data.iris()

Altair est doué pour travailler avec Pandas, et ʻiris` est le DataFrame de Pandas.

Visualisation de base

Ce qui suit est le code supposé à visualiser directement avec Jupyter, etc. Si vous voulez sortir en html, ajoutez .save (" filename.html ") à la fin. Vous n'avez pas besoin d'avoir .interactive (), mais si vous l'écrivez, vous pourrez déplacer le graphique. ** Cet article est une image normale, donc si vous souhaitez le déplacer, veuillez utiliser ici **.

Exemple ① Diagramme de dispersion

image.png

Spécifiez les valeurs des axes x et y comme suit: Vous pouvez également écrire ʻalt.X () `comme un commentaire, et l'utiliser pour une visualisation compliquée.

alt.Chart(iris).mark_point().encode(
    x="sepalLength", # alt.X("sepalLength"),
    y="sepalWidth", # alt.Y("sepalWidth"),
    color="species"
).interactive()

Exemple ② Graphique à barres

image.png

Le but est de prendre la moyenne pour chaque «espèce» avec «moyenne ()». Vous pouvez effectuer diverses opérations autres que la moyenne, et vous pouvez consulter la liste à ici.

alt.Chart(iris).mark_bar().encode(
    x="average(sepalLength)", # alt.X("sepalLength", aggregate="average"),
    y="species", # alt.Y("species"),
).interactive()

Le point est comme ça. Si vous remplacez la partie make_xxxxx par make_line, vous pouvez facilement dessiner un graphique linéaire. Si vous avez un problème, vous pouvez généralement le résoudre en recherchant un graphique similaire dans Gallery sur la page officielle.

CONSEILS (peuvent être ajoutés)

Affichage des informations en survolant la souris

image.png

Les informations spécifiées par l'argument tooltip sont affichées en survolant la souris.

alt.Chart(iris).mark_point().encode(
    x="sepalLength",
    y="sepalWidth",
    color="species",
    tooltip=["sepalLength", "sepalWidth", "petalLength", "petalWidth", "species"]
).interactive()

Je ne veux pas écrire l'axe à partir de 0

image.png

Les données quantitatives sont essentiellement visualisées avec 0. Le graphique ci-dessus indique clairement qu'il ne contient pas 0 avec «zéro = Faux».

alt.Chart(iris).mark_point().encode(
    alt.X("sepalLength", scale=alt.Scale(zero=False)),
    alt.Y("sepalWidth", scale=alt.Scale(zero=False)),
    color="species"
).interactive()

Spécification du type de données

image.png

L'échelle nominale est souvent un entier, n'est-ce pas? Dans ce cas, spécifiez qu'il s'agit d'une échelle nominale, telle que species_int: N. À propos, l'échelle de commande est «: O», et pour les données quantitatives, c'est «: Q». Les détails peuvent être trouvés dans la documentation officielle ici.

#Convertir en valeur entière(setosa: 0, versicolor: 1, virginica: 2)
iris["species_int"] = [["setosa", "versicolor", "virginica"].index(x) for x in iris["species"]]

#Exemple correct
alt.Chart(iris).mark_point().encode(
    x="sepalLength",
    y="sepalWidth",
    color="species_int:N"
).interactive()

Au fait, sans «: N», ce sera comme suit. image.png

Prend en charge MaxRowError

Je me fâche quand je dépasse 5000 lignes. Exécutez ce qui suit en vous référant aux informations dans ici.

alt.data_transformers.disable_max_rows()

finalement

Il peut être décrit simplement et est pratique pour une analyse exploratoire. S'il y a un inconvénient, la sortie html est facile, mais la sortie png semble être un peu difficile. FYI!

Recommended Posts

Recommandation d'Altair! Visualisation des données avec Python
Visualisez facilement vos données avec Python seaborn.
Analyse de données à partir de python (visualisation de données 1)
Analyse de données à partir de python (visualisation de données 2)
Analyse de données avec python 2
Bibliothèques de visualisation de données Python
Visualisation des données avec les pandas
Analyse de données avec Python
Visualisation de la logistique avec Python
Visualisation en temps réel des données thermographiques AMG8833 en Python
Recommandation de la bibliothèque binpacking de python
Recommandation de construction d'un environnement Python portable avec conda
Visualisation des données par préfecture
Vue d'ensemble et astuces de Seaborn avec visualisation de données statistiques
Défiez l'analyse des composants principaux des données textuelles avec Python
Application Python: visualisation de données, partie 2: matplotlib
[Bases de la science des données] Collecte de données depuis RSS avec python
Lire des données json avec python
Essayez de gratter les données COVID-19 Tokyo avec Python
Remarques sur la gestion de grandes quantités de données avec python + pandas
Débarrassez-vous des données sales avec Python et les expressions régulières
L'histoire du rubyiste aux prises avec Python :: Dict data with pycall
[Homologie] Comptez le nombre de trous dans les données avec Python
Implémentez la normalisation du prétraitement des données d'entraînement Python avec scikit-learn [fit_transform]
Résumé de base de la manipulation de données avec Python Pandas - Première moitié: création et manipulation de données
[Python] Que faites-vous avec la visualisation de 4 variables ou plus?
[ns3-30] Activer la visualisation des scripts Python
Comment utiliser correctement le package de visualisation Python
[Python] Obtenez des données économiques avec DataReader
Premiers pas avec Python Bases de Python
Recommandation de résolution des problèmes d'AtCoder avec python (20200517-0523)
Structure de données Python apprise avec la chimioinfomatique
Jeu de vie avec Python! (Le jeu de la vie de Conway)
10 fonctions du "langage avec batterie" python
Recommandation d'analyse des données à l'aide de MessagePack
Implémentation de la méthode Dyxtra par python
Application Python: visualisation de données partie 1: basique
Traiter les données Pubmed .xml avec python
Coexistence de Python2 et 3 avec CircleCI (1.0)
Implémentez "Data Visualization Design # 2" avec matplotlib
Application de Python: Nettoyage des données Partie 2: Nettoyage des données à l'aide de DataFrame
Etude de base d'OpenCV avec Python
Impressions de toucher Dash, un outil de visualisation de données réalisé par python
[Python] Visualisation des données longitudinales (tracé, moustaches, diagramme de violon, intervalle de confiance, histogramme)
Obtenez des données supplémentaires vers LDAP avec python
Construction de pipeline de données avec Python et Luigi
[Exemple d'amélioration de Python] Apprentissage de Python avec Codecademy
Recevoir des données textuelles de mysql avec python
[Note] Obtenir des données de PostgreSQL avec Python
Application de Python: visualisation de données Partie 3: divers graphiques
Outil de visualisation Python pour le travail d'analyse de données
Traiter les données Pubmed .xml avec python [Partie 2]
Exécuter le script Python avec TS-220 cron
Obtenez des données alimentaires avec l'API Amazon (Python)
Essayez de travailler avec des données binaires en Python
Générer des données de test japonais avec Python Faker
Vérifier l'existence du fichier avec python
Convertir des données Excel en JSON avec python