我在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中使用大尺寸数组吗?
谢谢,
答案 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);
或者如果它变得太慢,你可以试试这个替代方案:matlab: scatter plots with high number of datapoints