我需要对来自文件的数据计算2个函数mutualinfo2d
和mutualinfo3d
,并获得这些分析的3d图。
我必须遍历所有使用3个数字编制索引的文件:
第一个和第三个是参数,这些值在文件名之间变为两个数组,mu
krat
已知并给定。
第二个数字表示文件的类型(是我的代码的输入)
因此,对于每个文件,我得到一个数字,该数字必须是我对3d绘图所引用的参数mu
krat
的值,该参数表示文件名。
因此循环遍历参数我计算这些函数放在列表中,最后我想要一个3d图,其中x,y是mu
krat
,z是使用我的函数计算的值{{ 1}}和mutualinfo2d
。
我写了一个简单的脚本,运行在这些文件上并正确分析它们,我能够使我的函数的2d图修复两个参数中的一个,但我无法一起变化并恢复3d图。
这是我写的用于获取3d plot的代码:
mutualinfo3d
我得到了不同的3D情节空...我想只有一个3d情节,但有三个不同的表面! 我不是很喜欢3D绘图,所以我希望找到一个可以帮助我的人!
非常感谢
答案 0 :(得分:0)
代码中的问题可能在plot_surface
命令之前。
一个例子:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
# create some surfaces
X, Y = np.meshgrid(np.arange(10, dtype='float'), np.arange(8, dtype='float'))
z1 = X+Y
z2 = X-Y
z3 = np.sin(Y / 8. * 2* np.pi)
N1 = z1 / z1.max()
N2 = z2 / z2.max()
N3 = z3 / z3.max()
# create the figure
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, z1, cstride=1, rstride=1, facecolors=plt.cm.jet(N1), linewidth=0, shade=False)
ax.plot_surface(X, Y, z2, cstride=1, rstride=1, facecolors=plt.cm.jet(N2), linewidth=0, shade=False)
ax.plot_surface(X, Y, z3, cstride=1, rstride=1, facecolors=plt.cm.jet(N3), linewidth=0, shade=False)
这给了它应该的东西:
检查您的inf0
和N
(等)是否有效。如果渐变中只有一个nan
,则归一化(N
的计算)将给出一个充满nan
s的数组,然后不会绘制任何内容。