Recommander un artefact de visualisation Python avec une seule ligne de code

Les amis qui ont étudié l'analyse des données Python savent qu'il existe de nombreuses excellentes bibliothèques tierces dans les outils de visualisation, telles que matplotlib, seaborn, plotly, Boken, pyecharts, etc. Ces bibliothèques de visualisation ont leurs propres caractéristiques et sont largement utilisées dans des applications pratiques.

Plotly, Boken, etc. sont tous des outils de visualisation interactifs qui, combinés au notebook Jupyter, peuvent afficher les résultats analysés de manière très flexible et pratique. Bien que l'effet soit très cool, comme plotly, mais chaque fois que vous devez écrire un long code, l'un est gênant et l'autre n'est pas facile à maintenir.

Je pense qu'au stade de l'analyse des données, il faut consacrer plus de temps à l'analyse, à la sélection des dimensions, au démantèlement et à la fusion, à la compréhension et au jugement des entreprises. Si vous pouvez réduire la quantité de code et créer des effets de visualisation sympas, cela améliorera considérablement l'efficacité. Bien entendu, sauf besoins particuliers, cette méthode s’adresse uniquement à ceux qui souhaitent visualiser et analyser rapidement.

Échange technologique

La technologie doit apprendre à partager et à communiquer, et il n’est pas recommandé de travailler à huis clos. Une personne peut aller vite et un groupe de personnes peut aller plus loin.

Les fichiers et codes pertinents ont été téléchargés et peuvent être obtenus en les ajoutant au groupe de communication. Le groupe compte plus de 2 000 membres. La meilleure façon d'ajouter des notes est la suivante : source + direction d'intérêt, afin qu'il soit pratique de trouver des personnes partageant les mêmes idées. amis.

Méthode ①, ajouter un compte WeChat : dkl88194, remarques : depuis CSDN + ajouter un groupe
Méthode ②, compte officiel de recherche WeChat : apprentissage Python et exploration de données, réponse en arrière-plan : ajouter un groupe

Cet article vous présente un excellent outil, les boutons de manchette , qui peut parfaitement résoudre ce problème, et l'effet est tout aussi cool.

Introduction aux boutons de manchette

Tout comme Seaborn encapsule matplotlib, cufflinks a créé un autre package basé sur plotly, avec des méthodes unifiées et une configuration simple des paramètres. Deuxièmement, il peut également dessiner des images de manière libre et flexible en combinaison avec le dataframe pandas. Cela peut être décrit comme **"les pandas aiment la visualisation"**

Il n'est pas exagéré de dire que je n'ai besoin que d'une seule ligne de code pour dessiner toutes sortes de graphiques visuels sympas, ce qui est très efficace et abaisse le seuil d'utilisation.

Le lien github des boutons de manchette est le suivant :

https://github.com/santosjorge/cufflinks

installation de boutons de manchette

Pas grand chose à dire sur l'installation, il suffit de pip install directement.

pip install cufflinks

Comment sont utilisés les boutons de manchette ?

La bibliothèque de boutons de manchette a été continuellement mise à jour et la dernière version est la V0.14.0, qui prend en charge plotly3.0. Voyons d’abord quels types de graphiques il prend en charge, qui peuvent être visualisés via l’aide.

import cufflinks as cf
cf.help()

Use 'cufflinks.help(figure)' to see the list of available parameters for the given figure.
Use 'DataFrame.iplot(kind=figure)' to plot the respective figure
Figures:
  bar
  box
  bubble
  bubble3d
  candle
  choroplet
  distplot
  heatmap
  histogram
  ohlc
  pie
  ratio
  scatter
  scatter3d
  scattergeo
  spread
  surface
  violin

La méthode d'utilisation est en fait très simple, je résume, son format est à peu près comme ceci :

image

  • DataFrame : un bloc de données représentant les pandas ;

  • Figure : représente les graphiques dessinables que nous avons vus ci-dessus, tels qu'une barre, un cadre, un histogramme, etc. ;

  • iplot : représente la méthode de dessin, dans laquelle de nombreux paramètres peuvent être configurés pour ajuster les graphiques visuels qui correspondent à votre propre style ;

exemple de boutons de manchette

Nous utilisons quelques exemples pour expérimenter l’utilisation ci-dessus. Les amis qui ont utilisé plotly savent peut-être que si le mode en ligne est utilisé, les graphiques générés sont limités. Par conséquent, nous l’avons d’abord mis en mode hors ligne, afin d’éviter le problème de limite de nombre.

import pandas as pd
import cufflinks as cf
import numpy as np

cf.set_config_file(offline=True)

Ensuite, nous devons opérer selon le format d'utilisation ci-dessus. Tout d'abord, nous devons avoir un DataFrame. S'il n'y a pas de données à portée de main, nous pouvons d'abord générer un nombre aléatoire. cufflinks dispose d'une méthode pour générer des nombres aléatoires appelée datagen, qui est utilisée pour générer des données aléatoires de différentes dimensions, telles que les suivantes.

graphique linéaire

