Как нарисовать участок поверхности с помощью matlplotlib - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть три переменные:

gamma= [0.001, 0.0001]
c= [1, 10, 100, 1000]
f = [9.350473612990527483e-01, 8.848238482384823689e-01, 9.769335142469470767e-01, 8.534599728629578275e-01, 9.198369565217391353e-01, 8.953804347826085364e-01, 9.713506139154161056e-01, 9.836065573770491621e-01]

Мой вопрос: как я могу нарисовать график поверхности, используя вышеуказанные переменные?

1 Ответ

0 голосов
/ 14 сентября 2018

Хорошо, вот решение, использующее ваши значения gamma, c и f, хотя поверхность выглядит немного странно, но это из-за ваших данных. Пожалуйста, проверьте порядок данных. Я предположил, что это будет np.meshgrid(gamma, c), но вполне может быть np.meshgrid(c, gamma). Вам необходимо убедиться, что

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')

gamma= np.array([0.001, 0.0001])
c= np.array([1, 10, 100, 1000])
X, Y = np.meshgrid(gamma, c)
f = np.array([9.350473612990527483e-01, 8.848238482384823689e-01, 9.769335142469470767e-01, 8.534599728629578275e-01, 9.198369565217391353e-01, 8.953804347826085364e-01, 9.713506139154161056e-01, 9.836065573770491621e-01])
Z = f.reshape(X.shape)

ax.plot_surface(X, Y, Z)

выход

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...