Wie man 'auto' für das obere Limit einstellt, aber ein festes unteres Limit mit matplotlib.pyplot behält
Ich möchte die Obere Begrenzung auf der y-Achse auf "auto", aber ich will, dass die untere Grenze der y-Achse immer null. Ich habe versucht, 'auto' und 'autorange', aber diese scheinen nicht zu funktionieren. Vielen Dank im Voraus.
Hier ist mein code:
import matplotlib.pyplot as plt
def plot(results_plt,title,filename):
############################
# Plot results
# mirror result table such that each parameter forms an own data array
plt.cla()
#print results_plt
XY_results = []
XY_results = zip( *results_plt)
plt.plot(XY_results[0], XY_results[2], marker = ".")
plt.title('%s' % (title) )
plt.xlabel('Input Voltage [V]')
plt.ylabel('Input Current [mA]')
plt.grid(True)
plt.xlim(3.0, 4.2) #***I want to keep these values fixed"
plt.ylim([0, 80]) #****CHANGE**** I want to change '80' to auto, but still keep 0 as the lower limit
plt.savefig(path+filename+'.png')
InformationsquelleAutor der Frage vietnastee | 2012-07-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie pass nur
left
oderright
zuset_xlim
:Für die y-Achse, verwenden Sie
bottom
odertop
:InformationsquelleAutor der Antwort ecatmur
Setzen Sie einfach
xlim
für eine der Grenzen:InformationsquelleAutor der Antwort silviomoreto
Wie oben und nach dem matplotlib Dokumentation, die x-Grenzen einer gegebenen Achse
ax
kann durch denset_xlim
Methode dermatplotlib.axes.Axes
Klasse.Beispielsweise
Einem limit unverändert bleiben (z.B. die linke Grenze):
Um die x-Grenzen der aktuellen Achse, die
matplotlib.pyplot
Modul enthält diexlim
- Funktion, die nur Packungenmatplotlib.pyplot.gca
undmatplotlib.axes.Axes.set_xlim
.Ebenso für die y-Grenzen
matplotlib.axes.Axes.set_ylim
odermatplotlib.pyplot.ylim
. Die keyword-Argumente sindtop
undbottom
.InformationsquelleAutor der Antwort Remi Cuingnet
Nur noch ein Punkt auf @silvio 's: wenn Sie-Achse plot wie
figure, ax1 = plt.subplots(1,2,1)
. Dannax1.set_xlim(xmin = 0)
auch funktioniert!InformationsquelleAutor der Antwort Skywalker326