cf.datagen.lines(1,500).ta_plot(study='sma',periods=[13,21,55])

1) les boutons de manchette utilisent Datagen pour générer des nombres aléatoires ;

2) Le chiffre est défini sous forme de lignes et les données sont (1 500) ;

3) Utilisez ensuite ta_plot pour dessiner cet ensemble de séries chronologiques et définissez les paramètres sur SMA pour afficher l'analyse temporelle de trois périodes différentes.

image

boîte à moustaches

Toujours la même chose que l'utilisation ci-dessus, une ligne de code à résoudre.

cf.datagen.box(20).iplot(kind='box',legend=False)

image

On peut voir que chaque case sur l'axe X a un nom correspondant, car Cufflinks reconnaît le graphique de la boîte via le paramètre kind et génère automatiquement un nom pour celui-ci. Si nous générons uniquement des nombres aléatoires, cela ressemble à ceci : par défaut, 100 lignes de données distribuées aléatoirement sont générées et le nombre de colonnes est sélectionné par nous-mêmes.

image

histogramme histogramme

cf.datagen.histogram(3).iplot(kind='histogram')

image

Comme plotly, nous pouvons distinguer et sélectionner la zone spécifiée via une petite sélection de boîte à outils auxiliaire ou une sélection au lasso, aussi longue qu'une ligne de code.

Bien sûr, en plus des données aléatoires, toute autre trame de données convient, y compris les données que nous avons nous-mêmes importées.

graphique à barres d'histogramme

df=pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
df.iplot(kind='bar',barmode='stack')

image

Ci-dessus, nous avons généré une trame de données dataframe (10,4), les noms sont a, b, c, d. Ensuite, les boutons de manchette identifieront et dessineront automatiquement les graphiques en fonction du type dans iplot. Le paramètre est défini en mode pile.

nuage de points

df = pd.DataFrame(np.random.rand(50, 4), columns=['a', 'b', 'c', 'd'])
df.iplot(kind='scatter',mode='markers',colors=['orange','teal','blue','yellow'],size=10)

image

graphique à bulles

df.iplot(kind='bubble',x='a',y='b',size='c')

image

matrice de dispersion

df = pd.DataFrame(np.random.randn(1000, 4), columns=['a', 'b', 'c', 'd'])
df.scatter_matrix()

image

sous-parcelles sous-parcelles

df=cf.datagen.lines(4)
df.iplot(subplots=True,shape=(4,1),shared_xaxes=True,vertical_spacing=.02,fill=True)

image

df.iplot(subplots=True,subplot_titles=True,legend=False)

image

Un autre exemple est un peu plus compliqué.

df=cf.datagen.bubble(10,50,mode='stocks')
figs=cf.figures(df,[dict(kind='histogram',keys='x',color='blue'),
                    dict(kind='scatter',mode='markers',x='x',y='y',size=5),
                    dict(kind='scatter',mode='markers',x='x',y='y',size=5,color='teal')],asList=True)
figs.append(cf.datagen.lines(1).figure(bestfit=True,colors=['blue'],bestfit_colors=['pink']))
base_layout=cf.tools.get_base_layout(figs)
sp=cf.subplots(figs,shape=(3,2),base_layout=base_layout,vertical_spacing=.15,horizontal_spacing=.03,
               specs=[[{
    
    'rowspan':2},{
    
    }],[None,{
    
    }],[{
    
    'colspan':2},None]],
               subplot_titles=['Histogram','Scatter 1','Scatter 2','Bestfit Line'])
sp['layout'].update(showlegend=False)
cf.iplot(sp)

image

formes forme carte

Si nous souhaitons ajouter des lignes droites sur le diagramme de lignes comme référence, nous pouvons utiliser le diagramme de type hlines à ce stade.

df=cf.datagen.lines(3,columns=['a','b','c'])
df.iplot(hline=[dict(y=-1,color='blue',width=3),dict(y=1,color='pink',dash='dash')])

image

Ou pour marquer une certaine zone, vous pouvez utiliser le type hspan.

df.iplot(hspan=[(-1,1),(2,5)])

image

Ou la zone de la barre verticale, vous pouvez utiliser le type vspan.

df.iplot(vspan={
    
    'x0':'2015-02-15','x1':'2015-03-15','color':'teal','fill':True,'opacity':.4})

image

Si vous n'êtes pas familier avec les paramètres d'iplot, vous pouvez saisir directement le code suivant pour interroger.

help(df.iplot)

Résumer

Et si, n'est-ce pas très rapide et pratique ? L'introduction ci-dessus est un type dessinable général, bien sûr, vous pouvez créer des graphiques plus visuels en fonction de vos besoins. S'il s'agit d'un graphique régulier, il peut être réalisé en une seule ligne. De plus, les boutons de manchette disposent également de puissantes fonctions de gestion des couleurs, si vous êtes intéressé, vous pouvez apprendre par vous-même.

Je suppose que tu aimes

Origine blog.csdn.net/qq_34160248/article/details/132652477
conseillé
Classement