[PYTHON] Essayez de créer une table d'enregistrement de bataille avec matplotlib à partir des données de "Schedule-kun"

Aperçu

Un format tabulaire qui visualise le calendrier et les résultats de la compétition (○, △, ●) est appelé un tableau d'enregistrement de bataille. Je vais vous montrer le graphique réel parce que c'est comme ça. C8A6DC2D-1EFE-4B01-8F2E-D63AE36B7596.JPG

La vue de ce tableau montre les adversaires qui joueront à l'extérieur sur l'axe X et les adversaires qui joueront à domicile sur l'axe Y. Créez une telle table à partir des données de "Schedule-kun" en utilisant matplotlib. Ceci est un exemple de la façon dont vous pouvez le faire, bien que ce soit loin de la méthode de visualisation standard.

Données source

Traitement de l'information

fixturetable.py


game_result = pd.read_csv("../csv/game_result_all_2020_v2.csv", encoding="utf-8")
#Liste des noms de l'équipe J1 (du nord) édition 2020
team = ["Sapporo","Sendai","Kashima","Urawa","chêne","FC Tokyo","Kawasaki F","Yokohama FM","Yokohama FC","Shonan",
        "Shimizu","Nagoya","G Osaka","C Osaka","Kobe","Hiroshima","Torisu","Oita"]
#Extraire uniquement J1 et créer un nouveau bloc de données
game_J1_tmp = game_result[game_result["Tournoi"] == "J1"]

キャプチャ0.PNG Comme il n'a pas encore commencé, il n'y a pas de données dans "Score / Nombre de visiteurs / home_g / away_g / Résultats". Cela n'a rien à voir avec ce tableau, vous pouvez donc l'ignorer.

fixturetable.py


#Créer un bloc de données vide à rejoindre
game_J1 = pd.DataFrame(index=team, columns=team)

for i, t in enumerate(team):
    # [1]Extraire chaque adversaire, section et résultat pour chaque équipe
    team_tmp = game_J1_tmp.loc[game_J1_tmp["domicile"] == t, ["Une façon", "sec", "résultat"]]
    # [2]Réinitialiser l'index des données acquises
    team_tmp.reset_index(inplace=True, drop=True)
    # [3]Sec pour l'équipe des conditions d'extraction:Ajouter à 99
    team_tmp.loc[17,:] = [t, 99, -1]
    # [4]Ajouter des données de commande d'équipe du nord
    team_tmp["order"] = team_tmp["Une façon"].apply(lambda x: team.index(x) if x in team else -1)
    # [5]Trier du nord à l'équipe
    team_tmp = team_tmp.sort_values("order")

    # [6]Développez jusqu'à la ligne du bloc de données final (équipe de conditions d'extraction).
    for x in range(len(team_tmp)):
        game_J1.iloc[i, x] = team_tmp.at[team_tmp.index[x],"sec"]

Extraire chaque adversaire, section et résultat pour chaque équipe キャプチャ1.PNG

2 Réinitialisez l'index des données acquises キャプチャ2.PNG

3 Ajoutez l'équipe de conditions d'extraction avec sec: 99 キャプチャ3.PNG

4 Ajouter des données de commande d'équipe du nord キャプチャ4.PNG

5 Trier du nord à l'équipe 6 Développez jusqu'à la ligne (équipe de conditions d'extraction) de la trame de données finale. キャプチャ8.PNG

Il s'agit de la forme finale des données. Dessinez ceci sur le graphique.

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)

#Affichage de la section événement et coloration des carrés sans concours
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("Tableau des Résultats de la Ligue Meiji Yasuda Seimei J1 2020", fontsize=16)
txt = "Source: site de données JLeague"
fig.text(.9, .1, txt, fontsize=10, horizontalalignment="right")
txt3 = str(update) + "mise à jour"
fig.text(.9, .95, txt3, fontsize=10, horizontalalignment="right")

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

Le point de créer un graphique est simple

J1fixturetable_noemblem_2020.png

Tableau des résultats 2019

Les défis restants

Recommended Posts

