Ich brauche Hilfe beim Festlegen der Grenzen der y-Achse auf matplotlib. Hier ist der Code, den ich erfolglos ausprobiert habe.
import matplotlib.pyplot as plt
plt.figure(1, figsize = (8.5,11))
plt.suptitle('plot title')
ax = []
aPlot = plt.subplot(321, axisbg = 'w', title = "Year 1")
ax.append(aPlot)
plt.plot(paramValues,plotDataPrice[0], color = '#340B8C',
marker = 'o', ms = 5, mfc = '#EB1717')
plt.xticks(paramValues)
plt.ylabel('Average Price')
plt.xlabel('Mark-up')
plt.grid(True)
plt.ylim((25,250))
Mit den Daten, die ich für dieses Diagramm habe, erhalte ich Grenzwerte für die y-Achse von 20 und 200. Ich möchte jedoch die Grenzwerte für 20 und 250.
python
matplotlib
Curious2learn
quelle
quelle
plt.show()
am Ende hinzufüge , um den Plot anzuzeigen. Welche Version und welches Backend verwenden Sie?plt.ylim((25,250))
undplt.ylim(ymax = 250, ymin = 25)
. Ich benutze dasAgg
Backend.axisbg
ist jetzt veraltetAntworten:
Versuche dies . Funktioniert auch für Nebenhandlungen.
quelle
None
festlegen, der die Berechnung matplotlib überlässt, z. B.axes.set_ylim([ymin,None])
Ihr Code funktioniert auch für mich. Eine andere Problemumgehung kann jedoch darin bestehen, die Achse des Diagramms abzurufen und dann nur die y-Werte zu ändern:
x1,x2,y1,y2 = plt.axis()
plt.axis((x1,x2,25,250))
quelle
Sie können Ihren Achsenbereich mithilfe von matplotlib.pyplot.axis selbst festlegen.
matplotlib.pyplot.axis
0,10 steht für den x-Achsenbereich. 0,20 ist für den y-Achsenbereich.
oder Sie können auch matplotlib.pyplot.xlim oder matplotlib.pyplot.ylim verwenden
matplotlib.pyplot.ylim
quelle
Sie können ein Objekt von instanziieren
matplotlib.pyplot.axes
und das darauf aufrufenset_ylim()
. Es wäre ungefähr so:quelle
Dies funktionierte zumindest in matplotlib Version 2.2.2:
Wahrscheinlich ist dies eine gute Möglichkeit, zum Beispiel nur xmin und ymax usw. einzurichten.
quelle
Um die Antwort von @ Hima zu ergänzen, können Sie Folgendes verwenden, wenn Sie eine aktuelle x- oder y-Grenze ändern möchten.
Ich finde dies besonders nützlich, wenn ich die Standard-Plot-Einstellungen verkleinern oder nur ein wenig vergrößern möchte.
quelle
Das sollte funktionieren. Ihr Code funktioniert für mich wie für Tamás und Manoj Govindan. Es sieht so aus, als könnten Sie versuchen, Matplotlib zu aktualisieren. Wenn Sie Matplotlib nicht aktualisieren können (z. B. wenn Sie nicht über ausreichende Administratorrechte verfügen), kann die Verwendung eines anderen Backends mit
matplotlib.use()
hilfreich sein.quelle
matplotlib.use('PDF')
). Ich verwende die Version, die mit der neuesten Version der Enthought Python Distribution geliefert wird. Können Sie bitte sehen, ob es mit dem PDF-Backend funktioniert? Vielen Dank!plt.savefig()
?aPlot =
in derplt.subplot
Leitung herausnehme, funktioniert es auch für mich. Es scheint, dass, wenn man die Unterzeichnung einer solchen Variablen zuweist, eine andere Methode zum Festlegen der Achsengrenzen verwendet werden muss. Ist das wahr?plt.ylim()
die Grenzwerte auf die aktuellen Achsen angewendet, die festgelegt werden, wenn Sie dies tunplt.subplot()
. Ich kann auch nicht glauben, dass esplt.subplot()
wichtig ist, wie die zurückgegebenen Achsen verwendet werden (in eine Variable eingefügt oder nicht usw.). Also würde ich sagen, es sollte funktionieren; es funktioniert auf meiner Maschine.Nur zur Feinabstimmung. Wenn Sie nur eine der Grenzen der Achse festlegen und die andere Grenze unverändert lassen möchten, können Sie eine oder mehrere der folgenden Anweisungen auswählen
Schauen Sie sich die Dokumentation für xlim und für ylim an
quelle
Wenn eine Achse (generiert durch Code unterhalb des in der Frage gezeigten Codes) den Bereich mit den ersten Achsen teilt , stellen Sie sicher, dass Sie den Bereich nach dem letzten Plot dieser Achsen festlegen .
quelle