@@ -121,6 +121,51 @@ In the explicit interface, this would be:
121121 axs[0].plot([1, 2, 3], [0, 0.5, 0.2])
122122 axs[1].plot([3, 2, 1], [0, 0.5, 0.2])
123123
124+ Translating between the Axes interface and the pyplot interface
125+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
126+ You may find either interface in existing code, and unfortunately sometimes even
127+ mixtures. This section describes the patterns for specific operations in both
128+ interfaces and how to translate from one to the other.
129+
130+ - Creating figures is the same for both interfaces: Use the respective `.pyplot `
131+ functions ``plt.figure() ``, ``plt.subplots() ``, ``plt.subplot_mosaic() ``.
132+ For the Axes interface, you typically store the created Figure (and possibly
133+ Axes) in variables for later use. When using the pyplot interface, these
134+ values are typically not stored. Example:
135+
136+ - Axes: ``fig, ax = plt.subplots() ``
137+ - pyplot: ``plt.subplots() ``
138+
139+ - "Plotting" functions, i.e. functions that add data, are named the same and
140+ have identical parameters on the Axes and in pyplot. Example:
141+
142+ - Axes: ``ax.plot(x, y) ``
143+ - pyplot: ``plt.plot(x, y) ``
144+
145+ - Functions that retrieve properties are named like the property in pyplot
146+ and are prefixed with ``get_ `` on the Axes. Example:
147+
148+ - Axes: ``label = ax.get_xlabel() ``
149+ - pyplot: ``label = plt.xlabel() ``
150+
151+ - Functions that set properties like the property in pyplot and are prefixed with
152+ ``set_ `` on the Axes. Example:
153+
154+ - Axes: ``ax.set_xlabel("time") ``
155+ - pyplot: ``plt.xlabel("time") ``
156+
157+ Here is a short summary of the examples again as a side-by-side comparison:
158+
159+ ================== ============================ ========================
160+ Operation Axes interface pyplot interface
161+ ================== ============================ ========================
162+ Creating figures ``fig, ax = plt.subplots() `` ``plt.subplots() ``
163+ Plotting data ``ax.plot(x, y) `` ``plt.plot(x, y) ``
164+ Getting properties ``label = ax.get_xlabel() `` ``label = plt.xlabel() ``
165+ Setting properties ``ax.set_xlabel("time") `` ``plt.xlabel("time") ``
166+ ================== ============================ ========================
167+
168+
124169Why be explicit?
125170^^^^^^^^^^^^^^^^
126171
0 commit comments