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
Voir ci-dessous pour # 1
Voir ci-dessous pour # 2
plt.rcParams['font.family'] = 'Hiragino Sans'
C'est la partie de.
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'))
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)
music_env_df.T.cumsum ()
)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")
Recommended Posts