python - 如何在 python 曲面图上更改颜色并添加网格线?
问题描述
我是新来的,请温柔一点。我正在做一个需要我绘制八极图的项目。我使用了python表面图,得到了这样的结果:
但是,我的教授想要这样的东西:
请忽略图中的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);
解决方案
只需将您的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)
输出
推荐阅读
- shell - 当事先不知道行序时,如何可靠地从标准输出中提取特定字符串?
- android - 扩展 FirebaseMessagingService 的 onMessageReceived() 调用晚
- java - JComponent 无法初始化:java.lang.IllegalArgumentException:宽度和高度必须 >= 0
- amazon-web-services - Authfailure:AWS 无法验证提供的访问凭证
- python - 尝试使用 mariadb 捕获异常
- view - 如何将存储在雪花中的所有视图下载到本地机器
- security - 有没有办法防止 Azure DevOps 个人访问令牌 (PAT) 过期?
- visual-studio - 在 Visual Studio Community 或 Pro 中美化符号
- android - 用于检测三星设备是否支持悬停的 CSS 媒体查询问题
- python-3.x - 未在数据类的字段上调用 default_factory