Mit Matplotlib Version 1.5.1 und Python 2.7.11 habe ich festgestellt, dass ich die Grenzen in y manuell angeben muss oder sonst nur den größten y-Wert Punkt geplottet wird. Arrays verhalten sich genauso.Warum wählt Matplotlib den falschen Bereich in y unter Verwendung der Protokollskala?
Wenn ich den ersten Punkt entferne, bekomme ich ein paar mehr Punkte, aber nicht alle.
Ich kann mich nicht daran erinnern, dass ich jemals solche Grenzen manuell festlegen musste - warum hier?
import matplotlib.pyplot as plt
X = [0.997, 2.643, 0.354, 0.075, 1.0, 0.03, 2.39, 0.364, 0.221, 0.437]
Y = [15.487507, 2.320735, 0.085742, 0.303032, 1.0, 0.025435, 4.436435,
0.025435, 0.000503, 2.320735]
plt.figure()
plt.subplot(1,2,1)
plt.scatter(X, Y)
plt.xscale('log')
plt.yscale('log')
plt.subplot(1,2,2)
plt.scatter(X, Y)
plt.xscale('log')
plt.yscale('log')
plt.ylim(0.5*min(Y), 2.0*max(Y)) # why is this line necessary?
plt.title('added plt.ylim()')
plt.show()
OK, das ist eine Lösung, aber ist das so, wie es funktionieren soll? Es betrifft nur die y-Skala, die x-Skala benötigt dies nicht. – uhoh
Ich denke, ich muss es immer in der 'richtigen' Reihenfolge gemacht haben, ohne es zu merken. Vielen Dank! – uhoh