[PYTHON] Versuchen Sie, mit matplotlib aus den Daten von "Schedule-kun" eine Kampfaufzeichnungstabelle zu erstellen.

Überblick

Ein Tabellenformat, das den Wettkampfplan und die Ergebnisse (○, △, ●) visualisiert, wird als Kampfaufzeichnungstabelle bezeichnet. Ich zeige dir die eigentliche Grafik, weil es einfach so ist. C8A6DC2D-1EFE-4B01-8F2E-D63AE36B7596.JPG

Die Ansicht dieser Tabelle zeigt die Gegner, die auf der X-Achse spielen, und die Gegner, die zu Hause auf der Y-Achse spielen. Erstellen Sie eine solche Tabelle aus den Daten von "Schedule-kun" mit "matplotlib". Dies ist ein Beispiel dafür, wie Sie dies tun können, obwohl es weit von der Standardvisualisierungsmethode entfernt ist.

Quelldaten

Datenverarbeitung

fixturetable.py


game_result = pd.read_csv("../csv/game_result_all_2020_v2.csv", encoding="utf-8")
#J1 Team Name List (von Norden) Ausgabe 2020
team = ["Sapporo","Sendai","Kashima","Urawa","Eiche","FC Tokio","Kawasaki F.","Yokohama FM","Yokohama FC","Shonan",
        "Shimizu","Nagoya","G Osaka","C Osaka","Kobe","Hiroshima","Torisu","Oita"]
#Extrahieren Sie nur J1 und erstellen Sie einen neuen Datenrahmen
game_J1_tmp = game_result[game_result["Turnier"] == "J1"]

キャプチャ0.PNG Da es noch nicht gestartet wurde, gibt es keine Daten in "Punktzahl / Anzahl der Besucher / home_g / away_g / Ergebnisse". Es hat nichts mit dieser Tabelle zu tun, daher können Sie sie ignorieren.

fixturetable.py


#Erstellen Sie einen leeren Datenrahmen zum Verbinden
game_J1 = pd.DataFrame(index=team, columns=team)

for i, t in enumerate(team):
    # [1]Extrahieren Sie jeden Gegner, jede Sektion und jedes Ergebnis für jedes Team
    team_tmp = game_J1_tmp.loc[game_J1_tmp["Zuhause"] == t, ["Weg", "sec", "Ergebnis"]]
    # [2]Setzen Sie den Index der erfassten Daten zurück
    team_tmp.reset_index(inplace=True, drop=True)
    # [3]Sec für das Team der Extraktionsbedingungen:Bei 99 hinzufügen
    team_tmp.loc[17,:] = [t, 99, -1]
    # [4]Fügen Sie Teambestelldaten aus dem Norden hinzu
    team_tmp["order"] = team_tmp["Weg"].apply(lambda x: team.index(x) if x in team else -1)
    # [5]Sortieren Sie von Norden nach Team
    team_tmp = team_tmp.sort_values("order")

    # [6]Erweitern Sie die Zeile des endgültigen Datenrahmens (Team der Extraktionsbedingungen).
    for x in range(len(team_tmp)):
        game_J1.iloc[i, x] = team_tmp.at[team_tmp.index[x],"sec"]

Extrahieren Sie jeden Gegner, jede Sektion und jedes Ergebnis für jedes Team キャプチャ1.PNG

2 Setzen Sie den Index der erfassten Daten zurück キャプチャ2.PNG

3 Fügen Sie das Team der Extraktionsbedingungen mit Sek.: 99 hinzu キャプチャ3.PNG

4 Fügen Sie Teambestelldaten aus dem Norden hinzu キャプチャ4.PNG

5 Sortieren Sie von Norden nach Team 6 Erweitern Sie die Zeile (Team der Extraktionsbedingungen) des endgültigen Datenrahmens. キャプチャ8.PNG

Dies ist die endgültige Form der Daten. Zeichnen Sie dies in die Grafik.

fixturetable.py


plt.rcParams["font.family"] = "IPAexGothic"

fig = plt.figure(figsize=(6,6),dpi=144)
ax1 = fig.add_subplot(111)

teams = np.arange(len(team)+1)
h, v = 0.5, 0.5

ax1.set_ylim(18, 0)
ax1.set_xticks(teams)
ax1.set_yticks(teams)
ax1.xaxis.tick_top()
ax1.set_xticklabels(team, rotation=90)
ax1.set_yticklabels(team)

ax1.grid(True)
ax1.tick_params(axis="both", which="both", length=0)

#Anzeige des Eventbereichs und Färbung von Quadraten ohne Konkurrenz
for k, t in enumerate(team):
    for i in range(18):
        if game_J1.at[game_J1.index[i], t] == 99:
            _ = patches.Rectangle(xy=(k, i), width=1.0, height=1.0, color="0.8")
            ax1.add_patch(_)
        else:
            ax1.text(k+h, i+v, game_J1.at[game_J1.index[i], t], size=12, color = "k", ha="center", va="center")

ax1.set_title("2020 Meiji Yasuda Seimei J1 Liga Ergebnistabelle", fontsize=16)
txt = "Quelle: JLeague Data Site"
fig.text(.9, .1, txt, fontsize=10, horizontalalignment="right")
txt3 = str(update) + "aktualisieren"
fig.text(.9, .95, txt3, fontsize=10, horizontalalignment="right")

#fig.tight_layout()
plt.savefig("../img/J1fixturetable_noemblem_2020.png ", bbox_inches="tight")

Das Erstellen eines Diagramms ist einfach

J1fixturetable_noemblem_2020.png

Ergebnistabelle 2019

Die verbleibenden Herausforderungen

Recommended Posts

