introduction
Récemment, Je lisais une vidéo de la conférence SciPy 2015, « Création d'applications de données Python avec Blaze et Bokeh", Récemment tenue à Austin, Texas, EE. UU. Je ne pouvais pas m'empêcher de penser à la puissance que ces deux bibliothèques apportent aux data scientists utilisant Python dans le monde entier.. Dans cet article, Je vais vous présenter le monde des possibilités de visualisation de données à l'aide de Bokeh et pourquoi je pense qu'il s'agit d'une bibliothèque que tous les scientifiques des données devraient apprendre / utiliser.
La source: bokeh.pydata.org
Qu'est-ce que Bokeh?
Bokeh est une bibliothèque Python pour la visualisation interactive qui cible les navigateurs Web pour le rendu. C'est la principale différence entre Bokeh et les autres bibliothèques d'affichage. Regardez l'instantané ci-dessous, qui explique le flux de processus de la façon dont Bokeh aide à présenter les données à un navigateur Web.
La source: Analyse de continuum
Comme tu peux le voir, Bokeh a plusieurs liens linguistiques (Python, R, Lua et Julia). Ces liens produisent un fichier JSONJSON, o Notation d’objet JavaScript, Il s’agit d’un format d’échange de données léger, facile à lire et à écrire pour les humains, et facile à analyser et à générer pour les machines. Il est couramment utilisé dans les applications Web pour envoyer et recevoir des informations entre un serveur et un client. Sa structure est basée sur des paires clé-valeur, ce qui le rend polyvalent et largement adopté dans le développement de logiciels.., qui fonctionne comme entrée pour BokehJS (une bibliothèque javascript), qui à son tour présente les données aux navigateurs Web modernes.
Bokeh peut produire un affichage élégant et interactif comme D3.js avec une interactivité haute performance sur des ensembles de données très volumineux ou en streaming. Bokeh peut aider tous ceux qui souhaitent créer rapidement et facilement des graphiques, tableaux de bord de données interactifs et applications.
Qu'est-ce que Bokeh offre à un data scientist comme moi?
J'ai commencé mon parcours en science des données en tant que professionnel de la BI, puis j'ai travaillé sur la modélisation prédictive, science des données et apprentissage automatique. Je me suis principalement appuyé sur des outils tels que QlikView et Tableau pour la visualisation des données et SAS et Python pour l'analyse prédictive et la science des données.. J'avais presque aucune expérience avec JavaScript.
Ensuite, pour toutes mes données ou idées de produits, J'ai dû externaliser le travail ou présenter mes idées via des wire-frames, qui ne sont pas idéales pour construire des prototypes rapides. À présent, Bokeh con, puis-je continuer à travailler dans l'écosystème python, mais je peux quand même créer ces prototypes rapidement.
Avantages du bokeh:
- Bokeh vous permet de créer des graphiques statistiques complexes rapidement et à l'aide de commandes simples
- Bokeh vous fournit une sortie dans divers médias comme html, ordinateur portable et serveur
- Nous pouvons également intégrer l'affichage Bokeh dans l'application flask et django
- Bokeh peut transformer l'affichage écrit dans d'autres bibliothèques comme matplotlib, marin, ggplot
- Bokeh a la flexibilité d'appliquer l'interaction, mises en page et différentes options de style d'affichage.
Défis avec Bokeh:
- Comme pour toute bibliothèque open source à venir, Le bokeh connaît un grand développement. Donc, le code que vous écrivez aujourd'hui peut ne pas être entièrement réutilisable à l'avenir.
- A relativement moins d'options d'affichage, par rapport à D3.js. Donc, il est peu probable qu'il défie D3.js pour sa couronne dans un avenir proche.
Étant donné les avantages et les défis, il est aujourd'hui idéal pour développer rapidement des prototypes. Cependant, si vous voulez créer quelque chose pour l'environnement de production, D3.js pourrait être votre meilleur choix.
Pour installer Bokeh, suivre les instructions données ici.
Visualisation avec Bokeh
Bokeh offre des fonctionnalités puissantes et flexibles qui confèrent simplicité et personnalisation très avancée. Fournir plusieurs interfaces d'affichage à l'utilisateur comme indiqué ci-dessous:
- Graphique: une haut niveau interface utilisée pour construire des graphiques statistiques complexes si rapidement et de manière simpliste.
- Graphique: un niveau intermédiaire interface qui se concentre sur la composition visuelle des glyphes.
- Des modèles: une niveau bas interface qui offre une flexibilité maximale aux développeurs d'applications.
Dans cet article, nous ne verrons que les graphismes et la disposition des deux premières interfaces. Nous discuterons des modèles et autres fonctionnalités avancées de cette bibliothèque dans le prochain article..
Graphique
Comme mentionné précédemment, est une interface de haut niveau utilisée pour présenter des informations sous la forme d'un affichage standard. Ces formulaires incluent box plot, graphique à barresLe graphique à barres est une représentation visuelle des données qui utilise des barres rectangulaires pour montrer des comparaisons entre différentes catégories. Chaque barre représente une valeur et sa longueur est proportionnelle à celle-ci. Ce type de graphique est utile pour visualiser et analyser les tendances, faciliter l’interprétation des informations quantitatives. Il est largement utilisé dans diverses disciplines, tels que les statistiques, Marketing et recherche, En raison de sa simplicité et de son efficacité...., diagramme de zone, carte de chaleurUn "carte de chaleur" est une représentation graphique qui utilise des couleurs pour montrer la densité des données dans une zone spécifique. Couramment utilisé dans l’analyse de données, Etudes marketing et comportementales, Ce type de visualisation vous permet d’identifier rapidement les modèles et les tendances. Par des variations chromatiques, Les cartes thermiques facilitent l’interprétation de grands volumes d’informations, aider à prendre des décisions éclairées...., diagramme de beignet et bien d'autres. Vous pouvez générer ces graphiques en passant simplement des blocs de données, matrices et dictionnaires.
Regardons la méthodologie commune pour créer un graphique:
- Importer la bibliothèque et les fonctions / méthodes
- Préparer les données
- Définir le mode de sortie (portable, navigateur Web ou serveur)
- Créer un graphique avec l'option de style (si c'est nécessaire)
- Voir le graphique
Pour mieux comprendre ces étapes, permettez-moi de démontrer ces étapes en utilisant l'exemple ci-dessous:
Exemple graphique 1: créer un graphique à barres et l'afficher dans un navigateur Web à l'aide de Bokeh
Nous suivrons les étapes énumérées ci-dessus pour créer un graphique:
#Importer la bibliothèque de bokeh.charts importer la barre, fichier de sortie, show #use output_notebook pour le visualiser dans le notebook
# préparer les données (données factices)
données = {"Oui": [1, 2, 3, 4, 5]}
# Sortie vers Line.HTML
fichier de sortie("lignes.html", titre="exemple de tracé de ligne") #mettre output_notebook() pour ordinateur portable
# créer une nouvelle discussion en ligne avec un titre et des étiquettes d'axe p = barre(Les données, titre="Exemple de graphique en courbes", xlabel="X", ylabel="valeurs", largeur=400, hauteur=400)
# montrer les résultats spectacle(p)
Dans le graphique ci-dessus, vous pouvez voir les outils en haut (Zoom, redimensionnement, redémarrer, zoom de rueda) et ces outils vous permettent d'interagir avec le graphique. Vous pouvez également voir les multiples options de graphique (Légende, xlabel, ylabel, xgrid, largeur, élevé et bien d'autres) et divers exemples de graphiques ici.
Exemple de graphique 2: Comparez la distribution de la longueur des sépales et de la longueur des pétales à partir de l'ensemble de données IRIS à l'aide de la boîte à moustaches du cahier
Pour créer cette visualisation, en premier lieu, je vais importer un ensemble de données d'iris à l'aide de la bibliothèque sklearn. Alors, suivez les étapes décrites ci-dessus pour afficher le graphique dans le cahier ipython.
#Ensemble de données IRIS à partir de sklearn.datasets importer load_iris importer des pandas au format pd iris = load_iris() df=pd.DataFrame(iris.data) df.columns=['petal_width','petal_length','sepal_width','sepal_length']
#Importer la bibliothèque de bokeh.charts importer BoxPlot, output_notebook, spectacle
données=df[['petal_length','sepal_length']]
# Sortie vers Notebook output_notebook()
# créer une nouvelle discussion en ligne avec un titre et des étiquettes d'axe p = BoxPlot(Les données, largeur=400, hauteur=400)
# montrer les résultats spectacle(p)
Exemple de graphique 3: créer un graphique en courbes sur le serveur bokeh
Avant de tracer la visualisation sur le serveur Bokeh, doit l'exécuter.
Si vous utilisez un package conda, vous pouvez utiliser la commande run serveur de bokeh depuis n'importe quel répertoire à l'aide de la commande. Le reste, python ./bokeh-server La commande devrait fonctionner en général. Pour plus de détails à ce sujet, regarde ce lien « Implémentation du serveur Bokeh".
Il y a plusieurs avantages à tracer l'affichage sur le serveur Bokeh:
- Les colis peuvent être publiés pour un public plus large
- Visualisez un grand ensemble de données de manière interactive
- Transmission de données pour mettre à jour les graphiques automatiquement
- Tableau de bord et création d'applications
Pour commencer à tracer sur le serveur Bokeh, j'ai exécuté la commande serveur de bokeh pour l'initialiser suivi des commandes utilisées pour l'affichage.

