Une série qui ajoute des ratios cumulatifs au graphique matplotlib
. Ajout du ratio cumulatif au graphique à barres. Cliquez ici pour le tracé terminé
Le fait est que matplotlib.bar ()
ne peut pas spécifier de variables catégorielles comme pour le nom bar
, il est donc nécessaire de dire où tracer sur l'axe des x. Plus précisément, numpy.arange ()
etc. est utilisé pour générer des numéros de série et des index pour le nombre de catégories et indiquer l'emplacement de l'axe des x.
"""Exemple d'ajout d'un ratio cumulatif à un graphique à barres de maptlolib"""
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
#Terrain cool dans le style marin
# % matplotlib inline
sns.set(style="darkgrid", palette="muted", color_codes=True)
#Génération de données de jouets
df = pd.DataFrame({'group': ['A', 'B', 'C', 'D', 'E'],
'value': [20, 30, 10, 50, 40]})
#Spécifier la position du tracé sur l'axe des x
#Il doit être généré car il ne le fait pas sans autorisation.
x_idx = np.arange(df.shape[0])
#Obtenez figue et hache pour l'intrigue
fig, ax = plt.subplots()
#Graphique à barres ajouté (1er axe)
bar = ax.bar(left=x_idx,
height=df['value'],
align='center',
tick_label=df['group'],
alpha=0.7
)
#Calculer le rapport cumulatif pour le 2ème axe
df['accumulative_ratio'] = df['value'].cumsum() / df['value'].sum()
#Ajout d'un graphique linéaire cumulatif au 2ème axe
ax2 = ax.twinx()
line = ax2.plot(x_idx,
df['accumulative_ratio'],
ls='--',
marker='o',
color='r'
)
ax2.grid(visible=False)
plt.show()
Le code complété avec la légende ajoutée est donné dans Gist.
Recommended Posts