[PYTHON] Implementieren Sie "Data Visualization Design # 3" mit Pandas und Matplotlib

Was ist ein Datenvisualisierungsdesign?

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

Was ist mit # 1 und # 2?

Vorsichtsmaßnahmen

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

Es ist der Teil von.

13. Es ist effektiv, ein Diagramm in die Tabelle aufzunehmen

picture_pc_1bd02bdb34795599c91bc4e22a5657e2.png

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'))

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

15. Gestapelte Diagramme sind nützlich, um Proportionen zu vergleichen

picture_pc_ef8b0b193e70633750354d6f86d444df.png

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)
       

tmp9.png

Extra Edition # 1

DjHmYHNUcAE0dto.jpeg

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")

tmp12.png

Recommended Posts

Implementieren Sie "Data Visualization Design # 3" mit Pandas und Matplotlib
Implementieren Sie "Data Visualization Design # 2" mit matplotlib
Datenvisualisierung mit Pandas
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (5)
Vielseitige Datenerfassung mit Pandas + Matplotlib
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (3)
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (4)
Trennung von Design und Daten in matplotlib
Lesen Sie Python-CSV-Daten mit Pandas ⇒ Graph mit Matplotlib
Analysieren Sie Apache-Zugriffsprotokolle mit Pandas und Matplotlib
Visualisieren Sie Daten interaktiv mit TreasureData, Pandas und Jupyter.
Datenmanipulation mit Pandas!
Daten mit Pandas mischen
Analyse von Finanzdaten durch Pandas und deren Visualisierung (2)
Analyse von Finanzdaten durch Pandas und deren Visualisierung (1)
Übersicht und Tipps von Seaborn mit statistischer Datenvisualisierung
Zeichnen Sie Excel-Daten mit matplotlib (1)
Zeichnen Sie Excel-Daten mit matplotlib (2)
Python-Anwendung: Datenvisualisierung # 2: matplotlib
Datenvisualisierungsmethode mit Matplotlib (1)
Datenvisualisierungsmethode mit Matplotlib (2)
Datenverarbeitungstipps mit Pandas
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
Visualisieren Sie Ihre Daten ganz einfach mit Python Seaborn.
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
Datenpipeline-Aufbau mit Python und Luigi
Visualisierung und Analyse von Stava Twitter-Datenstandortinformationen
Versuchen Sie, mit Pandas in ordentliche Daten umzuwandeln
Zeichnen Sie eine hierarchische Achsenbeschriftung mit matplotlib + pandas
Erfassung und Visualisierung von Sensordaten für das Pflanzenwachstum mit Intel Edison und Python
Empfehlung von Altair! Datenvisualisierung mit Python
Zeichnen Sie Dreiecksfunktionen mit Numpy und Matplotlib
Verbinden Sie Daten mit dem Hauptschlüssel (erforderlich) und dem Unterschlüssel (optional) in Python-Pandas
Implementieren Sie ein Modell mit Status und Verhalten
Laden Sie csv mit Pandas und spielen Sie mit Index
Behandeln Sie 3D-Datenstrukturen mit Pandas
Lesen Sie CSV und analysieren Sie mit Pandas und Seaborn
Beispiel für eine effiziente Datenverarbeitung mit PANDAS
Zeichnen Sie mit Pythons Matplotlib mehrere Karten und Daten gleichzeitig
Best Practices für den Umgang mit Daten mit Pandas
Formatieren und Anzeigen von Zeitreihendaten mit verschiedenen Maßstäben und Einheiten mit Python oder Matplotlib
Schöne Grafikzeichnung mit Python-Seaborn erleichtert die Datenanalyse und -visualisierung Teil 1
Wunderschönes Zeichnen mit Python-Seaborn erleichtert die Datenanalyse und -visualisierung Teil 2
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 11 und 12 Einführung in Pandas Matplotlib
Visualisieren Sie Korona-Infektionsdaten in Tokio mit matplotlib
Pandas-Grundlagen für Anfänger ③ Erstellen Sie ein Histogramm mit matplotlib
Versuchen Sie, Doujin-Musikdaten mit Pandas zu aggregieren
Generieren und veröffentlichen Sie Dummy-Bilddaten mit Django
Installieren Sie Pip und Pandas mit Ubuntu oder VScode
Machen Sie Urlaubsdaten mit Pandas zu einem Datenrahmen
"Learning word2vec" und "Visualisierung mit Tensorboard" auf Colaboratory
[# 1] Mach Minecraft mit Python. ~ Vorforschung und Design ~
Pandas Daten lesen
Animation mit matplotlib
Japanisch mit Matplotlib
Animation mit matplotlib
Histogramm mit Matplotlib
Erstellen Sie eine Animation mit matplotlib
Holen Sie sich Amazon RDS (PostgreSQL) -Daten mithilfe von SQL mit Pandas