Versuchen Sie, mit matplotlib aus den Daten von "Schedule-kun" eine Kampfaufzeichnungstabelle zu erstellen.
Versuchen Sie, Merkmale von Sensordaten mit CNN zu extrahieren
Tokyo Corona: Machen Sie mit der Exponentialfunktion kurve_fit eine einfache Vorhersage aus offenen Daten
Versuchen Sie, die Höhendaten des National Land Research Institute mit Python abzubilden
Erstellen Sie eine Datensatztabelle aus den JFL-Übereinstimmungsergebnissen
Erstellen Sie eine Tabelle mit IPython Notebook
SSH-Anmeldung am Zielserver von Windows mit einem Klick auf eine Verknüpfung
Link zu den Datenpunkten des von jupyterlab & matplotlib erstellten Diagramms
Ich habe versucht, ein Modell mit dem Beispiel von Amazon SageMaker Autopilot zu erstellen
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Fügen Sie mit Matplotlib Informationen am unteren Rand der Abbildung hinzu
So erstellen Sie ein Untermenü mit dem Plug-In [Blender]
Versuchen Sie, mit Tkinter in Python dynamisch einen Checkbutton zu erstellen
Versuchen Sie, den Inhalt von Word mit Golang zu erhalten
Ich möchte manuell eine Legende mit matplotlib erstellen
[Python] So erstellen Sie mit Matplotlib ein zweidimensionales Histogramm
Versuchen Sie, mit Python eine Wellenform (Audiospektrum) zu erstellen, die sich entsprechend dem Klang bewegt
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Mit den Daten von COVID-19 wurde ein Netzwerkdiagramm erstellt.
Erstellen Sie einen Datenrahmen aus den erfassten Textdaten des Bootsrennens
[Linux] Kopieren Sie Daten mit einem Shell-Skript von Linux nach Windows
Wahrscheinlich der einfachste Weg, um mit Python 3 ein PDF zu erstellen
Versuchen Sie, die Datentabelle von Azure SQL Server mit pyodbc zu extrahieren
[Einführung in matplotlib] Lesen Sie die Endzeit aus den COVID-19-Daten ♬
Versuchen Sie, den Betrieb von Netzwerkgeräten mit Python zu automatisieren
Die Geschichte des Kopierens von Daten von S3 auf Googles TeamDrive
Erstellen Sie ein Korrelationsdiagramm aus dem Konversationsverlauf von Twitter
Ich habe ein Tool erstellt, um automatisch ein einfaches ER-Diagramm aus der Anweisung CREATE TABLE zu generieren
[Python] So erstellen Sie eine Tabelle aus einer Liste (grundlegende Operation zum Erstellen von Tabellen / Ändern des Matrixnamens)
Darstellung der Verteilung der Bakterienzusammensetzung aus Qiime2-Analysedaten in einem Box-Whisker-Diagramm
Erstellen Sie ein zweidimensionales Array, indem Sie am Ende eines leeren Arrays mit numpy eine Zeile hinzufügen
Wie man zeichnet, indem man die Farbe des Diagramms kontinuierlich mit matplotlib ändert und einfach viele Legenden anordnet
Speichern Sie das Ergebnis des Crawls mit Scrapy im Google Data Store
Verwalten Sie die Überlappung, wenn Sie ein Streudiagramm mit einer großen Datenmenge zeichnen (Matplotlib, Pandas, Datashader).
[Einführung in StyleGAN] Ich habe mit "The Life of a Man" ♬ gespielt
Versuchen Sie, das N Queen-Problem mit SA von PyQUBO zu lösen
Versuchen Sie, eine Python-Umgebung mit Visual Studio Code & WSL zu erstellen
Versuchen Sie, mit Python3 eine Zeichenfolge aus einem Bild zu extrahieren
Rails-Benutzer versuchen, mit Django eine einfache Blog-Engine zu erstellen
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
[Los] Erstellen Sie einen CLI-Befehl, um die Erweiterung des Bildes zu ändern
Ich möchte mit matplotlib ein Diagramm mit Wellenlinien in der Mitte erstellen (ich möchte den Eindruck manipulieren).
Verarbeiten Sie die aus einem bestimmten Kassensystem entnommenen Daten, um eine Übersichtstabelle nach Produkt und Zeit zu erstellen
Lernen Sie Buchhaltungsdaten kennen und versuchen Sie, Konten aus dem Inhalt der Beschreibung vorherzusagen, wenn Sie Journale eingeben
Wie erstelle ich eine große Menge an Testdaten in MySQL? ??
Von der Einführung von JUMAN ++ bis zur morphologischen Analyse von Japanisch mit Python
Erstellen Sie eine Funktion, um den Inhalt der Datenbank in Go abzurufen
Versuchen Sie, die Position des Senders aus dem Funkwellenausbreitungsmodell mit Python [Wi-Fi, Beacon] zu berechnen.
Versuchen Sie, den kürzesten Weg mit Python + NetworkX + Social Data zu lösen
Vom "Zeichnen" zum "Schreiben" des Konfigurationsdiagramms: Zeichnen Sie das AWS-Konfigurationsdiagramm mit Diagrammen
Versuchen Sie, einen Artikel von Qiita mit der REST-API [Umweltvorbereitung] zu erstellen.
Erstellen Sie eine REST-API, um dynamodb mit dem Django REST Framework zu betreiben
Erstellen Sie ein Kompatibilitätsbewertungsprogramm mit dem Zufallsmodul von Python.
[Abgeschlossene Version] Versuchen Sie, die Anzahl der Einwohner der Stadt anhand der Adressliste mit Python herauszufinden
Ich möchte das Problem des Speicherverlusts bei der Ausgabe einer großen Anzahl von Bildern mit Matplotlib lösen
Laden Sie Daten mit einem Befehl und einer Aktualisierung auf s3 von aws hoch und löschen Sie die verwendeten Daten (unterwegs).