Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 与Python 3相比,Python 2上的平面图_曲面_Python 2.7_Python 3.x_Matplotlib_Plot - Fatal编程技术网

Python 2.7 与Python 3相比,Python 2上的平面图_曲面

Python 2.7 与Python 3相比,Python 2上的平面图_曲面,python-2.7,python-3.x,matplotlib,plot,Python 2.7,Python 3.x,Matplotlib,Plot,好的,Python 3和Python 2。。。在整理了一些代码之后,兔子洞就越来越深了,因为我试图将我不太理解的代码从3改为2。在这种情况下,我不明白为什么我不能获得我使用此代码获得的3D绘图: %matplotlib inline import numpy as np import matplotlib.pyplot as plt import pylab as pylab from mpl_toolkits.mplot3d import Axes3D from matplotlib.col

好的,Python 3和Python 2。。。在整理了一些代码之后,兔子洞就越来越深了,因为我试图将我不太理解的代码从3改为2。在这种情况下,我不明白为什么我不能获得我使用此代码获得的3D绘图:

%matplotlib inline

import numpy as np
import matplotlib.pyplot as plt
import pylab as pylab
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.colors import LogNorm

f  = lambda x, y: 10 * np.cos(1 * x) * 15 * np.sin(1/2 * y) + 150
xmin, xmax, xstep = -4.5, 4.5, .2
ymin, ymax, ystep = -4.5, 4.5, .2

x, y = np.meshgrid(np.arange(xmin, xmax + xstep, xstep), np.arange(ymin, ymax + ystep, ystep))

z = f(x, y)

fig = plt.figure(figsize=(8, 5))
ax = plt.axes(projection='3d', elev=50, azim=-50)
ax.plot_surface(x, y, z, norm=LogNorm(), rstride=1, cstride=1, 
                edgecolor='none', alpha=.8, cmap=plt.cm.jet)
显然,右图位于上图右侧,如将相同的方程式插入Wolfram alpha所示:


这实际上是由于所描述的分区更改。有两种方法可以使python 2生成右侧的3D绘图:

将来自未来导入部门的代码放在代码前面; 在f=lambda x,y:10*np.cos1*x*15*np.sin1/2*y+150行中使用0.5而不是1/2 另一方面,要使python 3生成左侧的平面图,请在f=lambda x,y:10*np.cos1*x*15*np.sin1/2*y+150行中使用0而不是1/2

虽然我不确定它是否涵盖了所有内容,但实际上描述了很多细节,可能值得检查