[PYTHON] Comment appliquer des marqueurs uniquement à des données spécifiques avec matplotlib

introduction

Dans Lors de la représentation graphique de l'ordre de publication des magazines, je voulais ajouter des marqueurs (points sur le graphique) uniquement à des éléments spécifiques avec matplotlib (centre Je voulais mettre une marque pour qu'elle ne soit facile à comprendre que lorsqu'elle était en couleur), mais je ne l'ai pas trouvée du tout lorsque je l'ai recherchée, j'ai donc pris une note. max_2020.png ↑ Je voulais appliquer le marqueur uniquement à une valeur spécifique pour le souligner ainsi.

environnement

$ uname -a                                                                                                                              
Linux kali 4.18.0-kali2-amd64 #1 SMP Debian 4.18.10-2kali1 (2018-10-09) x86_64 GNU/Linux

$ python3 --version                                                                                                                             
Python 3.7.6

$ pip3 show matplotlib                                                                                                                         
Name: matplotlib
Version: 3.1.2

problème

Par exemple, supposons que les données suivantes soient disponibles.

month janvier février Mars avril Peut juin juillet août septembre octobre 1janvier 1février
data 13 15 21 5 10 18 21 17 15 16 21 13

Ceci est un graphique de ceux-ci. before.png

Que faire si vous souhaitez marquer uniquement les données de janvier, avril, juillet et octobre dans ce graphique avec des diamants (et pas d'autres)?

Solution

Lorsque vous tracez uniquement la partie à marquer comme un tableau, passez-la avec marquez tous les après ''. Si vous souhaitez ajouter le Xème marqueur, ajoutez le numéro X-1st au tableau.

Comme ça.

#!/usr/bin/env python 
import matplotlib.pyplot as plt
 
X_data=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
Y_data=[13,15,21,5,10,18,21,17,15,16,21,13]
month_name=['Jan.','Feb.','Mar.','Apr.','May','Jun.','Jul.','Aug.','Sep.','Oct.','Nov.','Dec.']
mark_point=[0,3,6,9]

plt.xlabel('month')
plt.ylabel('data')

plt.grid(color='gray')
plt.xticks(X_data,month_name)
plt.yticks(range(1,max(Y_data)+1))
plt.plot(X_data,Y_data, '.', linestyle='solid', marker="D", markevery=mark_point)
plt.show()

Résultats markeevery1.png

Si vous souhaitez utiliser les données de l'axe y comme référence, vous pouvez d'abord comparer les données et les stocker dans le tableau. Exemple) Appliquer des marqueurs uniquement lorsque les données sont impaires

#!/usr/bin/env python 
import matplotlib.pyplot as plt
 
X_data=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
Y_data=[13,15,21,5,10,18,21,17,15,16,21,13]
month_name=['Jan.','Feb.','Mar.','Apr.','May','Jun.','Jul.','Aug.','Sep.','Oct.','Nov.','Dec.']
mark_point=[]

for i,data in enumerate(Y_data):
    if data%2:
        mark_point.append(i)

plt.xlabel('month')
plt.ylabel('data')

plt.grid(color='gray')
plt.xticks(X_data,month_name)
plt.yticks(range(1,max(Y_data)+1))
plt.plot(X_data,Y_data, '.', linestyle='solid', marker="D", markevery=mark_point)
plt.show()

Résultats markeevery2.png

affaire en cours de règlement.

Les références

Markevery Demo — Matplotlib 3.1.2 documentation

Recommended Posts

Comment appliquer des marqueurs uniquement à des données spécifiques avec matplotlib
Comment supprimer l'erreur d'affichage dans matplotlib
Comment créer des données à mettre dans CNN (Chainer)
Comment lire les données de séries chronologiques dans PyTorch
[Python] Comment dessiner un histogramme avec Matplotlib
Comment compter les nombres dans une plage spécifique
Comment utiliser Matplotlib
Comment éliminer les caractères déformés dans l'image de sortie matplotlib
Comment exécuter setUp une seule fois dans Python Unittest
Comment ajouter une barre de couleur dans le graphique à barres de matplotlib
Comment passer le paramètre backend de matplotlib avec une variable d'environnement
Comment lire un csv contenant uniquement des entiers en Python
Comment développer en Python
Comment gérer les trames de données
Comment ajouter de nouvelles données (lignes droites et tracés) à l'aide de matplotlib
Comment obtenir un aperçu de vos données dans Pandas
Entrer simultanément des données spécifiques sur une feuille spécifique dans de nombreux Excel
Compagnon de science des données en python, comment spécifier des éléments dans les pandas
[Python] Comment FFT des données mp3
[Python] Comment faire PCA avec Python
Comment lire les données de la sous-région e-Stat
Comment utiliser les classes dans Theano
Comment écrire sobrement avec des pandas
Comment collecter des images en Python
Comment mettre à jour Spyder dans Anaconda
Comment utiliser SQLite en Python
Comment gérer les données déséquilibrées
Comment exécuter matplotlib sur heroku
Comment convertir 0,5 en 1056964608 en un seul coup
Essayez de mettre des données dans MongoDB
<Pandas> Comment gérer les données de séries chronologiques dans le tableau croisé dynamique
Comment refléter CSS dans Django
Comment tuer des processus en vrac
Comment utiliser Mysql avec python
Comment augmenter les données avec PyTorch
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Comment créer une grande quantité de données de test dans MySQL? ??
Comment visualiser où se produit une mauvaise classification dans la classification de l'analyse des données
Comment exécuter du code TensorFlow 1.0 en 2.0
Comment gérer le japonais avec Python
Comment se connecter à Docker + NGINX
Comment collecter des données d'apprentissage automatique
Comment appeler PyTorch dans Julia
[Petite histoire] Comment enregistrer des graphiques matplotlib dans un lot avec Jupyter
Comment obtenir un nom de colonne et un nom d'index spécifiques avec Pandas DataFrame
Comment envoyer une image visualisée des données créées en Python à Typetalk
Comment faire exécuter un thread de processus uniquement sur un cœur de processeur spécifique
Comment stocker des données CSV dans Amazon Kinesis Streams avec une entrée standard
Analyse des données: application facile des statistiques descriptives et des statistiques d'estimation aux données CSV en Python
Comment tracer les données de lumière visible d'une galaxie à l'aide de la base de données OpenNGC en python
Comment trouver une colonne d'un type spécifique (str, float, etc.) à partir d'une colonne dans un DataFrame
Comment enregistrer une seule donnée sur l'écran de gestion de Django
Comment arrêter le programme jusqu'à une date et une heure spécifiques en python
Comment utiliser les colonnes calculées dans CASTable
[Introduction à Python] Comment utiliser la classe en Python?
Comment collecter des données Twitter sans programmation