用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()

enter image description here

,

可以这样获得轴上带有(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()

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...