在Matlab中绘制一个图

时间:2014-04-19 09:33:56

标签: matlab

我在MATLAB中有一系列点,我想用相同颜色绘制它们但是不同程度,所以第一点将是深蓝色,然后第二个点必须比第一个点更亮,依此类推。

示例:

   a = [1:100];
   plot(a,a,'*');

   then point (1,1) will be very dark red ,,, and point (100,100) will be very very light red

我可以在MATLAB中使用大尺寸数组吗?

谢谢,

1 个答案:

答案 0 :(得分:5)

使用带有颜色参数的scatter plot和色彩映射:

x = linspace(0,2*pi,100);
y = sin(x);
a = [1:100];
dotsize=25;
clridx = 1:100;
scatter(x,y,dotsize,clridx,'fill');

% create the colormap:
color1=[25 25 112]/255; % Midnight Blue
color2=[135 206 250]/255;% Light Sky Blue
numcolors = numel(clridx);
% create the gradients
clrmap = cell2mat(arrayfun(@(a,b)linspace(a,b,numcolors )',color1,color2,'uni',false));

% set the colormap
colormap(clrmap);

scatter color gradient

或者如果它变得太慢,你可以试试这个替代方案:matlab: scatter plots with high number of datapoints