Essayez de créer une table d'enregistrement de bataille avec matplotlib à partir des données de "Schedule-kun"
Essayez d'extraire les caractéristiques des données de capteur avec CNN
Tokyo Corona: faites une prédiction simple à partir de données ouvertes avec la fonction exponentielle curve_fit
Essayez d'imaginer les données d'élévation du National Land Research Institute avec Python
Créer une table d'enregistrement à partir des résultats de correspondance JFL
Créer une table avec le notebook IPython
Connexion SSH au serveur cible à partir de Windows en un clic sur un raccourci
Lien vers les points de données du graphe créé par jupyterlab & matplotlib
J'ai essayé de créer un modèle avec l'exemple d'Amazon SageMaker Autopilot
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Ajoutez des informations au bas de la figure avec Matplotlib
Comment créer un sous-menu avec le plug-in [Blender]
Essayez de créer un Checkbutton dynamiquement avec Tkinter en Python
Essayez d'obtenir le contenu de Word avec Golang
Je souhaite créer manuellement une légende avec matplotlib
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
Essayez de créer une forme d'onde (spectre audio) qui se déplace en fonction du son avec python
Essayez de gratter les données COVID-19 Tokyo avec Python
Un diagramme de réseau a été créé avec les données du COVID-19.
Créer un bloc de données à partir des données textuelles de course de bateaux acquises
[Linux] Copie des données de Linux vers Windows avec un script shell
Probablement le moyen le plus simple de créer un pdf avec Python 3
Essayez d'extraire la table de données d'Azure SQL Server avec pyodbc
[Introduction à matplotlib] Lire l'heure de fin à partir des données COVID-19 ♬
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
L'histoire de la copie de données de S3 vers TeamDrive de Google
Créer un diagramme de corrélation à partir de l'historique des conversations de Twitter
J'ai créé un outil pour générer automatiquement un simple diagramme ER à partir de l'instruction CREATE TABLE
[Python] Comment créer une table à partir d'une liste (opération de base de création de table / changement de nom de matrice)
Comment représenter la distribution de la composition bactérienne à partir des données d'analyse Qiime2 dans un diagramme de moustaches
Créez un tableau à deux dimensions en ajoutant une ligne à la fin d'un tableau vide avec numpy
Comment tracer beaucoup de légendes en changeant la couleur du graphique en continu avec matplotlib
Enregistrez le résultat de l'exploration avec Scrapy dans Google Data Store
Gérez le chevauchement lors du dessin d'un diagramme de dispersion avec une grande quantité de données (Matplotlib, Pandas, Datashader)
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
Essayez de résoudre le problème N Queen avec SA de PyQUBO
Essayez de créer un environnement python avec Visual Studio Code et WSL
Essayez d'extraire une chaîne de caractères d'une image avec Python3
Les utilisateurs de Rails essaient de créer un moteur de blog simple avec Django
J'ai essayé de créer une liste de nombres premiers avec python
[Go] Créez une commande CLI pour changer l'extension de l'image
Je veux créer un graphique avec des lignes ondulées au milieu avec matplotlib (je veux manipuler l'impression)
Traiter les données extraites d'un certain système de point de vente pour créer un tableau récapitulatif par produit et par heure
Apprenez les données comptables et essayez de prédire les comptes à partir du contenu de la description lors de la saisie des journaux
Comment créer une grande quantité de données de test dans MySQL? ??
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
Créez une fonction pour obtenir le contenu de la base de données dans Go
Essayez de calculer la position de l'émetteur à partir du modèle de propagation des ondes radio avec python [Wi-Fi, Beacon]
Essayez de résoudre l'itinéraire le plus court avec les données sociales Python + NetworkX +
Du «dessin» à «l'écriture» du diagramme de configuration: essayez de dessiner le diagramme de configuration AWS avec des diagrammes
Essayez de créer un article de Qiita avec l'API REST [Préparation environnementale]
Créer une API REST pour faire fonctionner dynamodb avec le Framework Django REST
Créez un programme de jugement de compatibilité avec le module aléatoire de python.
[Version terminée] Essayez de connaître le nombre d'habitants de la ville à partir de la liste d'adresses avec Python
Je souhaite résoudre le problème de fuite de mémoire lors de la sortie d'un grand nombre d'images avec Matplotlib
Mettez à jour les données en les téléchargeant sur s3 d'aws avec une commande, et supprimez les données utilisées (en chemin)