[PYTHON] Verwenden Sie xticks () für pyplot und set_xticklabels () für Achsen.

(matplotlib ver3.2.0)

Wenn Sie die Skalierungszeichenfolge des von matplotlib gezeichneten Diagramms ändern möchten, verwenden Sie sie ordnungsgemäß, wie im Titel angegeben. Ich habe es zusammengefasst, weil es etwas eigenartig zu bedienen ist.

Grundlegende Syntax

#pyplot.xticks verwendet den Koordinatenwert der Skala als erstes Argument und die Ersatzzeichenfolge als zweites Argument.
plt.xticks([1, 2, 3, 4, 5], [ "A", "B", "C", "D", "E"])

#axes.set_xticklabels gibt nur die Ersatzzeichenfolge an
axes.set_xticklabels(["A", "B", "C", "D", "E"])

Ebenso wird pyplot.yticks () durch axes.set_yticklabels () ersetzt.

Zu beachtende Punkte zu axes.set_xticklabels

In axes.set_xticklabels () muss die gesamte Zeichenfolge für die Skala nacheinander angegeben werden. Wenn also viele Skalen vorhanden sind, ist es problematisch, wenn Sie nur einige der Skalen ändern möchten.

Wenn Sie beispielsweise wie folgt zeichnen, werden feine Skalen hinzugefügt, und es kann sehr mühsam sein, alle Zeichenfolgen festzulegen.

fig, ax = plt.subplots()
ax.plot([1,2,3,4,5] , [3,4,5,6,7])

Selbst wenn Sie in diesem Zustand Folgendes angeben, werden die angegebenen Zeichen an den Positionen 0,5 bis 2,5 platziert, wie in der folgenden Grafik dargestellt.

ax.set_xticklabels(["A", "B", "C", "D", "E"])

Wenn Sie Ihr Bestes tun, um es einzurichten, können Sie wie folgt schreiben.

ax.set_xticklabels(["", "A", "", "B", "", "C", "", "D", "", "E"])

Die Methode, die die Einstellung ein wenig zu vereinfachen scheint, wird im nächsten Abschnitt durch Ausprobieren zusammengefasst.

So vereinfachen Sie die Einstellung von axes.set_xticklabels

Begrenzen Sie die Skalennotation im Voraus

Verwenden Sie axis.set_xticks (), um die durch eine Zeichenfolge zu ersetzenden Koordinaten zu begrenzen, und ersetzen Sie sie dann.

ax.set_xticks([1,2,3,4,5]) 
ax.set_xticklabels(["A", "B", "C", "D", "E"])

Ersetzen Sie mit axes.get_xticklabels ()

Da Sie die aktuelle Skala mit axes.get_xticklabels () abrufen können, ersetzen Sie nur die erforderlichen Teile durch eine darauf basierende neue Zeichenfolge.

Beachten Sie, dass axes.get_xticklabels () ein Textobjekt ist, daher ist ein gewisser Einfallsreichtum erforderlich. Sie können wie folgt auf das Häkchen selbst zugreifen:

for item in ax.get_xticklabels():
    print(item.get_text())

#Ausgabeergebnis
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5

Ersetzen Sie von oben die Skalierungszeichenfolge durch Schreiben wie folgt.

fig, ax = plt.subplots()
ax.plot([1,2,3,4,5] , [3,4,5,6,7])
fig.canvas.draw() #Rufen Sie an, um den Koordinatenwert usw. zu bestimmen.
                  #Holen Sie sich, ohne dies anzurufen_xticklabels()Ich kann die Zeichenkette nicht bekommen, selbst wenn ich lese
                  #Übrigens Handlung.show()Wenn dies der Fall ist, wird das Diagramm repariert, sodass es unbrauchbar ist.

d = {1:"A", 2:"B", 3:"C", 4:"D", 5:"E"} #Definieren Sie die Koordinaten und Zeichenfolgen, die im Wörterbuch ersetzt werden sollen

#Ersetzen Sie die Position der im Wörterbuch registrierten Koordinaten
#Lassen Sie die anderen Positionen leer
#(Dies ist ein kleiner Text. Sie müssen ihn entsprechend dem gewünschten Kontext neu schreiben.)
l = []
for item in ax.get_xticklabels():
    k = float(item.get_text()) 
    if k in d:
        l.append(d[k])
    else:
        l.append("")
ax.set_xticklabels(l)

plt.show()

Übrigens können Sie mit dieser Methode die Nebenskalenlinien verlassen, ohne sie zu löschen. Nun, es ist besser, die Einstellungen in axes.set_xticklabels oben zu vereinfachen.

Recommended Posts

Verwenden Sie xticks () für pyplot und set_xticklabels () für Achsen.
Japanische Einstellungen für Matplotlib- und Seaborn-Achsen
Installieren Sie tweepy mit pip und verwenden Sie es für API 1.1
Verwenden Sie SQL Alchemy und Multiprocessing