3D-график в ортогональном стиле с диагональной осьюPython

Программы на Python
Ответить
Гость
 3D-график в ортогональном стиле с диагональной осью

Сообщение Гость »


Мне хотелось бы построить сюжет в том стиле, в котором мы привыкли их рисовать в школе. Вот пример:


Изображение


Резюме:
[*]3D-график [*]плоскость y-z параллельна экрану (горизонтальная y, вертикальная z) [*]ось X диагональна
Ось Y-Z параллельна экрану (горизонтальная y, вертикальная z). Обычно ось X теперь указывает на экран. Но я хотел бы изменить это так, чтобы она была направлена ​​по диагонали вниз (как если бы ее рисовали на лист бумаги иногда). К сожалению, я не знаю, как называется эта проекция (косое изображение), но я почти уверен, что она ортогональна и что мне нужна какая-то дополнительная проекция.

Я попробовал это с собственной проекцией для оси, вот так:

импортировать numpy как np импортировать matplotlib.pyplot как plt из mpl_toolkits.mplot3d импортировать Axes3D рис = plt.figure() ax = fig.add_subplot(111, проекция='3d', proj_type='орто') # Некоторые примеры данных x, y, z = np.random.rand(3, 100) ax.scatter(x, y, z) # Применяем преобразование ax.get_proj = лямбда: np.dot(Axes3D.get_proj(ax), Transform) # Установите метки и просмотрите ax.view_init(высота=0, азим=0) ax.set_xlabel('x') ax.set_ylabel('y') ax.set_zlabel('z') # Матрица ручного преобразования c = np.cos(np.deg2rad(30)) s = np.sin(np.deg2rad(30)) преобразование = np.array([ [1, 0, 0, 0], [0, с, -с, 0], [0, с, с, 0], [0, 0, 0, 1] ]) # Применяем преобразование ax.get_proj = лямбда: np.dot(Axes3D.get_proj(ax), Transform) plt.show() Это мой результат (пока не очень впечатляющий :)
Изображение


Как мне исправить это, чтобы оно выглядело как куб?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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