Создание 3D-графики поверхности с помощью matplotlib - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть файл данных с 2 000 000 точек данных в форме (x, y, z), и я пытаюсь составить карту поверхности информации, чтобы перейти на бумагу. График, который он заканчивает, дает мне видимость иметь, возможно, 10 точек данных вместо полной поверхности потенциальной энергии, в которой я нуждаюсь. Что мне нужно сделать, чтобы получить лучший график.

Вот мой код:

with open("surfaceinfo.dat", "rb") as f:
    CN_data = pickle.load(f)
    CC_data = pickle.load(f)
    energy = pickle.load(f)

plotx,ploty, = np.meshgrid(np.linspace(np.min(CN_data),np.max(CN_data),10),
                           np.linspace(np.min(CC_data),np.max(CC_data),10))
plotz = interp.griddata((CN_data,CC_data),energy(plotx,ploty),method='linear')
plotz = np.nan_to_num(plotz)

fig = plt.figure()
ax = fig.gca(projection='3d')

colormap = plt.cm.bwr
surf = ax.plot_surface(plotx,ploty,plotz,cmap=colormap,linewidth=0,antialiased=False)

fig.colorbar(surf)

plt.savefig('mapping40,000')

plt.show()

1 Ответ

0 голосов
/ 29 апреля 2018

Третий аргумент функции linspace - это количество точек, которое вы хотите. В вашем коде это значение равно 10. Таким образом, ваша поверхность будет иметь 10x10 точек. Измените этот аргумент, чтобы установить количество точек на вашей поверхности.

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