【问题标题】:MATLAB caxis assigning valueMATLAB caxis 赋值
【发布时间】:2014-08-28 17:17:23
【问题描述】:

我有一个粒子的 3d 图。 我有 500 帧这些粒子的运动。 帧是从包含位置 (x,y,z) 的 3D 矩阵接收的 矩阵中的另一列是位移。假设它是我的 3D 矩阵中的第 7 列。 如何根据这些位移值为每个粒子分配颜色值?

我知道 caxis([0 1]),但它如何知道在确定颜色时要查看哪一列。我还有其他专栏。有没有办法分配这个?

当前代码:

filename = 'testing.gif'
FigHandle = figure('Position', [100, 100, 800, 700]);
for i = 1:499
    s = 2;
    scatter3(ans.atom_data(:,3,i),ans.atom_data(:,4,i),ans.atom_data(:,5,i),s)
    colorbar
    caxis([0,1.61])
    T(i) = getframe
end

【问题讨论】:

  • 你的位移范围是多少?
  • 我们就说0-1.5(我可以稍后编辑)
  • 好的。听起来不错。你用什么函数来绘图,所以我可以具体说一下如何设置颜色?
  • 看上面,刚刚用代码编辑过的帖子

标签: matlab


【解决方案1】:

颜色取自颜色图。大多数 matlab 绘图函数允许您明确设置颜色图。对于scatter3,您必须传入第五个参数,称为C。根据mathworks documentation on scatter3

如果 C 是长度等于 X、Y 和 Z 长度的向量,则 C 中的值线性映射到当前的颜色 颜色图。

这意味着你可以直接传入第 7 列,无需调整caxis

filename= 'testing.gif'
  FigHandle = figure('Position', [100, 100, 800, 700]);
for i=1:499

    s=2;
    scatter3(ans.atom_data(:,3,i),ans.atom_data(:,4,i),ans.atom_data(:,5,i),s,ans.atom_data(:,7,i))
    colorbar
    T(i)=getframe
end

如果默认颜色图不令人满意,您始终可以通过将n x 3 数组传递给colormap 函数来创建自己的颜色图。

最后,您应该知道ans 变量在matlab 中具有特殊含义,并且会随着您运行的每条语句而改变。您可能希望将数据存储到具有不同名称的变量中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    • 2011-09-18
    • 2012-10-19
    • 1970-01-01
    相关资源
    最近更新 更多