我需要在 python 中绘制一个多变量 ln 函数。该图将显示区域 x 1 , x 2 ∈ [−5, 5] 上的 ln (L 1 (x 1 , x 2 ))。模型的退化将显示为 x 1 -x 2 平面中的线,其中 ln L 1 的值不会改变。
我遵循了一个教程,该教程完成了线性函数的工作。:
from __future__ import division
from numpy import exp,arange
from pylab import meshgrid,cm,imshow,contour,clabel,colorbar,axis,title,show
import matplotlib.pyplot as plt
from matplotlib import pylab
from numpy import arange,array,ones
from scipy import stats
import numpy
import sys
import os
import matplotlib.pyplot as plt
from pylab import *
import math
# the function that I'm going to plot
def z_func(x1,x2):
return exp(-(1-x1)**2 - 100*((x2-x1**2)**2))
x1 = linspace(-5.0,5.0,1000)
x2 = linspace(-5.0,5.0,1000)
X1,X2 = meshgrid(x1, x2) # grid of point
Z = z_func(X1, X2) # evaluation of the function on the grid
im = imshow(Z,cmap=cm.RdBu) # drawing the function
# adding the Contour lines with labels
#cset = contour(Z,arange(-1,1.5,0.2),linewidths=2,cmap=cm.Set2)
#clabel(cset,inline=True,fmt='%1.1f',fontsize=10)
#colorbar(im) # adding the colobar on the right
# latex fashion title
title('$L = exp(-(1-x_{1})^2 - 100(x_{2}-x_{1}^2)^2)$')
show()
生成的图像也附上了,这对我来说还不是很明智。 我想知道如何将其更改为基于 ln 的 plot 。我还需要在绘图中添加 x 和 y 标签