Wie kann ich den y-Achsenbereich des zweiten Subplots auf zB einstellen [0,1000] ? Das FFT-Diagramm meiner Daten (eine Spalte in einer Textdatei) führt zu einer (inf.?) Spitze, sodass die tatsächlichen Daten nicht sichtbar sind.
pylab.ylim([0,1000])
hat leider keine wirkung. Das ist das ganze Skript:
# based on http://www.swharden.com/blog/2009-01-21-signal-filtering-with-python/
import numpy, scipy, pylab, random
xs = []
rawsignal = []
with open("test.dat", 'r') as f:
for line in f:
if line[0] != '#' and len(line) > 0:
xs.append( int( line.split()[0] ) )
rawsignal.append( int( line.split()[1] ) )
h, w = 3, 1
pylab.figure(figsize=(12,9))
pylab.subplots_adjust(hspace=.7)
pylab.subplot(h,w,1)
pylab.title("Signal")
pylab.plot(xs,rawsignal)
pylab.subplot(h,w,2)
pylab.title("FFT")
fft = scipy.fft(rawsignal)
#~ pylab.axis([None,None,0,1000])
pylab.ylim([0,1000])
pylab.plot(abs(fft))
pylab.savefig("SIG.png",dpi=200)
pylab.show()
Andere Verbesserungen werden ebenfalls geschätzt!
Siehe auch stackoverflow.com/questions/15858192/…
– tacaswell
7. Juni 2015 um 18:54 Uhr
Beantwortet das deine Frage? Y-Achsen-Limit in Matplotlib einstellen
from matplotlib import pyplot as plt
plt.ylim(0, 100)
#corresponding function for the x-axis
plt.xlim(1, 1000)
Wenn ich das mache, werden die Bilder auf den Kopf gestellt.
– Ely
6. Dezember 2011 um 1:52 Uhr
Wenn ich dies mit Hexbin verwende, wird ylim verwendet, nachdem plot() auf beiden Plots weißen Hintergrund freigelegt hat
– Luchs
19. Juni 2013 um 19:23 Uhr
WAS ist, wenn Sie nicht plot, sondern savefig verwenden?
– Ben
21. Dezember 2013 um 4:39 Uhr
Anruf plot()dann ylim() und dann savefig().
– der echte Root-Benutzer
15. April 2015 um 4:01 Uhr
in Nebenhandlungen ist es set_ylim().
– Khaverim
2. Juli 2021 um 19:43 Uhr
ʀᴏʙ
Verwenden Achsenobjekte ist dafür ein toller Ansatz. Es hilft, wenn Sie mit mehreren Figuren und Nebenhandlungen interagieren möchten. Um die Achsenobjekte direkt hinzuzufügen und zu manipulieren:
Wie Rob vorschlägt, wird die OO-Schnittstelle in Matplotlib gegenüber der zustandsbasierten Pylab-Schnittstelle bevorzugt. “Obwohl viele Beispiele Pylab verwenden, wird es nicht mehr empfohlen. Für nicht-interaktives Plotten wird empfohlen, Pyplot zum Erstellen der Figuren und dann die OO-Schnittstelle zum Plotten zu verwenden.” matplotlib.org/faq/…
– Bennett Brown
8. Juli 2017 um 3:09 Uhr
Manchmal möchten Sie wirklich die Achsengrenzen festlegen Vor Sie zeichnen die Daten. In diesem Fall können Sie die „Autoscaling“-Funktion von einstellen Axes oder AxesSubplot Objekt. Die interessierenden Funktionen sind set_autoscale_on, set_autoscalex_onund set_autoscaley_on.
In Ihrem Fall möchten Sie die Grenzen der y-Achse einfrieren, die x-Achse jedoch erweitern, um Ihre Daten aufzunehmen. Daher möchten Sie die ändern autoscaley_on Eigentum zu False. Hier ist eine modifizierte Version des FFT-Subplot-Snippets aus Ihrem Code:
Wenn Sie die genaue Achse kennen, die Sie wollen, dann
pylab.ylim([0,1000])
funktioniert wie zuvor beantwortet. Wenn Sie jedoch eine flexiblere Achse wünschen, die Ihren genauen Daten entspricht, wie ich es getan habe, als ich diese Frage gefunden habe, legen Sie die Achsenbegrenzung auf die Länge Ihres Datensatzes fest. Wenn Ihr Datensatz ist fft wie in der Frage, dann fügen Sie dies nach Ihrem Plot-Befehl hinzu:
length = (len(fft))
pylab.ylim([0,length])
Wenn Sie mehrere Nebenhandlungen haben, dh
fig, ax = plt.subplots(4, 2)
Sie können für alle die gleichen y-Grenzen verwenden. Es erhält Grenzen von y ax aus dem ersten Diagramm.
plt.setp(ax, ylim=ax[0,0].get_ylim())
13988900cookie-checkSo stellen Sie den Achsenbereich des Subplots einyes
Siehe auch stackoverflow.com/questions/15858192/…
– tacaswell
7. Juni 2015 um 18:54 Uhr
Beantwortet das deine Frage? Y-Achsen-Limit in Matplotlib einstellen
– jacob
24. März 2021 um 20:37 Uhr