[PYTHON] Implémentez "Data Visualization Design # 3" avec pandas et matplotlib

Qu'est-ce qu'une conception de visualisation de données?

Ceci est un résumé des points de visualisation de données publié en note par Go Ando de THE GUILD, qui est célèbre pour ses services axés sur l'UX et l'interface utilisateur.

https://note.mu/goando/n/n99f6c395ae8a

Qu'en est-il des numéros 1 et 2?

Remarques

plt.rcParams['font.family'] = 'Hiragino Sans'  

C'est la partie de.

13. Il est efficace de mettre un graphique dans le tableau

picture_pc_1bd02bdb34795599c91bc4e22a5657e2.png

Utilisez des pandas.

import pandas as pd
import numpy as np

%matplotlib inline
# data
apple_products = pd.DataFrame({"produit":["iPhone","iPad","Mac","Services","Other"],
                              "Gains(M dollar)":[141319,19222,25859,29980,12863],
                             "unité":[216756,43753,19251,np.nan,np.nan]})

#Format de valeur
format_dict = {'Gains(M dollar)':'{0:,.0f}', 'unité':'{0:,.0f}'}

#Affichage lors du réglage du graphique
(apple_products
 .style
 .format(format_dict)
 .hide_index()
 .bar(color="#99ceff", vmin=0, subset=['Gains(M dollar)'], align='zero')
 .bar(color="#ff999b", vmin=0, subset=['unité'], align='zero'))

スクリーンショット 2019-12-03 21.55.48.png

15. Les graphiques empilés sont utiles pour comparer les proportions

picture_pc_ef8b0b193e70633750354d6f86d444df.png

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates


#Pour éviter les erreurs chez les pandas
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()

#Paramètres de police
plt.rcParams['font.family'] = 'Hiragino Sans'  
plt.rcParams['font.weight'] = 'heavy'

#Les données
music_env_df = pd.DataFrame({"radio":[0.4,0.21],"CD / Télécharger":[0.22,0.44],"Distribution vidéo":[0.2,0.3],"Distribution de musique":[0.18,0.05]},
            index=["GLOBAL","JAPAN"])
#Pour les graphiques empilés
music_env_df.T.cumsum()
#Couleur du graphique
bar_colors = ["#3B7780","#98C550","#7FC2CB","#E9C645"]

#obtenir x ticklabel
x = music_env_df.index
#Chaque nom d'élément dans le graphique
keys = music_env_df.keys()

fig,ax = plt.subplots(figsize=(7,7))

# 1.Effacer les cadres gauche et droit
sides = ['left','right']
[ax.spines[side].set_visible(False) for side in sides] 

# 2.Mémoire de l'axe gauche, étiquette de mémoire supprimée
ax.tick_params(left=False, labelleft=False)

# 3.Changer la couleur des bordures supérieure et inférieure
ax.spines['bottom'].set_color("dimgray")
ax.spines['top'].set_color("dimgray")

# 4.paramètres de mémoire de l'axe x
ax.tick_params(axis='x', labelsize='x-large',color="dimgray",labelcolor="dimgray")

# 5.Tracez des graphiques empilés et stockez les informations de tracé
bar_info = []
for i in range(len(keys)):
    if i == 0:
        bar_info.append(ax.bar(x, music_env_df.T.iloc[i],width=0.5,color=bar_colors[i]))
    else:
        bar_info.append(ax.bar(x, music_env_df.T.iloc[i], bottom=music_env_df.T.cumsum().iloc[i-1],width=0.5,color=bar_colors[i]))

