Dies ist eine Zusammenfassung der Punkte der Datenvisualisierung, die in der Notiz von Go Ando von THE GUILD veröffentlicht wurden, der für Dienste bekannt ist, die sich auf UX und UI konzentrieren.
https://note.mu/goando/n/n99f6c395ae8a
Siehe unten für # 1
Siehe unten für # 2
plt.rcParams['font.family'] = 'Hiragino Sans'
Es ist der Teil von.
Verwenden Sie Pandas.
import pandas as pd
import numpy as np
%matplotlib inline
# data
apple_products = pd.DataFrame({"Produkt":["iPhone","iPad","Mac","Services","Other"],
"Der Umsatz(M Dollar)":[141319,19222,25859,29980,12863],
"Einheit":[216756,43753,19251,np.nan,np.nan]})
#Wertformat
format_dict = {'Der Umsatz(M Dollar)':'{0:,.0f}', 'Einheit':'{0:,.0f}'}
#Anzeige beim Einstellen des Diagramms
(apple_products
.style
.format(format_dict)
.hide_index()
.bar(color="#99ceff", vmin=0, subset=['Der Umsatz(M Dollar)'], align='zero')
.bar(color="#ff999b", vmin=0, subset=['Einheit'], align='zero'))
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
#Zur Fehlervermeidung bei Pandas
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
#Schriftarteinstellungen
plt.rcParams['font.family'] = 'Hiragino Sans'
plt.rcParams['font.weight'] = 'heavy'
#Daten
music_env_df = pd.DataFrame({"Radio":[0.4,0.21],"CD / Download":[0.22,0.44],"Videoverteilung":[0.2,0.3],"Musikverteilung":[0.18,0.05]},
index=["GLOBAL","JAPAN"])
#Für gestapelte Diagramme
music_env_df.T.cumsum()
#Diagrammfarbe
bar_colors = ["#3B7780","#98C550","#7FC2CB","#E9C645"]
#bekomme x ticklabel
x = music_env_df.index
#Jeder Elementname in der Grafik
keys = music_env_df.keys()
fig,ax = plt.subplots(figsize=(7,7))
# 1.Löschen Sie den linken und rechten Frame
sides = ['left','right']
[ax.spines[side].set_visible(False) for side in sides]
# 2.Speicher der linken Achse, Speicherbezeichnung gelöscht
ax.tick_params(left=False, labelleft=False)
# 3.Ändern Sie die Farbe der oberen und unteren Ränder
ax.spines['bottom'].set_color("dimgray")
ax.spines['top'].set_color("dimgray")
# 4.Speichereinstellungen für die x-Achse
ax.tick_params(axis='x', labelsize='x-large',color="dimgray",labelcolor="dimgray")
# 5.Gestapelte Diagramme und speichert Plotinformationen
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.Elemente in jedem Diagramm
for i,one in enumerate(bar_info):
# %Speichern Sie die Nummer von
bar_center = [[0,0],[0,0]]
#Speichert Linienkoordinaten, die Unterschiede zwischen Balkendiagrammen hervorheben
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
#Elementnamen anzeigen
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]
#Zeigen Sie den Prozentwert (%) an.
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)
#Markierte Linien anzeigen
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.Stellen Sie den vertikalen Achsenbereich ein
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
#Zur Fehlervermeidung bei Pandas
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
#Schriftarteinstellungen
plt.rcParams['font.family'] = 'Hiragino Sans'
plt.rcParams['font.weight'] = 'heavy'
#Daten
icing_method = pd.DataFrame([0.35, 0.19, 0.13,0.05,0.03,0.02],
index=['Eisbad 2 ℃', 'Eisbad 8 ℃', 'Bewässerung+Eismassage','Bewässerung','Ventilator','Intravenöse Vereisung'],
columns=['Abkühlgeschwindigkeit'])
icing_detail = ["Tauchen Sie den ganzen Körper in ein 2 ℃ Eisbad","Tauchen Sie den ganzen Körper bei 8 ° C in ein Eisbad","12 ℃ Bewässerung+Eismassage",
"Gießen Sie weiterhin 15 ℃ Leitungswasser über den ganzen Körper","Es trifft den Wind eines Ventilators bei einer Raumtemperatur von 22 ° C.","(Hals / Achsel / Leisten)"]
#Nur die Farbe des Balkens wird als Original angegeben
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.Titeleinstellung
plt.title("Kühlmethode und Abkühlgeschwindigkeit",fontsize=24,fontweight='bold',color="dimgray")
# 2.Machen Sie links viel Rand
plt.subplots_adjust(left=0.35)
# 3.Kehren Sie die Reihenfolge der y-Achse um
ax.invert_yaxis()
# 4.Löschen Sie andere als den linken Rahmen
sides = ['right', 'top', 'bottom']
[ax.spines[side].set_visible(False) for side in sides]
# 5.y-Achse x-Achse ankreuzen,Löschen Sie das Häkchen der y-Achse
ax.tick_params(bottom=False, left=False,labelleft=False)
# 6.Einstellung der x-Achsenwertbeschriftung
ax.set_xticks([i*0.1 for i in range(5)])
ax.tick_params(axis='x', labelcolor="silver")
# 7.Einstellung des x-Achsenbereichs (0.Bis zu 4 x=0.Weil das Gitter von 4 nicht herauskommt)
ax.set_xlim(0,0.41)
# 8.X-Achsen-Rastereinstellungen
ax.grid(axis="x")
# 9.Einstellung der Beschriftung der x-Achse
ax.set_xlabel("Körpertemperatur (℃), die alle 10 Sekunden abfällt",fontsize="x-large",fontweight="bold",color="silver")
# 10.Der tatsächliche Wert wird auf der rechten Seite der Leiste angezeigt, und der Artikel und die ergänzende Beschreibung werden auf der rechten Seite angezeigt.
vmax = icing_method['Abkühlgeschwindigkeit'].max()
for i, (value,main_label,sub_label) in enumerate(zip(icing_method['Abkühlgeschwindigkeit'],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