Matplotlib: СЕТКА и ЦВЕТОВАЯ КАРТА с TRISURF

#matplotlib #plot #grid #surface #colormap

#matplotlib #построение графика #сетка #Поверхность #цветовая карта

Вопрос:

Я хочу поместить сетку на свою поверхность, но она не работает даже при ширине линии, отличной от нуля, также я хотел бы построить цветовую карту, которая изменяет цвет по оси Z, поэтому стены должны отображаться с одинаковым цветом, потому что они имеют точки на 0,5 дюйма Z. Надеюсь, что кто-нибудь сможет мне помочь, спасибо.

Это часть моего кода, с которой у меня возникли проблемы:

 fig = plt.figure()
ax = Axes3D(fig)
surf = ax.plot_trisurf(x, y, z,  cmap=plt.cm.get_cmap('jet',4), shade=False,linewidth=0.1, antialiased=False
  

)

Это мой график с плохой цветовой картой и без сетки

Это что-то похожее на то, что я хочу: с сеткой и хорошей цветовой картой

Ответ №1:

Вы этого хотите?

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

t = np.linspace(0, 50)
X, Y = np.meshgrid(t, t)
Z = np.zeros_like(X)
Z[:, 0] = 0.5
Z[:, -1] = 0.5


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

ax.plot_surface(X, Y, Z, cmap=plt.cm.get_cmap('jet',256), linewidth=0.2, antialiased=True)
  

введите описание изображения здесь

Комментарии:

1. да, но проблема в том, что у меня есть три (1D) массива (так что, насколько я знаю, trisurf — это единственное, что я могу использовать), а также я хотел бы нанести сетку на поверхность (ту же сетку осей (x, y), но в синей зоне)… Спасибо

2. MatplotlibDeprecationWarning: вызов gca() с аргументами ключевого слова устарел в Matplotlib 3.4. Начиная с двух последующих выпусков, gca() не будет принимать аргументы ключевого слова. Функция gca() должна использоваться только для получения текущих осей, или, если осей не существует, создайте новые оси с аргументами ключевого слова по умолчанию. Чтобы создать новые оси с аргументами, отличными от параметров по умолчанию, используйте plt.axes() или plt.subplot().