à partir de la figure d'importation bokeh.plotting, serveur_sortie, spectacle
serveur_sortie("ligne")
p = chiffre(largeur_intrigue=400, plot_height=400)
# ajouter un rendu de ligne
p.ligne([5, 2, 3, 4, 5], [5, 7, 2, 4, 5], largeur_ligne=2)
spectacle(p)
Graphique
Trace est un niveau intermédiaire interface qui se concentre sur la composition visuelle des glyphes. Ici, créer une visualisation en combinant plusieurs éléments visuels (point, cercles, ligne, patch et bien d'autres) Oui instruments (outil de défilement, Zoom, sauvegarder, réinitialiser et autres).
Graphismes bokeh créés avec le bokeh.traçage L'interface est livrée avec un ensemble d'outils et de styles visuels par défaut. Tracer, suivez les étapes ci-dessous:
- Importer la bibliothèque, méthodes ou fonctions
- Sélectionnez le mode de sortie (portable, Navigateur Web, serveur)
- Activer un chiffre"Chiffre" est un terme utilisé dans divers contextes, De l’art à l’anatomie. Dans le domaine artistique, fait référence à la représentation de formes humaines ou animales dans des sculptures et des peintures. En anatomie, désigne la forme et la structure du corps. En outre, en mathématiques, "chiffre" Il est lié aux formes géométriques. Sa polyvalence en fait un concept fondamental dans de multiples disciplines.... (similaire à matplotlib)
- Effectuer les opérations de traçage suivantes, affectera le chiffre généré.
- Visualisez-le
Pour mieux comprendre ces étapes, permettez-moi de démontrer ces étapes en utilisant les exemples ci-dessous:
Exemple graphique-1: Créez un carré de dispersion sur le cadre XY du bloc-notes
de bokeh.traçage importer chiffre, output_notebook, spectacle # sortie vers le bloc-notes output_notebook() p = chiffre(largeur_intrigue=400, plot_height=400) # ajouter un carré avec une taille, Couleur, et alpha p.carré([2, 5, 6, 4], [2, 3, 2, 1, 2], Taille=20, Couleur="marine") # montrer les résultats spectacle(p)
De la même manière, peut créer divers autres graphiques comme la ligne, cales et arc, ovales, images, patchs et bien d'autres, regarde ça Relier voir divers exemples.
Exemple de tracé-2: Combinez deux visuels dans un seul graphique
à partir de la figure d'importation bokeh.plotting, output_notebook, spectacle
# sortie vers le bloc-notes output_notebook() p = chiffre(largeur_intrigue=400, plot_height=400) # ajouter un carré avec une taille, Couleur, et alpha p.carré([2, 5, 6, 4], [2, 3, 2, 1, 2], taille=20, couleur="marine") p.ligne([1, 2, 3, 4, 5], [1, 2, 2, 4, 5], largeur_ligne=2) #ajout d'un tracé linéaire à la figure existante # montrer les résultats spectacle(p)

Exemple de tracé-3: Ajoutez un outil flottant et des étiquettes d'axe au graphique ci-dessus
à partir de la figure d'importation bokeh.plotting, output_notebook, spectacle de bokeh.models importer HoverTool, BoxSelectTool #Pour activer les outils
# sortie vers le bloc-notes output_notebook()
#Ajouter des outils OUTILS = [BoîteSélection Outil(), HoverTool()]
p = chiffre(largeur_intrigue=400, plot_height=400, outils=OUTILS)
# ajouter un carré avec une taille, Couleur, et alpha p.carré([2, 5, 6, 4], [2, 3, 2, 1, 2], taille=20, couleur="marine", alpha=0,5)
#Éléments visuels p.xaxis.axis_label = "Axe X" p.yaxis.axis_label = "Axe Y"
# montrer les résultats spectacle(p)

Pour plus de détails sur les attributs visuels et les outils, regarde ces liens:
Exemple de graphique-4: Carte de l'Inde utilisant les données de latitude et de longitude pour les limites
Noter: J'ai des données de polygone latitude longitude pour les frontières indiennes au format csv. je vais l'utiliser pour tracer.
Ici, nous irons avec le patch, voyons les commandes ci-dessous:
#Importer des bibliothèques
importer des pandas au format pd à partir de la figure d'importation bokeh.plotting, spectacle, output_notebook
#Importer les coordonnées de latitude et de lanogitude
Inde=pd.read_csv('E:/India.csv')
de l'Inde['ID']
Inde.index=['IN0','IN1','IN2','IN3','IN4','IN5']
#Convertir les valeurs de chaîne en flottant car les coordonnées dans le cadre de données sont des chaînes
pour j dans la plage(0,longueur(Inde)):
a = Inde['lats'][j]
Inde['lats'][j] = [flotter(je) pour moi dans un[1:longueur(une)-1].diviser(",")]
pour j dans la plage(0,longueur(Inde)):
a = Inde['lons'][j]
Inde['lons'][j] = [flotter(je) pour moi dans un[1:longueur(une)-1].diviser(",")]
# Option de sortie output_notebook()
# Créez votre intrigue p = chiffre(plot_height=400, largeur_intrigue=400, barre_outils_location="droit",x_axis_type=Aucun, y_axis_type=Aucun) p.correctifs(xs=Inde['lons'], ys=Inde['lats'], fill_color="blanche",line_color="le noir", line_width=0.5)
#Visualisez votre graphique spectacle(p)

Remarques finales
Dans cet article, nous analysons la création de visualisations à l'aide de Bokeh et des méthodes pour les présenter dans des cahiers, html et bokeh-server. Nous avons également discuté des méthodes de création d'une visualisation personnalisée à l'aide du traçage., ici, vous pouvez combiner plusieurs visuels pour représenter des informations.
Dans mon prochain article sur Bokeh, Je parlerai de modèles et de fonctionnalités d'affichage plus interactifs. Par exemple, J'ai coordonné les frontières pour chaque pays du monde. À présent, Je veux créer une visualisation pour représenter la carte de chaque pays dans un cycle (boucle). Commencez à dessiner avec une carte de pays et attendez 3 secondes et itération pour tous les pays. Ça a l'air intéressant! Ce n'est pas comme ça?
Avez-vous trouvé cet article utile? Faites-nous part de vos réflexions sur cet article dans la section commentaires ci-dessous..
Si vous aimez ce que vous venez de lire et souhaitez continuer à apprendre sur l'analyse, abonnez-vous à nos e-mails, Suivez-nous sur Twitter ou comme le nôtre page le Facebook.
En rapport
Articles Similaires:
- Chemin complet pour créer une visualisation interactive à l'aide de D3.js
- Tadaa SLR, ou comment prendre des photos avec effet bokeh (arrière-plan flou) comme sur l'iPhone 7 Plus / 8 Plus sur les anciens appareils
- Visualisation des données dans R | Guide de visualisation des données dans R
- Outils de visualisation de données | Les meilleurs outils de visualisation de données à maîtriser 2021







