我無法使用等高線圖和 imshow 生成疊加層。
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
def f(x, y):
return (1 - x / 2 x ** 5 y ** 3 ) * np.exp(-x ** 2 - y ** 2)
n = 100
x = np.linspace(-3, 3, 3 * n)
y = np.linspace(-3, 3, 3 * n)
X, Y = np.meshgrid(x, y)
Z = f(X, Y)
plt.figure(figsize=(8,6))
plt.imshow(Z, interpolation='nearest', cmap=plt.cm.hot, origin='lower')
contours = plt.contour(X, Y, f(X,Y), 10, colors='black')
plt.clabel(contours, inline=1, fontsize=10)
plt.xticks([])
plt.yticks([])
plt.savefig('overlay_image.pdf', dpi=72)
plt.show()
結果圖片的等高線圖強制進入左下角:

如何在影像頂部獲得輪廓疊加?
uj5u.com熱心網友回復:
您需要設定 的范圍imshow,以便坐標與contour繪圖中使用的坐標對齊。
從
uj5u.com熱心網友回復:
由于您不顯示x,y坐標,另一種選擇是洗掉 中的X,Y引數contour,以便該坐標從0到n
plt.imshow(Z, interpolation='nearest', cmap=plt.cm.hot, origin='lower')
contours = plt.contour(f(X,Y), 10, colors='black')
輸出:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/352943.html
標籤:Python 麻木的 matplotlib 轮廓
