Масштаб журнала на 3D-графике с использованием matplotlibPython

Программы на Python
Anonymous
Масштаб журнала на 3D-графике с использованием matplotlib

Сообщение Anonymous »

Я хотел бы создать трехмерный график с осью Z в логарифмическом масштабе. Это пример кода.

Код: Выделить всё

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

def fun(x, y):
return x**2 + y

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = y = np.arange(-3.0, 3.0, 0.05)
X, Y = np.meshgrid(x, y)
zs = np.array([fun(x,y) for x,y in zip(np.ravel(X), np.ravel(Y))])
Z = zs.reshape(X.shape)

ax.plot_surface(X, Y, Z)

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()
Я пробовал ax.set_zscale('log') и ax.zaxis.set_scale('log'), но это не работает. Хотя это должно быть возможно. Если я использую ax.plot_surface(X, Y, np.log(Z)) отметки z отключены. Я не смог найти ответ на эту, казалось бы, простую задачу. Надеюсь, вы сможете помочь.

Подробнее здесь: https://stackoverflow.com/questions/613 ... matploblib

Вернуться в «Python»