在python中绘制3D图

时间:2015-03-05 08:06:15

标签: python-2.7 matplotlib

enter image description here考虑我有一维数组X =([1,2,3]),对于X中的每个元素,我们都有一个相应的2D图。

例如,我们有一个函数z = f(y,X),而X是这个函数的一个参数,当我们从X得到一个不同的值时,我们有一个不同的2D图。

所以我想做的是将它绘制在一个图中,它是一种3D图,我们有三个轴,一个是X,一个是y,一个是z = f(y,X),所以如何绘制这个数字?

谢谢。 PS:我上传了一张照片。我想要绘制的是这种形象。

1 个答案:

答案 0 :(得分:0)

创建子图网格应该有所帮助:

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)-5
Ys = np.array([x**i for i in range(5)])
plt.figure(figsize=(12, 2))
for i, y in enumerate(Ys):
    plt.subplot(1, len(Ys), i+1)
    plt.plot(x, y)
    plt.title('x^%d' % i)
plt.tight_layout()

我在示例中使用了plt.tight_layout(),但您可能需要考虑删除它并使用plt.subplots_adjust来代替。 x-labels(x ^ 0,x ^ 1等)在我的示例中通过为每个子图提供标题来放置,但您可能需要考虑使用plt.figtext()手动将它们放在您想要的确切位置。最后,检查http://matplotlib.org/users/gridspec.html是否有更酷的子情节安排。