#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().