我目前有一个nx3矩阵数组。我想将三列绘制为三个轴。我怎样才能做到这一点?
我已经搜索过,有人建议使用Matlab,但是我很难理解它。我还需要它是一个散点图。
有人可以教我吗?
我目前有一个nx3矩阵数组。我想将三列绘制为三个轴。我怎样才能做到这一点?
我已经搜索过,有人建议使用Matlab,但是我很难理解它。我还需要它是一个散点图。
有人可以教我吗?
n
乘以3的数组,则将获得3维的曲线图。对于“ 3维图”,您将需要一个n x m x l
数组。您是否想要一条曲线,其中有任何一个元组(x,y,z)
代表曲线上的一个点?
Answers:
您可以为此使用matplotlib。matplotlib有一个mplot3d模块,它将完全满足您的要求。
from matplotlib import pyplot
from mpl_toolkits.mplot3d import Axes3D
import random
fig = pyplot.figure()
ax = Axes3D(fig)
sequence_containing_x_vals = list(range(0, 100))
sequence_containing_y_vals = list(range(0, 100))
sequence_containing_z_vals = list(range(0, 100))
random.shuffle(sequence_containing_x_vals)
random.shuffle(sequence_containing_y_vals)
random.shuffle(sequence_containing_z_vals)
ax.scatter(sequence_containing_x_vals, sequence_containing_y_vals, sequence_containing_z_vals)
pyplot.show()
上面的代码生成如下图:
plt.zlabel('zlabel')
无法正常工作。要标记z轴,您需要使用:ax.set_zlabel('Z')
。
使用以下对我有用的代码:
# Create the figure
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# Generate the values
x_vals = X_iso[:, 0:1]
y_vals = X_iso[:, 1:2]
z_vals = X_iso[:, 2:3]
# Plot the values
ax.scatter(x_vals, y_vals, z_vals, c = 'b', marker='o')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_zlabel('Z-axis')
plt.show()
X_iso是我的3-D数组,对于X_vals,Y_vals和Z_vals,我从该数组复制/使用了1列/轴,并分别分配给了这些变量/数组。
请使用渐近线!
看起来像这样:
http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.pdf
这是代码:http : //asymptote.sourceforge.net/gallery/3D%20graphs/helix.asy
渐近线还可以读取数据文件。
完整的画廊:http : //asymptote.sourceforge.net/gallery/
要在Python中使用渐近线:
http://www.tex.ac.uk/tex-archive/graphics/asymptote/base/asymptote.py