【问题标题】:Trying to plot multivariate function in 3D matplotlib; returns empty figure尝试在 3D matplotlib 中绘制多元函数;返回空图
【发布时间】:2017-02-14 08:40:49
【问题描述】:

我正在尝试在 3D matplotlib 中绘制函数 F(x1,x2),遵循此处的教程: http://glowingpython.blogspot.com/2012/01/how-to-plot-two-variable-functions-with.html

一旦我尝试运行代码,该图就变成了空的,甚至没有看到轴输出。我想知道是否有人能弄清楚这种行为背后的原因。我正在使用 python 2.7

from __future__ import division

from numpy import exp,arange
from pylab import meshgrid,cm,imshow,contour,clabel,colorbar,axis,title,show
import math 
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
from matplotlib import pylab
from numpy import arange,array,ones
from scipy import stats
import numpy
import matplotlib.ticker as mtick
import sys
import os


# the function that I'm going to plot
def z_func(x1,x2):
 return exp(-(1-x1)**2 - 100*((x2-x1**2)**2))


x1 = arange(5.0,-5.0,-0.01)
x2 = arange(-5.0,5.0,0.01)
X1,X2 = meshgrid(x1, x2) # grid of point
Z = z_func(X1, X2) # evaluation of the function on the grid


fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X1, X2, Z, rstride=1, cstride=1, cmap=cm.RdBu,linewidth=0, antialiased=False)

ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

ax.set_xlabel('x-axis')
ax.set_ylabel('y-axis')
ax.set_zlabel('z-axis')
ax.view_init(elev=25, azim=-120)

fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()

【问题讨论】:

    标签: python-2.7 matplotlib mplot3d


    【解决方案1】:

    您的代码对我有用。我只需要等到计算机完成计算。长时间的计算是因为x1x2 的大小。尝试更改这些行:

    x1 = arange(5.0,-5.0,-0.01)
    x2 = arange(-5.0,5.0,0.01)
    

    到以下几行:

    x1 = arange(5.0,-5.0,-0.1)
    x2 = arange(-5.0,5.0,0.1)
    

    附言我建议你安排你的进口。您只需要以下内容:

    from numpy import exp, arange
    import matplotlib.pyplot as plt
    from matplotlib.ticker import LinearLocator, FormatStrFormatter
    from pylab import meshgrid
    from mpl_toolkits.mplot3d import Axes3D
    from matplotlib import cm
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      相关资源
      最近更新 更多