673 Stimmen

Einstellung der y-Achsengrenze in Matplotlib

Ich brauche Hilfe bei der Einstellung der Grenzen der y-Achse auf Matplotlib. Hier ist der Code, den ich versucht habe, erfolglos.

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 diese Darstellung habe, erhalte ich y-Achsen-Grenzwerte von 20 und 200. Ich möchte jedoch die Grenzen 20 und 250.

2 Stimmen

Funktioniert für mich mit Matplotlib 1.0.0, wenn ich hinzufügen plt.show() am Ende, um die Darstellung zu zeigen. Welche Version und welches Backend verwenden Sie?

30 Stimmen

Funktioniert bei mir mit Matplotlib 0.98.5.2, Python 2.6.2. Ich habe beides ausprobiert plt.ylim((25,250)) und plt.ylim(ymax = 250, ymin = 25) . Ich verwende die Agg Backend.

1 Stimmen

Vielen Dank an Sie beide. Funktioniert es mit PDF-Backend für Sie.

959voto

Hima Punkte 10100

Aktuelle Achse abrufen über plt.gca() und legen Sie dann ihre Grenzen fest:

ax = plt.gca()
ax.set_xlim([xmin, xmax])
ax.set_ylim([ymin, ymax])

373 Stimmen

Dies ist übrigens eine dumme Abkürzung und bedeutet " g und die c aktuell a xes".

90 Stimmen

Können Sie auch einen Wert festlegen None die die Berechnung Matplotlib überlässt, z. B. axes.set_ylim([ymin,None])

2 Stimmen

Es gibt andere Möglichkeiten als die Verwendung von None wie in @linqu 's Beitrag: set_ylim(bottom=None, top=None, [...], *, ymin=None, ymax=None) . bottom y ymin (Äquivalent) für mindestens. top y ymax ) gleichwertig für Maximum. Sie können nicht beides verwenden bottom y ymin sofort. Dasselbe gilt für top y ymax .

183voto

Birat Bose Punkte 1684

Eine Möglichkeit ist, den Achsenbereich selbst festzulegen, indem Sie matplotlib.pyplot.axis verwenden.

matplotlib.pyplot.axis

from matplotlib import pyplot as plt
plt.axis([0, 10, 0, 20])

0,10 ist für den Bereich der X-Achse. 0,20 ist für den Bereich der Y-Achse.

oder Sie können auch matplotlib.pyplot.xlim oder matplotlib.pyplot.ylim verwenden

matplotlib.pyplot.ylim

plt.ylim(-2, 2)
plt.xlim(0,10)

154voto

thetarro Punkte 1787

Eine andere Möglichkeit besteht darin, die Achsen des Diagramms zu erhalten und nur die y-Werte neu zuzuordnen:

x1,x2,y1,y2 = plt.axis()  
plt.axis((x1,x2,25,250))

4 Stimmen

Sie brauchen nicht zuzugreifen x1 y x2 können Sie Matplotlib veranlassen, diese mit None .

44voto

Reza Keshavarz Punkte 659

Sie können ein Objekt instanziieren von matplotlib.pyplot.axes und rufen Sie die set_ylim() darauf. Es würde etwa so aussehen:

import matplotlib.pyplot as plt
axes = plt.axes()
axes.set_ylim([0, 1])

43voto

loved.by.Jesus Punkte 1777

Nur zur Feinabstimmung. Wenn Sie nur eine der Begrenzungen der Achse festlegen und die andere Begrenzung unverändert lassen wollen, können Sie eine oder mehrere der folgenden Anweisungen wählen

plt.xlim(right=xmax) #xmax is your value
plt.xlim(left=xmin) #xmin is your value
plt.ylim(top=ymax) #ymax is your value
plt.ylim(bottom=ymin) #ymin is your value

Werfen Sie einen Blick in die Dokumentation für xlim und für ylim

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X