如何解决用Python绘制4D轮廓X,Y,Z +数据
我想使用Python中的matplotlib在4D中可视化大量的测量值。 目前,我的变量是以这种方式排列的:
x = np.array(range(0,v1))
y = np.array(range(0,v2))
z = np.array(range(0,v3))
我有C,它是一个3D数组,其中包含先前变量的每种组合的测量值。因此它的尺寸为v1*v2*v3
。
当前,我使用contourf
函数可视化我的测量,并为每个z值绘制该图。这将产生3D等高线图,即2D +彩色图。现在,我要组合所有变量,并查看4D尺寸(x,y,z和与测量值相对应的颜色)的测量值。在python中最有效的方法是什么?
解决方法
关于@Sameeresque 的回答,我认为问题与这个 3D 图形有关:
import numpy as np
import matplotlib.pyplot as plt
# only for example,use your grid
z = np.linspace(0,1,15)
x = np.linspace(0,15)
y = np.linspace(0,15)
X,Y,Z = np.meshgrid(x,y,z)
# Your 4dimension,only for example use yours
U = np.exp(-(X/2) ** 2 - (Y/3) ** 2 - Z ** 2)
# Creating figure
fig = plt.figure()
ax = plt.axes(projection="3d")
# Creating plot
ax.scatter3D(X,Z,c=U,alpha=0.7,marker='.')
plt.show()
,
可以这样获得轴上带有(x,y,z)且第四个是颜色的4D图:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
x = np.array(range(0,50))
y = np.array(range(0,50))
z = np.array(range(0,50))
colors = np.random.standard_normal(len(x))
img = ax.scatter(x,z,c=colors,cmap=plt.hot())
fig.colorbar(img)
plt.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。