【问题标题】:Change color of each point in scatter plot sequentially依次更改散点图中每个点的颜色
【发布时间】:2015-02-05 04:07:11
【问题描述】:

我是 Matlab 新手,我试图用散点图在轴上绘制 4 个点。

例如

x = [0;0;1;-1];
y = [1;-1;0;0];
scatter(x,y);

我想做的是顺时针连续改变上图中一个坐标的颜色

如上图。

如果没有,我可以用其他方法吗?

提前致谢。

【问题讨论】:

    标签: matlab matlab-figure scatter-plot


    【解决方案1】:

    您可以在scatter 中添加第四个参数来设置颜色(第三个参数设置大小,您可以将其留空):

    col = lines(4); % create 4 colors using the 'lines' colormap
    scatter(x,y,[],col);
    

    您可以使用其他一些颜色图(在 Matlab 中键入 doc colormap 了解更多详细信息),或者只需输入一些数字向量即可使用当前颜色图。

    编辑我刚刚意识到您只想更改一个点的颜色;您可以使用(例如)col = [2 1 1 1] 来实现。

    【讨论】:

      【解决方案2】:

      您需要分别绘制每个点,获取每个点的句柄,然后在循环中依次更改它们的'color' 属性:

      %// Data
      x = [-1;0;1;0]; %// define in desired (counterclockwise) order
      y = [0;1;0;-1];
      color1 = 'g';
      color2 = 'r';
      
      %// Initial plot
      N = numel(x);
      h = NaN(1,N);
      hold on
      for n = 1:N
          h(n) = plot(x(n), y(n), 'o', 'color', color1);
      end
      axis([-1.2 1.2 -1.2 1.2]) %// set as desired
      
      %// Change color of one point at a time, and restore the rest
      k = 0;
      while true
          k = k+1;
          pause(.5)
          n = mod(k-1,N)+1;
          set(h(n), 'color', color2);
          set(h([1:n-1 n+1:end]), 'color', color1);
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-22
        • 2013-04-05
        • 2020-08-16
        • 2010-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多