Мне нужно построить график контура и каркаса для функции . Это код, который я до сих пор:Графики контуров и каркасных каркасов с Matplotlib
# Number of uniformly ditributed random numbers
n = 2000
def func_vec(x1s, x2s):
return x1s * x1s + 4 * x2s * x2s
np.random.seed()
x1s = np.random.uniform(-1, 1, n)
x2s = np.random.uniform(-1, 1, n)
ys = func_vec(x1s, x2s)
fig = plt.figure()
# Scatter
ax1 = fig.add_subplot(1, 2, 1)
ax1.scatter(x1s, x2s, color = 'g', s = 2, edgecolor = 'none')
ax1.set_ylim([-1,1])
ax1.set_xlim([-1,1])
# Contour
ax1.contour(x2s, x1s, ys[np.newaxis,:].repeat(n, axis = 0))
# 3D visualization
ax2 = fig.add_subplot(1, 2, 2, projection = '3d')
X = x1s
Y = x2s
Z = ys
ax2.plot_wireframe(X, Y, Z, rstride = 1, cstride = 1)
plt.show()
То, что я не понимаю, как contour()
и plot_firewrame()
на самом деле работает? Может ли кто-нибудь быть таким добрым и объяснить это мне (в контексте указанной функции)? Кроме того, как я должен указывать X, Y и Z?
Это как сюжет выглядит сейчас:
и это, как она должна выглядеть (разброс выше работает ОК):
Эти функции ожидают структуру при упорядочении точек. Код каркаса рисует линии между 4-связанными соседями, поэтому вы получаете птичье гнездо. – tacaswell
Спасибо, 'griddata()' и 'meshgrid()' выполнили эту работу! – Mati
Можете ли вы опубликовать ответ, объясняющий, что вы сделали? – tacaswell