Ich versuche, eine Figur ohne Häkchen oder Zahlen auf einer der Achsen zu zeichnen (ich verwende Achsen im traditionellen Sinne, nicht die Matplotlib-Nomenklatur!). Ein Problem, auf das ich gestoßen bin, ist, dass matplotlib die x (y) -Ticklabels durch Subtrahieren eines Werts N anpasst und dann N am Ende der Achse addiert.
Dies mag vage sein, aber das folgende vereinfachte Beispiel hebt das Problem hervor, wobei '6.18' der beleidigende Wert von N ist:
import matplotlib.pyplot as plt
import random
prefix = 6.18
rx = [prefix+(0.001*random.random()) for i in arange(100)]
ry = [prefix+(0.001*random.random()) for i in arange(100)]
plt.plot(rx,ry,'ko')
frame1 = plt.gca()
for xlabel_i in frame1.axes.get_xticklabels():
xlabel_i.set_visible(False)
xlabel_i.set_fontsize(0.0)
for xlabel_i in frame1.axes.get_yticklabels():
xlabel_i.set_fontsize(0.0)
xlabel_i.set_visible(False)
for tick in frame1.axes.get_xticklines():
tick.set_visible(False)
for tick in frame1.axes.get_yticklines():
tick.set_visible(False)
plt.show()
Die drei Dinge, die ich gerne wissen würde, sind:
Wie man dieses Verhalten überhaupt ausschaltet (obwohl es in den meisten Fällen nützlich ist, ist es nicht immer!) Ich habe es durchgesehen
matplotlib.axis.XAxis
und kann nichts Passendes findenWie kann ich N verschwinden lassen (dh
X.set_visible(False)
)Gibt es überhaupt einen besseren Weg, dies zu tun? Meine endgültige Handlung wäre 4x4-Nebenhandlungen in einer Figur, wenn dies relevant ist.
quelle
Antworten:
Anstatt jedes Element auszublenden, können Sie die gesamte Achse ausblenden:
Oder Sie können die Häkchen auf eine leere Liste setzen:
In dieser zweiten Option können Sie weiterhin Achsen verwenden
plt.xlabel()
undplt.ylabel()
den Achsen Beschriftungen hinzufügen.quelle
'Axes3DSubplot' object has no attribute 'get_zaxis'
get_xaxis().set_visible(False)
. Ich denke, matplotlib initialisiert in diesem Fall einige Parameter so, als ob das Diagramm 2D wäre.ax.set_zticks([])
wird tun, was Sie wollenWenn Sie nur den Achsentext ausblenden möchten, wobei die Gitterlinien beibehalten werden:
Tun
set_visible(False)
oderset_ticks([])
auch die Rasterlinien auszublenden.quelle
Wenn Sie wie ich sind und
ax
beim Zeichnen der Figur nicht immer die Achsen abrufen, wäre es eine einfache Lösungquelle
Etwas wie ein alter Thread, aber dies scheint eine schnellere Methode zu sein, wenn die neueste Version von matplotlib verwendet wird:
Stellen Sie den Hauptformatierer für die x-Achse ein
quelle
Ich war nicht in der Lage, ein Bild ohne Rahmen oder Achsendaten basierend auf einem der Code-Schnipsel hier zu rendern (selbst dem, der bei der Antwort akzeptiert wurde). Nachdem ich einige API-Dokumentationen durchgesehen hatte, landete ich auf diesem Code, um mein Bild zu rendern
Ich habe den
tick_params
Aufruf verwendet, um zusätzliche Informationen, die möglicherweise gerendert werden, herunterzufahren, und ich habe ein perfektes Diagramm in meiner Ausgabedatei.quelle
Ich habe diese Figur farbcodiert, um den Vorgang zu vereinfachen.
Mit diesen Befehlen können Sie die Figur vollständig steuern. Um die Antwort zu vervollständigen, habe ich auch die Kontrolle über die Splines hinzugefügt:
quelle
ax.set_xticklabels([])
undax.set_xticks([])
arbeitete nicht für mich, aberax.axes.get_xaxis().set_visible(False)
tat.Bei Verwendung der objektorientierten API verfügt das
Axes
Objekt über zwei nützliche Methoden zum Entfernen des Achsentextesset_xticklabels()
undset_xticks()
.Angenommen, Sie erstellen ein Diagramm mit
Wenn Sie einfach die Häkchen entfernen möchten, können Sie verwenden
oder um die Zecken vollständig zu entfernen, können Sie verwenden
Diese Methoden sind nützlich, um genau anzugeben, wo die Häkchen angezeigt werden sollen und wie sie beschriftet werden sollen. Das Übergeben einer leeren Liste führt zu keinen Häkchen bzw. Beschriftungen.
quelle
Ein Trick könnte darin bestehen, die Farbe von Häkchen als weiß festzulegen, um sie auszublenden!
quelle