2012-04-24 64 views
1

我试图用不同的欧米伽值作为使用Python和Matplotlib的三维图绘制堆积的二维正弦(欧米茄t)0 < = t < = 2 pi。任何暗示将不胜感激。二维图的堆栈

(像这样)

Something like this one

+1

您是否有图像或图形来显示所需的结果? – heltonbiker 2012-04-24 17:44:30

+0

我是一个新的Python用户。我不知道如何将二维图绘制到三维中。感谢您的关注。 – Papiro 2012-04-24 17:49:30

+0

@Papiro如果您是python和matplotlib的新手,请查看示例图片库(http://matplotlib.sourceforge.net/gallery.html)以找到与您想要的内容相近的内容。尝试改编这些例子,并回来一个特定的问题。我们都非常乐意提供帮助,但是如果没有更多的细节,这几乎是不可能的:“我试过......这里是我的示例代码......为什么我不能得到......结果?” – Yann 2012-04-24 18:07:06

回答

4

这可以用简单的plot command来完成:

from mpl_toolkits.mplot3d import axes3d 
import matplotlib.pyplot as plt 
import numpy as np 

NANGLES = 200 

fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 
nvals = [0, 2, 4, 10, 20, 40, 100] 
for iy in range(len(nvals)): 
    n = nvals[iy] 
    x = np.arange(NANGLES)/float(NANGLES) 
    y = np.ones(NANGLES)*iy # set y position to same value, with regular step 
    z = np.sin(n*x*np.pi) 
    ax.plot(x, y, z) 
ax.set_ylabel('n') 
ax.set_yticklabels(nvals) # update y ticks (set at regular step) to your vals 

plt.savefig('stackedplot.png') 
plt.show() 

我展示了什么是一个简单的开始,并调整化妆品方面的情节可能是学习/探索更多python/matplotlib的一个很好的挑战:

enter image description here

+0

@Papiro我并不是想阻止您提问。我只想鼓励你自己找到答案。起初很难,但是非常有收获。如果您有任何问题想要按照您的方式制作剧情,请回来,我很乐意再次为您提供帮助。我不确定是否有办法重现您所展示的情节。我将不得不深入到实际的'mplot3d'代码中,因为它看起来没有被广泛记录。随意尝试这一点,阅读代码很难,但学习如何使用matplotlib的一个很好的方法。 – Yann 2012-04-24 19:06:38

+0

非常感谢你的帮助,我非常感谢你。我希望有一天我可以回报这个好处。 – Papiro 2012-04-24 21:07:25