Notiz
Klicken Sie hier , um den vollständigen Beispielcode herunterzuladen
Ansichtsbeschränkungen mit Rändern und sticky_edges kontrollieren #
margins
Die erste Abbildung in diesem Beispiel zeigt, wie Sie mit anstelle von set_xlim
und
in einen Plot hinein- und herauszoomen set_ylim
. Die zweite Abbildung zeigt das von bestimmten Methoden und Künstlern eingeführte Konzept der Kantenklebrigkeit und wie man es effektiv umgeht.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
def f(t):
return np.exp(-t) * np.cos(2*np.pi*t)
t1 = np.arange(0.0, 3.0, 0.01)
ax1 = plt.subplot(212)
ax1.margins(0.05) # Default margin is 0.05, value 0 means fit
ax1.plot(t1, f(t1))
ax2 = plt.subplot(221)
ax2.margins(2, 2) # Values >0.0 zoom out
ax2.plot(t1, f(t1))
ax2.set_title('Zoomed out')
ax3 = plt.subplot(222)
ax3.margins(x=0, y=-0.25) # Values in (-0.5, 0.0) zooms in to center
ax3.plot(t1, f(t1))
ax3.set_title('Zoomed in')
plt.show()
Über die "Klebrigkeit" bestimmter Plotmethoden #
Einige Zeichenfunktionen machen die Achsengrenzen "klebrig" oder immun gegen den Willen der margins
Methoden. Erwarten Sie zum Beispiel, imshow
dass
pcolor
der Benutzer möchte, dass die Grenzen um die im Diagramm angezeigten Pixel eng sind. Wenn dieses Verhalten nicht erwünscht ist, müssen Sie es auf
use_sticky_edges
setzen False
. Betrachten Sie das folgende Beispiel:
y, x = np.mgrid[:5, 1:6]
poly_coords = [
(0.25, 2.75), (3.25, 2.75),
(2.25, 0.75), (0.25, 0.75)
]
fig, (ax1, ax2) = plt.subplots(ncols=2)
# Here we set the stickiness of the axes object...
# ax1 we'll leave as the default, which uses sticky edges
# and we'll turn off stickiness for ax2
ax2.use_sticky_edges = False
for ax, status in zip((ax1, ax2), ('Is', 'Is Not')):
cells = ax.pcolor(x, y, x+y, cmap='inferno', shading='auto') # sticky
ax.add_patch(
Polygon(poly_coords, color='forestgreen', alpha=0.5)
) # not sticky
ax.margins(x=0.1, y=0.05)
ax.set_aspect('equal')
ax.set_title('{} Sticky'.format(status))
plt.show()
Verweise
In diesem Beispiel wird die Verwendung der folgenden Funktionen, Methoden, Klassen und Module gezeigt: