1
matlotlibのcontourとcontourf関数を使って2つの変数の関数をvizualizeしようとしています。同じデータを使用すると、輪郭は完全には機能しますが、輪郭線fは欠陥のある画像を生成します。その理由は何ですか?matplotlib contourは同じデータセットでcontourfが失敗している間に働く
from numpy import exp, pi
import numpy as np
# function to be plotted
def R(n0,n1,y,d):
r01 = -(n1-n0+y)/(n0+n1+y)
t01 = 2*n0/(n0+n1+y)
t10 = 2*n1/(n0+n1+y)
r10 = -(n0-n1+y)/(n0+n1+y)
return abs(r01 - t01*t10*exp(4j*pi*d)/(1+r10*exp(4j*pi*d)))**2.0
# meshgrid for plotting
xlist = np.linspace(0.0, 0.5, 101)
ylist = np.linspace(0.0, 6.0, 101)
X, Y = np.meshgrid(xlist, ylist)
# function values on the meshgrid
Z = []
for y in ylist:
zslice = []
for d in xlist:
zslice.append(R(1.0,2.0,y,d))
Z.append(zslice)
# plot -------------------------------------
import matplotlib.pyplot as plt
plt.figure()
levels = [0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
cp = plt.contour(X, Y, Z, levels) # works
cp = plt.contourf(X, Y, Z, levels) # fails=provides defective image
plt.colorbar(cp)
plt.clabel(cp, inline=True, fontsize=10)
plt.show()