# 6.Éléments de chaque graphique
for i,one in enumerate(bar_info):
    # %Stocker le nombre de
    bar_center = [[0,0],[0,0]]
    #Stocke les coordonnées de ligne qui soulignent les différences entre les graphiques à barres
    bar_line = [[0,0],[0,0]]
    for j,one_bar in enumerate(one):
        bar_center[j][0] =  one_bar.xy[0]+one_bar.get_width()/2
        bar_center[j][1] =  one_bar.xy[1]+one_bar.get_height()/2
        #Afficher le nom de l'élément
        if j == 0:    
            ax.annotate(keys[i],xy=(0,0),xycoords="data",
                       xytext=(-0.4,bar_center[j][1]),
                       ha='right',color=bar_colors[i],fontsize=16)
            bar_line[j][0] = one_bar.xy[0]+one_bar.get_width()
            bar_line[j][1] = one_bar.xy[1]
        else:
            bar_line[j][0] = one_bar.xy[0] - bar_line[0][0]
            bar_line[j][1] = one_bar.xy[1] - bar_line[0][1]
        #Afficher la valeur en pourcentage (%)
        ax.annotate(f'{one_bar.get_height():.0%}',xy=(0,0),xycoords="data",
                   xytext=(bar_center[j][0],bar_center[j][1]),
                   ha="center",va="center",color="white",fontsize=16)
        #Afficher les lignes en surbrillance
        ax.arrow(bar_line[0][0],bar_line[0][1], bar_line[1][0], bar_line[1][1], head_width=0, head_length=0, ec='dimgray')
        
# 7.Définir la zone de l'axe vertical
ax.set_ylim(0,1)
       

tmp9.png

Édition supplémentaire # 1

DjHmYHNUcAE0dto.jpeg

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates


#Pour éviter les erreurs chez les pandas
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()

#Paramètres de police
plt.rcParams['font.family'] = 'Hiragino Sans'  
plt.rcParams['font.weight'] = 'heavy'

#Les données
icing_method = pd.DataFrame([0.35, 0.19, 0.13,0.05,0.03,0.02],
                           index=['Bain de glace 2 ℃', 'Bain de glace 8 ℃', 'Arrosage+Massage sur glace','Arrosage','Ventilateur','Glaçage intraveineux'],
                           columns=['Vitesse de refroidissement'])

icing_detail = ["Plongez tout le corps dans un bain de glace 2 ℃","Plongez tout le corps dans un bain de glace à 8 ℃","12 ℃ arrosage+Massage sur glace",
                "Continuez à verser 15 ℃ d'eau du robinet sur tout le corps","Il frappe le vent d'un ventilateur à une température ambiante de 22 ° C","(Cou / axillaire / inguinal)"]

#Seule la couleur de la barre est spécifiée comme l'original
ori_blue = "#71C0F9"

fig, ax = plt.subplots(figsize=(12, 6))

icing_method.plot.barh(legend=False, ax=ax, width=0.8,color=ori_blue)

# 1.Réglage du titre
plt.title("Méthode de refroidissement et vitesse de refroidissement",fontsize=24,fontweight='bold',color="dimgray")

# 2.Faire beaucoup de marge sur la gauche
plt.subplots_adjust(left=0.35)

# 3.Inverser l'ordre de l'axe y
ax.invert_yaxis()

# 4.Effacer autre que le cadre gauche
sides = ['right', 'top', 'bottom']
[ax.spines[side].set_visible(False) for side in sides] 

# 5.graduation de l'axe des y sur l'axe des x,Effacer l'étiquette de graduation de l'axe y
ax.tick_params(bottom=False, left=False,labelleft=False)

# 6.paramètre d'étiquette de valeur de l'axe x
ax.set_xticks([i*0.1 for i in range(5)])
ax.tick_params(axis='x', labelcolor="silver")

# 7.Réglage de la plage de l'axe x (0.Jusqu'à 4 x=0.Parce que la grille de 4 ne sort pas)
ax.set_xlim(0,0.41)

# 8.paramètres de grille de l'axe des x
ax.grid(axis="x")

# 9.paramètre d'étiquette de l'axe x
ax.set_xlabel("Température corporelle (℃) qui baisse toutes les 10 secondes",fontsize="x-large",fontweight="bold",color="silver")

