Как изменить цвет и добавить линии сетки на графике поверхности питона? - PullRequest
0 голосов
/ 24 августа 2018

Я новичок здесь, пожалуйста, будьте нежны. Я делаю проект, который требует, чтобы я нарисовал фигуру октуполя. Я использовал график поверхности Python и получил такой результат:

the figure I got

Однако мой профессор хочет что-то вроде этого:

the figure I want

Пожалуйста, игнорируйте 226Ra на рисунке. Я хочу изменить цвет своего графика на красный, и добавить линии сетки, как это. Есть ли способ, которым я могу это сделать? Я был бы очень признателен. Вот мой код:

import numpy as np;
from matplotlib import cm, colors;
import cmath;
import matplotlib.pyplot as plt;
from mpl_toolkits.mplot3d import Axes3D;
import scipy.special as sp;




l = 3    # degree
m = 0    # order
PHI, THETA = np.mgrid[0:2*np.pi:300j, 0:np.pi:150j]
R = sp.sph_harm(m, l, PHI, THETA).real

s = 1
X = (s*R*0.28+1) * np.sin(THETA) * np.cos(PHI)
Y = (s*R*0.28+1) * np.sin(THETA) * np.sin(PHI)
Z = (s*R*0.29+1) * np.cos(THETA)

norm = colors.Normalize()
fig, ax = plt.subplots(subplot_kw=dict(projection='3d'), figsize=(14,10))
m = cm.ScalarMappable(cmap=cm.jet)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, facecolors=cm.jet(norm(R)))
m.set_array(R)
fig.colorbar(m, shrink=0.8);

1 Ответ

0 голосов
/ 24 августа 2018

Просто замените строку plot_surface на следующую и закомментируйте fig.colorbar(m, shrink=0.8);. Вы можете использовать любой другой цвет по вашему желанию со страницы .

ax.plot_surface(X, Y, Z, rstride=10, cstride=10, color='orangered', edgecolors='k', lw=0.6) 

выход

enter image description here

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