[PYTHON] So wenden Sie mit matplotlib Marker nur auf bestimmte Daten an

Einführung

In Bei der grafischen Darstellung der Veröffentlichungsreihenfolge von Zeitschriften wollte ich Markierungen (Punkte in der Grafik) nur bestimmten Elementen mit matplotlib (Mitte) hinzufügen. Ich wollte ein Zeichen setzen, damit es nur in Farbe leicht zu verstehen ist, aber ich habe es bei der Suche überhaupt nicht gefunden, also habe ich mir eine Notiz gemacht. max_2020.png ↑ Ich wollte den Marker nur bei einem bestimmten Wert anwenden, um ihn so hervorzuheben.

Umgebung

$ 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

Problem

Angenommen, die folgenden Daten sind verfügbar.

month Januar Februar März April Kann Juni Juli August September Oktober 1Januar 1Februar
data 13 15 21 5 10 18 21 17 15 16 21 13

Dies ist eine Grafik davon. before.png

Was ist, wenn Sie nur die Daten für Januar, April, Juli und Oktober in dieser Grafik mit Diamanten (und nicht mit anderen) markieren möchten?

Lösung

Wenn Sie nur den Teil zeichnen, der als Array markiert werden soll, übergeben Sie ihn danach mit "Markieren". Wenn Sie die X. Markierung hinzufügen möchten, fügen Sie die X-1-Nummer zum Array hinzu.

So was.

#!/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()

Ergebnisse markeevery1.png

Wenn Sie die Daten der y-Achse als Referenz verwenden möchten, können Sie die Daten zuerst vergleichen und im Array speichern. Beispiel) Wenden Sie Markierungen nur an, wenn die Daten ungerade sind

#!/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()

Ergebnisse markeevery2.png

Fall wird beigelegt.

Verweise

Markevery Demo — Matplotlib 3.1.2 documentation

Recommended Posts

So wenden Sie mit matplotlib Marker nur auf bestimmte Daten an
So unterdrücken Sie Anzeigefehler in matplotlib
So erstellen Sie Daten für CNN (Chainer)
Lesen von Zeitreihendaten in PyTorch
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
So zählen Sie Zahlen in einem bestimmten Bereich
Wie benutzt man Matplotlib?
So entfernen Sie verstümmelte Zeichen im Matplotlib-Ausgabebild
Wie man setUp nur einmal in Python unittest ausführt
So fügen Sie dem Balkendiagramm von matplotlib einen Farbbalken hinzu
So übergeben Sie die Backend-Einstellung von matplotlib mit einer Umgebungsvariablen
Lesen von CSVs, die in Python nur Ganzzahlen enthalten
Wie man in Python entwickelt
Umgang mit Datenrahmen
Hinzufügen neuer Daten (gerade Linien und Diagramme) mit matplotlib
So erhalten Sie einen Überblick über Ihre Daten in Pandas
Geben Sie in vielen Excel gleichzeitig bestimmte Daten in ein bestimmtes Blatt ein
Data Science-Begleiter in Python, wie man Elemente in Pandas spezifiziert
[Python] Wie man MP3-Daten fFT
[Python] Wie man PCA mit Python macht
Lesen von e-Stat-Subregionsdaten
Verwendung von Klassen in Theano
Wie man nüchtern mit Pandas schreibt
So sammeln Sie Bilder in Python
So aktualisieren Sie Spyder in Anaconda
Verwendung von SQLite in Python
Umgang mit unausgeglichenen Daten
Wie man Matplotlib auf Heroku ausführt
So konvertieren Sie 0,5 in 1056964608 auf einmal
Versuchen Sie, Daten in MongoDB abzulegen
<Pandas> Umgang mit Zeitreihendaten in der Pivot-Tabelle
Wie man CSS in Django reflektiert
Wie man Prozesse in großen Mengen abbricht
Wie man MySQL mit Python benutzt
Aufblasen von Daten (Datenerweiterung) mit PyTorch
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Wie erstelle ich eine große Menge an Testdaten in MySQL? ??
Visualisierung, wo bei der Klassifizierung der Datenanalyse eine Fehlklassifizierung auftritt
So führen Sie TensorFlow 1.0-Code in 2.0 aus
Umgang mit Japanisch mit Python
So melden Sie sich bei Docker + NGINX an
Sammeln von Daten zum maschinellen Lernen
So rufen Sie PyTorch in Julia an
[Kleine Geschichte] So speichern Sie Matplotlib-Diagramme in einem Stapel mit Jupyter
So erhalten Sie mit pandas DataFrame einen bestimmten Spaltennamen und Indexnamen
So senden Sie ein visualisiertes Bild der in Python erstellten Daten an Typetalk
So führen Sie einen Prozessthread nur auf einem bestimmten CPU-Kern aus
Speichern von CSV-Daten in Amazon Kinesis Streams mit Standardeingabe
Datenanalyse: Einfache Anwendung deskriptiver Statistiken und Schätzungsstatistiken auf CSV-Daten in Python
Zeichnen von Daten einer Galaxie mit sichtbarem Licht mithilfe der OpenNGC-Datenbank in Python
So finden Sie eine Spalte eines bestimmten Typs (str, float usw.) aus einer Spalte in einem DataFrame
So registrieren Sie nur eine Daten auf dem Django-Verwaltungsbildschirm
So stoppen Sie das Programm bis zu einem bestimmten Datum und einer bestimmten Uhrzeit in Python
Verwendung berechneter Spalten in CASTable
[Einführung in Python] Wie verwende ich eine Klasse in Python?
So sammeln Sie Twitter-Daten ohne Programmierung