在Matplotlib中标准化Facecolors使用的颜色图

杰西

首先,我试图在matplotlib中绘制球谐函数,如在mayavi中所见:http ://docs.enthought.com/mayavi/mayavi/auto/example_spherical_harmonics.html

这是我的位置:

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

# Create a sphere
r = 3
pi = np.pi
cos = np.cos
sin = np.sin
phi, theta = np.mgrid[0:pi:50j, 0:2*pi:50j]


x = r * sin(phi) * cos(theta)
y = r * sin(phi) * sin(theta)
z = r * cos(phi)

colorfunction=special.sph_harm(3,4,theta,phi).real

norm=colors.Normalize(vmin = np.min(colorfunction), vmax = np.max(colorfunction), clip = False)
print colorfunction



fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z)
ax.plot_surface(
    x, y, z,  rstride=1, cstride=1, norm=norm, cmap=cm.jet, facecolors=cm.jet(colorfunction))
plt.show()

这个想法是用来colorfunction根据球谐函数对球体的表面着色。但是,此函数的输出是带有负数的数组。我需要做的是“标准化”此数组,以便它与matplotlib的颜色表配合使用。但是,与这里的答案不同,Color matplotlib plot_surface命令具有表面渐变,其中答案只是通过除以最大元素来简单地进行草率归一化,而我有负数元素,因此将无法正常工作。理想情况下,我想使用matplotlib.colors.Normalize但它不能用于Facecolor。

我知道该规范适用于cmap=cm.jet,因为如果我facecolors完全删除参数,则会得到一个新色图,该色图的行为与我的norm功能相同。

这是我问题的症结所在,我无法将规范化的颜色图应用到我的脸色上。有任何想法吗?

这是上面的代码当前生成的图。如您所见,负值将被完全截断,并且信息会丢失,因为颜色图的范围比实际值大得多(因此所有内容看上去都是蓝色的)。

病毒

也许这太琐碎了,但是:

ax.plot_surface(x, y, z,  rstride=1, cstride=1, facecolors=cm.jet(norm(colorfunction)))

这正常化colorfunction同样,通过以下方式定义标准化函数就足够了:

norm = colors.Normalize()

这将自动在0..1之间缩放输入。

结果:

在此处输入图片说明

cmapnorm关键字似乎适用于使用Z数据对表面着色的情况,因此在这里没有用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

得到分散 c=? 颜色图和标准化

来自分类Dev

matplotlib imshow-默认颜色标准化

来自分类Dev

在Redshift中标准化数据

来自分类Dev

在OpenCV中标准化图像

来自分类Dev

如何在熊猫中标准化

来自分类Dev

在PHP中标准化土耳其语?

来自分类Dev

在Matlab中标准化直方图

来自分类Dev

在php中标准化多维数组

来自分类Dev

在Java中标准化西班牙日期

来自分类Dev

标准化条形图

来自分类Dev

Tensorflow:内部或外部图的标准化?

来自分类Dev

如何在Lucene中标准化未知字符?

来自分类Dev

如何在python中标准化numpy数组

来自分类Dev

如何在Java中标准化Unicode数字

来自分类Dev

在python中标准化numpy数组列

来自分类常见问题

如何在R中标准化字符串

来自分类Dev

KMeans是否自动在sklearn中标准化功能

来自分类Dev

在Redux应用中标准化api响应的意义何在?

来自分类Dev

在postgres中标准化日期-迄今为止的字符

来自分类Dev

在Ember中标准化错误有效负载

来自分类Dev

如何在python中标准化直方图?

来自分类Dev

如何在OpenGL / LWJGL中标准化鼠标坐标

来自分类Dev

如何在Encog中标准化非CSV数据

来自分类Dev

在画布WPF中标准化现实世界数据

来自分类Dev

如何在PySNMP中标准化OID索引检索?

来自分类Dev

如何在DataFrame中标准化每个组?

来自分类Dev

在长格式数据框中标准化日期

来自分类Dev

在散点图中标准化的多个数据集

来自分类Dev

在Tensorflow 2.3中标准化BatchDataset