我想根据值在不同颜色的Matlab
中绘制3D点。我有以下代码,但这不起作用,因为plot3d
需要一个向量。
x = vdhf_data.data(:,1);
y = vdhf_data.data(:,2);
z = vdhf_data.data(:,3);
data = vdhf_data.data(:,4);
grid on
hold all
for k=1:length(x)
if data(k) < 6
plot3d(x(k), y(k), z(k), 'ws--', 'MarkerEdgeColor', 'r', 'MarkerFaceColor', 'r')
else
plot3d(x(k), y(k), z(k), 'ws--', 'MarkerEdgeColor', 'g', 'MarkerFaceColor', 'g')
end
end
如何在Matlab中做到这一点?
答案 0 :(得分:10)
我会用
scatter3(x,y,z,ones(size(x)),data,'filled')
这将绘制相同大小的所有点,并根据数据值使用当前色彩图对它们进行着色。您还可以使用数据来缩放每个点的大小。
scatter3(x,y,z,data.^-2,data,'filled')