[PYTHON] Ajoutez des informations au bas de la figure avec Matplotlib

Retour à la liste

Vous souhaiterez peut-être ajouter des informations textuelles autour de la figure. Vous pouvez ajouter des informations de caractère avec plt.text, mais c'est gênant car vous devez spécifier l'emplacement un par un. Le code suivant est ajouté en utilisant legend sans spécifier l'emplacement.

image.png

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
%matplotlib inline
plt.rcParams['font.size'] = 15

def r2(y1, y2):
    r2 = str(np.round(np.corrcoef(y1, y2)[0,1],3))
    return r2

xa_train = [1,3,5,7]
xa_test  = [2,4,6,9]
ya_train = xa_train + np.random.randn(4)
ya_test  = xa_test  + np.random.randn(4)

xb_train = [1,3,5,7]
xb_test  = [2,4,6,9]
yb_train = xb_train + np.random.randn(4)
yb_test  = xb_test  + np.random.randn(4)

plt.figure()
plt.subplots_adjust(wspace=0.2, hspace=0.4)

gs = gridspec.GridSpec(2, 2, width_ratios=[1,1], height_ratios=[4,1])

plt.subplot(gs[0])
plt.scatter(xa_train, ya_train, color='k', label='train')
plt.scatter(xa_test, ya_test, color='r', label='test')
plt.xlim(0,10)
plt.ylim(0,10)
plt.xticks([0,2,4,6,8,10])
plt.yticks([0,2,4,6,8,10])
plt.plot([0,10],[0,10], color='gray', lw=0.5)
plt.grid()
plt.title('train')
plt.xlabel('measured')
plt.ylabel('predicted')

plt.subplot(gs[1])
plt.scatter(xb_train, yb_train, color='k',label='train')
plt.scatter(xb_test, yb_test, color='r', label='test')
plt.xlim(0,10)
plt.ylim(0,10)
plt.xticks([0,2,4,6,8,10])
plt.yticks([0,2,4,6,8,10])
plt.plot([0,0],[10,10])
plt.plot([0,10],[0,10], color='gray', lw=0.5)
plt.grid()
plt.title('test')
plt.xlabel('measured')
plt.tick_params(left=False,labelleft=False)
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left', borderaxespad=0)

plt.subplot(gs[2])
plt.tick_params(left=False, labelleft=False,bottom=False, labelbottom=False)
for i in ['top','bottom','left','right'] : plt.gca().spines[i].set_visible(False)
plt.scatter(0,0,label='$R^2_{train}=$'+r2(xa_train,ya_train)+'\n$R^2_{test}=$'+r2(xa_test,ya_test),alpha=0)
plt.legend(frameon=False, loc='upper left')

plt.subplot(gs[3])
plt.tick_params(left=False, labelleft=False,bottom=False, labelbottom=False)
for i in ['top','bottom','left','right'] : plt.gca().spines[i].set_visible(False)
plt.scatter(0,0,label='$R^2_{train}=$'+r2(xb_train,yb_train)+'\n$R^2_{test}=$'+r2(xb_test,yb_test),alpha=0)
plt.legend(frameon=False, loc='upper left')

plt.show()

Recommended Posts

Ajoutez des informations au bas de la figure avec Matplotlib
Alignez la barre de couleurs sur la figure avec matplotlib
Alignez la taille de la barre de couleurs avec matplotlib
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
Ajouter un intervalle de confiance de 95% des deux côtés pour la figure avec Python / Matplotlib
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
Augmentez la taille de la police du graphique avec matplotlib
La base de la théorie des graphes avec l'animation matplotlib
Visualisez le comportement de l'algorithme de tri avec matplotlib
Ajouter des attributs d'objets de classe avec une instruction for
Ajoutez simplement le pilote à la touche de forme avec mélangeur
Essayez d'obtenir le contenu de Word avec Golang
J'ai essayé de visualiser les informations spacha de VTuber
[Python] Résumé de la façon de spécifier la couleur de la figure
[Introduction à Python] Utilisation basique de la bibliothèque matplotlib
Ajustez le rapport de plusieurs chiffres avec le gridspec de Matplotlib
Essayez de créer une table d'enregistrement de bataille avec matplotlib à partir des données de "Schedule-kun"
Obtenez des informations équivalentes à l'onglet Réseau des outils de développement Chrome avec Python + Selenium
Je veux tracer les informations de localisation de GTFS Realtime sur Jupyter! (Avec ballon)
J'ai essayé de visualiser les caractéristiques des nouvelles informations sur les personnes infectées par le virus corona avec wordcloud
La route pour télécharger Matplotlib
Changer le style de matplotlib
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé d'obtenir les informations de localisation du bus Odakyu
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai essayé de notifier les informations de retard de train avec LINE Notify
[Python] Lisez le fichier csv et affichez la figure avec matplotlib
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
Paramètres pour entrer et déboguer le contenu de la bibliothèque avec VS Code
Reformatez l'axe des temps du graphique de la série chronologique des pandas avec matplotlib
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
Visualisons le nombre de personnes infectées par le virus corona avec matplotlib
La façon habituelle d'ajouter un noyau avec Jupyter Notebook
J'ai écrit le fonctionnement de base de matplotlib dans Jupyter Lab
Récupérez la source de la page à charger indéfiniment avec python.
Essayez d'extraire les caractéristiques des données de capteur avec CNN
Essayez d'importer dans la base de données en manipulant ShapeFile d'informations numériques sur les terres nationales avec Python
Comment tracer beaucoup de légendes en changeant la couleur du graphique en continu avec matplotlib
Comment obtenir les informations des organisations, Cost Explorer d'un autre compte AWS avec Lambda (python)
L'histoire de ne pas pouvoir exécuter pygame avec pycharm
Enregistrez le résultat de l'exploration avec Scrapy dans Google Data Store
[Hugo] Résumé de la façon d'ajouter des pages au site créé avec Learn
Ajouter des champs à des entités avec ArcPy
Familiarisez-vous avec (voulez être) autour du pipeline de spaCy
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
Comment obtenir l'ID de Type2Tag NXP NTAG213 avec nfcpy
Ajouter le ratio cumulatif à l'histogramme matplotlib
Changer l'échelle de l'axe Y de Matplotlib en notation exponentielle (10 Nth power notation)
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
Essayez de résoudre le problème N Queen avec SA de PyQUBO
Je veux sortir le début du mois prochain avec Python
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
Considérez la vitesse de traitement pour déplacer le tampon d'image avec numpy.ndarray
Résolution du labyrinthe avec Python-Supplément au chapitre 6 de la référence rapide de l'algorithme-
Comment surveiller l'état d'exécution de sqlldr avec la commande pv
Collez la figure matplotlib sur Excel
[Python] J'ai essayé de visualiser le prix en argent de "ONE PIECE" plus de 100 millions de caractères avec matplotlib.
J'ai essayé d'agrandir la taille du volume logique avec LVM