matplotlib 在Python中绘制4D等值线(X、Y、Z +数据)

rnmwe5a2  于 2022-11-15  发布在  Python
关注(0)|答案(3)|浏览(180)

我有一个很大的测量集合,我想使用Python中的matplotlib在4D中可视化。目前,我的变量是这样排列的:

x = np.array(range(0, v1))
y = np.array(range(0, v2))
z = np.array(range(0, v3))

我有一个3D数组C,它包含了前面变量的每个组合的测量值,所以它的维数是v1*v2*v3
目前,我使用contourf函数来可视化我的测量值,并为每个z值绘制它。这会产生3D等值线图,即值的2D +颜色图。现在,我想合并所有变量,并在4D维度上查看测量值(x、y、z和与测量值对应的颜色)。在python中,什么是最有效的方法?

ilmyapht

ilmyapht1#

关于@Sameeresque的答案,我认为问题是关于这样一个4D图形(三个坐标xyz和一个颜色作为第四个坐标):

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, 1, 15)
y = np.linspace(0, 1, 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, Y, Z, c=U, alpha=0.7, marker='.')
plt.show()
bqucvtff

bqucvtff2#

轴上具有(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, y, z, c=colors, cmap=plt.hot())
fig.colorbar(img)
plt.show()

xghobddn

xghobddn3#

一种可视化4D函数的简单方法,称为W(x,y,z),可以生成沿着z轴的横截面轮廓图的gif。
plot4d可以帮助你做到这一点。一个绘制各向同性4D函数的例子:

from plot4d import plotter
import numpy as np
plotter.plot4d(lambda x,y,z:x**2+y**2+z**2, np.linspace(0,1,20), wbounds=(0,3), fps=5)

上面的代码生成了这个gif:

相关问题