|
From: <wea...@us...> - 2010-07-14 02:42:26
|
Revision: 8543
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8543&view=rev
Author: weathergod
Date: 2010-07-14 02:42:19 +0000 (Wed, 14 Jul 2010)
Log Message:
-----------
Added documentation and examples for new, easier Axes3D use.
Modified Paths:
--------------
branches/v1_0_maint/doc/mpl_toolkits/mplot3d/tutorial.rst
branches/v1_0_maint/examples/mplot3d/2dcollections3d_demo.py
branches/v1_0_maint/examples/mplot3d/bars3d_demo.py
branches/v1_0_maint/examples/mplot3d/contour3d_demo.py
branches/v1_0_maint/examples/mplot3d/contour3d_demo2.py
branches/v1_0_maint/examples/mplot3d/contour3d_demo3.py
branches/v1_0_maint/examples/mplot3d/contourf3d_demo.py
branches/v1_0_maint/examples/mplot3d/hist3d_demo.py
branches/v1_0_maint/examples/mplot3d/lines3d_demo.py
branches/v1_0_maint/examples/mplot3d/pathpatch3d_demo.py
branches/v1_0_maint/examples/mplot3d/polys3d_demo.py
branches/v1_0_maint/examples/mplot3d/rotate_axes3d_demo.py
branches/v1_0_maint/examples/mplot3d/scatter3d_demo.py
branches/v1_0_maint/examples/mplot3d/subplot3d_demo.py
branches/v1_0_maint/examples/mplot3d/surface3d_demo.py
branches/v1_0_maint/examples/mplot3d/surface3d_demo2.py
branches/v1_0_maint/examples/mplot3d/surface3d_demo3.py
branches/v1_0_maint/examples/mplot3d/surface3d_radial_demo.py
branches/v1_0_maint/examples/mplot3d/text3d_demo.py
branches/v1_0_maint/examples/mplot3d/wire3d_animation_demo.py
branches/v1_0_maint/examples/mplot3d/wire3d_demo.py
Added Paths:
-----------
branches/v1_0_maint/examples/mplot3d/mixed_subplots_demo.py
Modified: branches/v1_0_maint/doc/mpl_toolkits/mplot3d/tutorial.rst
===================================================================
--- branches/v1_0_maint/doc/mpl_toolkits/mplot3d/tutorial.rst 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/doc/mpl_toolkits/mplot3d/tutorial.rst 2010-07-14 02:42:19 UTC (rev 8543)
@@ -7,13 +7,15 @@
Getting started
===============
-Create a new :class:`matplotlib.figure.Figure` and an
-:class:`~mpl_toolkits.mplot3d.Axes3D` object in it::
+An Axes3D object is created just like any other axes using
+the projection='3d' keyword.
+Create a new :class:`matplotlib.figure.Figure` and
+add a new axes to it of type :class:`~mpl_toolkits.mplot3d.Axes3D`::
- import pylab
- fig = pylab.figure()
+ import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
- ax = Axes3D(fig)
+ fig = pyplt.figure()
+ ax = fig.add_subplot(111, projection='3d')
Line plots
====================
@@ -39,6 +41,7 @@
.. plot:: mpl_examples/mplot3d/surface3d_demo.py
.. plot:: mpl_examples/mplot3d/surface3d_demo2.py
+.. plot:: mpl_examples/mplot3d/surface3d_demo3.py
Contour plots
=============
@@ -46,6 +49,7 @@
.. plot:: mpl_examples/mplot3d/contour3d_demo.py
.. plot:: mpl_examples/mplot3d/contour3d_demo2.py
+.. plot:: mpl_examples/mplot3d/contour3d_demo3.py
Filled contour plots
====================
@@ -75,3 +79,11 @@
.. plot:: mpl_examples/mplot3d/text3d_demo.py
+Subplotting
+====================
+Having multiple 3D plots in a single figure is the same
+as it is for 2D plots. And you can mix 2D and 3D plots
+into the same figure.
+
+.. plot:: mpl_examples/mplot3d/subplot3d_demo.py
+.. plot:: mpl_examples/mplot3d/mixed_subplots_demo.py
Modified: branches/v1_0_maint/examples/mplot3d/2dcollections3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/2dcollections3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/2dcollections3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -3,7 +3,7 @@
import matplotlib.pyplot as plt
fig = plt.figure()
-ax = Axes3D(fig)
+ax = fig.gca(projection='3d')
x = np.linspace(0, 1, 100)
y = np.sin(x * 2 * np.pi) / 2 + 0.5
Modified: branches/v1_0_maint/examples/mplot3d/bars3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/bars3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/bars3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -3,7 +3,7 @@
import numpy as np
fig = plt.figure()
-ax = Axes3D(fig)
+ax = fig.add_subplot(111, projection='3d')
for c, z in zip(['r', 'g', 'b', 'y'], [30, 20, 10, 0]):
xs = np.arange(20)
ys = np.random.rand(20)
Modified: branches/v1_0_maint/examples/mplot3d/contour3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/contour3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/contour3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -2,7 +2,7 @@
import matplotlib.pyplot as plt
fig = plt.figure()
-ax = axes3d.Axes3D(fig)
+ax = fig.add_subplot(111, projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
cset = ax.contour(X, Y, Z)
ax.clabel(cset, fontsize=9, inline=1)
Modified: branches/v1_0_maint/examples/mplot3d/contour3d_demo2.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/contour3d_demo2.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/contour3d_demo2.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -2,7 +2,7 @@
import matplotlib.pyplot as plt
fig = plt.figure()
-ax = axes3d.Axes3D(fig)
+ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
cset = ax.contour(X, Y, Z, 16, extend3d=True)
ax.clabel(cset, fontsize=9, inline=1)
Modified: branches/v1_0_maint/examples/mplot3d/contour3d_demo3.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/contour3d_demo3.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/contour3d_demo3.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -2,7 +2,7 @@
import matplotlib.pyplot as plt
fig = plt.figure()
-ax = axes3d.Axes3D(fig)
+ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3)
cset = ax.contour(X, Y, Z, zdir='z', offset=-100)
Modified: branches/v1_0_maint/examples/mplot3d/contourf3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/contourf3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/contourf3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -2,7 +2,7 @@
import matplotlib.pyplot as plt
fig = plt.figure()
-ax = axes3d.Axes3D(fig)
+ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
cset = ax.contourf(X, Y, Z)
ax.clabel(cset, fontsize=9, inline=1)
Modified: branches/v1_0_maint/examples/mplot3d/hist3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/hist3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/hist3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -3,7 +3,7 @@
import numpy as np
fig = plt.figure()
-ax = Axes3D(fig)
+ax = fig.add_subplot(111, projection='3d')
x, y = np.random.rand(2, 100) * 4
hist, xedges, yedges = np.histogram2d(x, y, bins=4)
Modified: branches/v1_0_maint/examples/mplot3d/lines3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/lines3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/lines3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -6,7 +6,7 @@
mpl.rcParams['legend.fontsize'] = 10
fig = plt.figure()
-ax = Axes3D(fig)
+ax = fig.gca(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
Added: branches/v1_0_maint/examples/mplot3d/mixed_subplots_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/mixed_subplots_demo.py (rev 0)
+++ branches/v1_0_maint/examples/mplot3d/mixed_subplots_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -0,0 +1,48 @@
+"""
+Demonstrate the mixing of 2d and 3d subplots
+"""
+from mpl_toolkits.mplot3d import Axes3D
+import matplotlib.pyplot as plt
+import numpy as np
+
+def f(t):
+ s1 = np.cos(2*np.pi*t)
+ e1 = np.exp(-t)
+ return np.multiply(s1,e1)
+
+
+################
+# First subplot
+################
+t1 = np.arange(0.0, 5.0, 0.1)
+t2 = np.arange(0.0, 5.0, 0.02)
+t3 = np.arange(0.0, 2.0, 0.01)
+
+fig = plt.figure()
+fig.suptitle('A tale of 2 subplots')
+ax = fig.add_subplot(2, 1, 1)
+l = ax.plot(t1, f(t1), 'bo',
+ t2, f(t2), 'k--', markerfacecolor='green')
+ax.grid(True)
+ax.set_ylabel('Damped oscillation')
+
+
+#################
+# Second subplot
+#################
+ax = fig.add_subplot(2, 1, 2, projection='3d')
+X = np.arange(-5, 5, 0.25)
+xlen = len(X)
+Y = np.arange(-5, 5, 0.25)
+ylen = len(Y)
+X, Y = np.meshgrid(X, Y)
+R = np.sqrt(X**2 + Y**2)
+Z = np.sin(R)
+
+surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1,
+ linewidth=0, antialiased=False)
+
+ax.set_zlim3d(-1, 1)
+
+plt.show()
+
Modified: branches/v1_0_maint/examples/mplot3d/pathpatch3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/pathpatch3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/pathpatch3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -25,7 +25,7 @@
fig = plt.figure()
-ax = Axes3D(fig)
+ax = fig.add_subplot(111, projection='3d')
p = Circle((5, 5), 3)
ax.add_patch(p)
Modified: branches/v1_0_maint/examples/mplot3d/polys3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/polys3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/polys3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -5,7 +5,7 @@
import numpy as np
fig = plt.figure()
-ax = Axes3D(fig)
+ax = fig.gca(projection='3d')
cc = lambda arg: colorConverter.to_rgba(arg, alpha=0.6)
Modified: branches/v1_0_maint/examples/mplot3d/rotate_axes3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/rotate_axes3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/rotate_axes3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -5,7 +5,7 @@
plt.ion()
fig = plt.figure()
-ax = axes3d.Axes3D(fig)
+ax = fig.add_subplot(111, projection='3d')
X, Y, Z = axes3d.get_test_data(0.1)
ax.plot_wireframe(X, Y, Z, rstride=5, cstride=5)
Modified: branches/v1_0_maint/examples/mplot3d/scatter3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/scatter3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/scatter3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -6,7 +6,7 @@
return (vmax-vmin)*np.random.rand(n) + vmin
fig = plt.figure()
-ax = Axes3D(fig)
+ax = fig.add_subplot(111, projection='3d')
n = 100
for c, m, zl, zh in [('r', 'o', -50, -25), ('b', '^', -30, -5)]:
xs = randrange(n, 23, 32)
Modified: branches/v1_0_maint/examples/mplot3d/subplot3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/subplot3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/subplot3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -1,11 +1,16 @@
from mpl_toolkits.mplot3d.axes3d import Axes3D
-from matplotlib import cm
-#from matplotlib.ticker import LinearLocator, FixedLocator, FormatStrFormatter
import matplotlib.pyplot as plt
+
+
+# imports specific to the plots in this example
import numpy as np
+from matplotlib import cm
+from mpl_toolkits.mplot3d.axes3d import get_test_data
-fig = plt.figure()
+fig = plt.figure(figsize=(9.5,5.0))
+
+#---- First subplot
ax = fig.add_subplot(1, 2, 1, projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
@@ -16,12 +21,9 @@
linewidth=0, antialiased=False)
ax.set_zlim3d(-1.01, 1.01)
-#ax.w_zaxis.set_major_locator(LinearLocator(10))
-#ax.w_zaxis.set_major_formatter(FormatStrFormatter('%.03f'))
+fig.colorbar(surf, shrink=0.5, aspect=10)
-fig.colorbar(surf, shrink=0.5, aspect=5)
-
-from mpl_toolkits.mplot3d.axes3d import get_test_data
+#---- Second subplot
ax = fig.add_subplot(1, 2, 2, projection='3d')
X, Y, Z = get_test_data(0.05)
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)
Modified: branches/v1_0_maint/examples/mplot3d/surface3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/surface3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/surface3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -5,7 +5,7 @@
import numpy as np
fig = plt.figure()
-ax = Axes3D(fig)
+ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
Modified: branches/v1_0_maint/examples/mplot3d/surface3d_demo2.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/surface3d_demo2.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/surface3d_demo2.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -3,7 +3,7 @@
import numpy as np
fig = plt.figure()
-ax = Axes3D(fig)
+ax = fig.add_subplot(111, projection='3d')
u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)
Modified: branches/v1_0_maint/examples/mplot3d/surface3d_demo3.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/surface3d_demo3.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/surface3d_demo3.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -5,7 +5,7 @@
import numpy as np
fig = plt.figure()
-ax = Axes3D(fig)
+ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.25)
xlen = len(X)
Y = np.arange(-5, 5, 0.25)
Modified: branches/v1_0_maint/examples/mplot3d/surface3d_radial_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/surface3d_radial_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/surface3d_radial_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -8,7 +8,7 @@
step = 0.04
maxval = 1.0
fig = plt.figure()
-ax = Axes3D(fig)
+ax = fig.add_subplot(111, projection='3d')
# create supporting points in polar coordinates
r = np.linspace(0,1.25,50)
Modified: branches/v1_0_maint/examples/mplot3d/text3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/text3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/text3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -2,7 +2,7 @@
import matplotlib.pyplot as plt
fig = plt.figure()
-ax = Axes3D(fig)
+ax = fig.gca(projection='3d')
zdirs = (None, 'x', 'y', 'z', (1, 1, 0), (1, 1, 1))
xs = (2, 6, 4, 9, 7, 2)
Modified: branches/v1_0_maint/examples/mplot3d/wire3d_animation_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/wire3d_animation_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/wire3d_animation_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -1,3 +1,6 @@
+"""
+A very simple 'animation' of a 3D plot
+"""
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np
@@ -9,7 +12,7 @@
plt.ion()
fig = plt.figure()
-ax = axes3d.Axes3D(fig)
+ax = fig.add_subplot(111, projection='3d')
xs = np.linspace(-1, 1, 50)
ys = np.linspace(-1, 1, 50)
Modified: branches/v1_0_maint/examples/mplot3d/wire3d_demo.py
===================================================================
--- branches/v1_0_maint/examples/mplot3d/wire3d_demo.py 2010-07-13 16:48:20 UTC (rev 8542)
+++ branches/v1_0_maint/examples/mplot3d/wire3d_demo.py 2010-07-14 02:42:19 UTC (rev 8543)
@@ -3,7 +3,7 @@
import numpy as np
fig = plt.figure()
-ax = axes3d.Axes3D(fig)
+ax = fig.add_subplot(111, projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|