# 10.La valeur réelle est affichée sur le côté droit de la barre, et l'élément et la description supplémentaire sont affichés sur le côté droit.
vmax = icing_method['Vitesse de refroidissement'].max()
for i, (value,main_label,sub_label) in enumerate(zip(icing_method['Vitesse de refroidissement'],icing_method.index,icing_detail)):
    ax.text(value+vmax*0.02, i, f'{value:,} ℃', fontsize='x-large', va='center', color=ori_blue)
    ax.text(-0.01, i-0.1,main_label  , fontsize='xx-large', va='center',ha='right',color="dimgray")
    ax.text(-0.01,i+0.25, sub_label, fontsize='x-large' ,va='center',ha='right', color="silver")

tmp12.png

Recommended Posts

Implémentez "Data Visualization Design # 3" avec pandas et matplotlib
Implémentez "Data Visualization Design # 2" avec matplotlib
Visualisation des données avec les pandas
Méthode de visualisation de données utilisant matplotlib (+ pandas) (5)
Traçage de données polyvalent avec pandas + matplotlib
Méthode de visualisation de données utilisant matplotlib (+ pandas) (3)
Méthode de visualisation de données utilisant matplotlib (+ pandas) (4)
Séparation de la conception et des données dans matplotlib
Lire les données csv Python avec Pandas ⇒ Graphique avec Matplotlib
Analysez les journaux d'accès Apache avec Pandas et Matplotlib
Visualisez de manière interactive les données avec Treasure Data, Pandas et Jupyter.
Manipulation des données avec les Pandas!
Mélangez les données avec les pandas
Analyse des données financières par pandas et leur visualisation (2)
Analyse des données financières par pandas et leur visualisation (1)
Vue d'ensemble et astuces de Seaborn avec visualisation de données statistiques
Graphique des données Excel avec matplotlib (1)
Graphique des données Excel avec matplotlib (2)
Application Python: visualisation de données, partie 2: matplotlib
Méthode de visualisation de données utilisant matplotlib (1)
Méthode de visualisation de données utilisant matplotlib (2)
Conseils de traitement des données avec Pandas
Graphique des données de séries chronologiques en Python à l'aide de pandas et matplotlib
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)
Construction de pipeline de données avec Python et Luigi
Visualisation et analyse des informations de localisation des données Twitter Stava
Essayez de convertir en données ordonnées avec les pandas
Dessinez une étiquette d'axe hiérarchique avec matplotlib + pandas
Acquisition et visualisation des données de capteurs pour la croissance des plantes avec Intel Edison et Python
Recommandation d'Altair! Visualisation des données avec Python
Graphiques de fonctions triangulaires avec numpy et matplotlib
Joindre les données avec la clé principale (obligatoire) et la sous-clé (facultative) dans les pandas Python
Implémenter un modèle avec état et comportement
Chargez CSV avec des pandas et jouez avec Index
Gérez les structures de données 3D avec les pandas
Lisez CSV et analysez avec Pandas et Seaborn
Exemple de traitement efficace des données avec PANDAS
Tracez plusieurs cartes et données en même temps avec matplotlib de Python
Meilleures pratiques pour manipuler les données avec les pandas
Formater et afficher des données de séries chronologiques avec différentes échelles et unités avec Python ou Matplotlib
Un beau dessin graphique avec Python -seaborn facilite l'analyse et la visualisation des données Partie 1
Un beau dessin graphique avec Python -seaborn facilite l'analyse et la visualisation des données Partie 2
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitres 11 et 12 Introduction à Pandas Matplotlib
Visualisez les données d'infection corona à Tokyo avec matplotlib
Les bases de Pandas pour les débutants ③ Créez un histogramme avec matplotlib
Essayez d'agréger les données de musique doujin avec des pandas
Générer et publier des données d'image factice avec Django
Installez pip et pandas avec Ubuntu ou VScode
Transformez les données de vacances en une trame de données avec les pandas
"Apprentissage de word2vec" et "Visualisation avec Tensorboard" sur Colaboratory
[# 1] Créez Minecraft avec Python. ~ Recherche préliminaire et conception ~
lecture de données pandas
Animation avec matplotlib
Japonais avec matplotlib
Animation avec matplotlib
histogramme avec matplotlib
Faire une animation avec matplotlib
Obtenez des données Amazon RDS (PostgreSQL) à l'aide de SQL avec pandas